Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8234695
Implement `formatter<vector<bool>::reference>` (#4133)
frederick-vs-ja Nov 29, 2023
0274d83
`<ranges>`: Fix the return types and overload resolution of range ada…
frederick-vs-ja Nov 29, 2023
5220c9c
`<xlocnum>`: Drop `ios_base::showpoint` flag when printing non-finite…
frederick-vs-ja Nov 29, 2023
fc931c9
Update _MSVC_STL_UPDATE to November 2023 (#4213)
AestheticAkhmad Nov 29, 2023
c9d52cd
`<mdspan>`: Check preconditions of `mdspan::operator[]` clarified by …
frederick-vs-ja Nov 29, 2023
21b16b4
ADL-proof implementation of `erase_if` and related algorithms (#4217)
frederick-vs-ja Nov 29, 2023
14f3b2d
`<ranges>`: Fix a correctness-damaging typo in `ranges::to` (#4218)
StephanTLavavej Nov 29, 2023
96c1e08
`<sstream>`: Pass the correct size type to `_Allocate_at_least_helper…
StephanTLavavej Nov 29, 2023
9f9ab88
Update `P1208R6_source_location` after MSVC-internal changes (#4220)
StephanTLavavej Nov 29, 2023
8a8dda8
`<atomic>`: Fix ARM64EC and CHPE codegen (#4222)
StephanTLavavej Dec 1, 2023
0403d19
Use Retail MSBuild Targets (#4225)
CaseyCarter Dec 1, 2023
8286d8e
ADL-proof implementation of [alg.min.max], [alg.clamp], [alg.lex.comp…
frederick-vs-ja Dec 7, 2023
c86e981
Add permissions to the Assign New PR action (#4223)
StephanTLavavej Dec 7, 2023
4207ba2
Update yvals to December 2023 (#4226)
ChaseKnowlden Dec 7, 2023
d2e0f49
`<mdspan>`: Avoid `-Wsign-compare` warnings (#4227)
StephanTLavavej Dec 7, 2023
4017243
`<sstream>`: Avoid truncation warnings in `basic_stringbuf`'s constru…
StephanTLavavej Dec 7, 2023
3ef9108
`<chrono>`: Make `tzdb_list`'s internal ctor harder to unintentionall…
StephanTLavavej Dec 7, 2023
4c110bf
Various cleanups (#4230)
StephanTLavavej Dec 7, 2023
706b425
Add Non-exception Throwing Specifier to `ranges::ssize` (#4231)
PhiliaTheCat Dec 7, 2023
f89e70e
`<random>`: Optimize range adjustment in `uniform_int` (#4234)
horenmar Dec 7, 2023
b351b67
`<mdspan>`: Construct mappings from `extents_type` rvalues when neces…
StephanTLavavej Dec 7, 2023
ae50dff
Fix truncation warnings in `string`/`vector` iterator subtraction and…
StephanTLavavej Dec 7, 2023
c594563
Don't `*` every test matrix line (#4240)
CaseyCarter Dec 7, 2023
ec7f7ba
`<format>`: Fix STL internal check when formatting empty strings (#4243)
StephanTLavavej Dec 7, 2023
cff27f7
Fix `vector`s with fancy pointers emitting STL internal checks in ran…
StephanTLavavej Dec 7, 2023
cf1313c
Allow `locale{nullptr}` to compile (#4245)
StephanTLavavej Dec 7, 2023
245e703
Toolset update: VS 2022 17.9 Preview 2, Clang 17 (#4259)
StephanTLavavej Dec 14, 2023
9e74b7e
Avoid `_Iter_diff_t` in parameters of `std` function templates (#4249)
CaseyCarter Dec 14, 2023
4e9a5cb
<chrono>: Make format() accept %X and %EX for duration and hh_mm_ss (…
cpplearner Dec 14, 2023
7276976
Fix truncation warnings in `allocate_shared()` (#4252)
StephanTLavavej Dec 14, 2023
c293fe7
Fix `sub_match <=> basic_string` with custom traits/allocators (#4253)
StephanTLavavej Dec 14, 2023
ca641a0
Defend sequence container constructors from bad CTAD (#4254)
StephanTLavavej Dec 14, 2023
26faa20
Merge branch 'main' into flat_set-vs17.9p2
StephanTLavavej Dec 14, 2023
bd59fb7
clang-format, no manual changes.
StephanTLavavej Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# https://releases.llvm.org/16.0.0/tools/clang/docs/ClangFormatStyleOptions.html
# https://releases.llvm.org/17.0.1/tools/clang/docs/ClangFormatStyleOptions.html

---
# Language: Cpp
Expand Down Expand Up @@ -38,6 +38,11 @@ AlignConsecutiveAssignments: Consecutive
# AlignCompound: false
# PadOperators: false
AlignConsecutiveMacros: Consecutive
# AlignConsecutiveShortCaseStatements:
# Enabled: false
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCaseColons: false
# AlignEscapedNewlines: Right
AlignEscapedNewlines: Left
# AlignOperands: Align
Expand Down Expand Up @@ -176,6 +181,7 @@ InsertNewlineAtEOF: true
# JavaScriptQuotes: Leave
# JavaScriptWrapImports: true
# KeepEmptyLinesAtTheStartOfBlocks: true
# KeepEmptyLinesAtEOF: false
# LambdaBodyIndentation: Signature
# LineEnding: DeriveLF
LineEnding: CRLF
Expand Down Expand Up @@ -209,6 +215,7 @@ PointerAlignment: Left
# ReferenceAlignment: Pointer
# ReflowComments: true
# RemoveBracesLLVM: false
# RemoveParentheses: Leave
# RemoveSemicolon: false
RemoveSemicolon: true
# RequiresClausePosition: OwnLine
Expand All @@ -228,6 +235,7 @@ SpaceAfterCStyleCast: true
# SpaceBeforeCpp11BracedList: false
# SpaceBeforeCtorInitializerColon: true
# SpaceBeforeInheritanceColon: true
# SpaceBeforeJsonColon: false
# SpaceBeforeParens: ControlStatements
# SpaceBeforeParensOptions:
# AfterControlStatements: true
Expand All @@ -245,16 +253,18 @@ SpaceBeforeParensOptions:
# SpaceBeforeRangeBasedForLoopColon: true
# SpaceBeforeSquareBrackets: false
# SpaceInEmptyBlock: false
# SpaceInEmptyParentheses: false
# SpacesBeforeTrailingComments: 1
# SpacesInAngles: Never
# SpacesInConditionalStatement: false
# SpacesInContainerLiterals: true
# SpacesInCStyleCastParentheses: false
# SpacesInLineCommentPrefix:
# Minimum: 1
# Maximum: -1
# SpacesInParentheses: false
# SpacesInParens: Never
# SpacesInParensOptions:
# InCStyleCasts: false
# InConditionalStatements: false
# InEmptyParentheses: false
# Other: false
# SpacesInSquareBrackets: false
# Standard: Latest
# StatementAttributeLikeMacros:
Expand All @@ -277,6 +287,7 @@ StatementMacros:
- _END_EXTERN_C_UNLESS_PURE
# TabWidth: 8
# UseTab: Never
# VerilogBreakBetweenInstancePorts: true
# WhitespaceSensitiveMacros:
# - BOOST_PP_STRINGIZE
# - CF_SWIFT_NAME
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/assign-new-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ on:
- main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
repository-projects: write

jobs:
initial-review:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/move-ready-for-review-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Move To Initial Review
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: |
// Find "Code Reviews" project manually by name matching
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/move-work-in-progress-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Move To Work In Progress
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
script: |
// Find "Code Reviews" project manually by name matching
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/update-status-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: gh-pages
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ">=20.4.0"
node-version: ">=21.4.0"
- name: Install Packages
run: |
npm ci
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem

# How To Build With The Visual Studio IDE

1. Install Visual Studio 2022 17.9 Preview 1 or later.
1. Install Visual Studio 2022 17.9 Preview 2 or later.
* Select "Windows 11 SDK (10.0.22000.0)" in the VS Installer.
* We recommend selecting "C++ CMake tools for Windows" in the VS Installer.
This will ensure that you're using supported versions of CMake and Ninja.
Expand All @@ -156,7 +156,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem

# How To Build With A Native Tools Command Prompt

1. Install Visual Studio 2022 17.9 Preview 1 or later.
1. Install Visual Studio 2022 17.9 Preview 2 or later.
* Select "Windows 11 SDK (10.0.22000.0)" in the VS Installer.
* We recommend selecting "C++ CMake tools for Windows" in the VS Installer.
This will ensure that you're using supported versions of CMake and Ninja.
Expand Down
2 changes: 1 addition & 1 deletion azure-devops/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

variables:
- name: poolName
value: 'StlBuild-2023-11-15T0519-Pool'
value: 'StlBuild-2023-12-12T1453-Pool'
readonly: true
- name: poolDemands
value: 'EnableSpotVM -equals true'
Expand Down
4 changes: 2 additions & 2 deletions azure-devops/provision-image.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ if ([string]::IsNullOrEmpty($AdminUserPassword)) {
$PsExecPath = Join-Path $ExtractedPsToolsPath 'PsExec64.exe'

# https://github.com/PowerShell/PowerShell/releases/latest
$PowerShellZipUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.9/PowerShell-7.3.9-win-x64.zip'
$PowerShellZipUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.4.0/PowerShell-7.4.0-win-x64.zip'
Write-Host "Downloading: $PowerShellZipUrl"
$ExtractedPowerShellPath = DownloadAndExtractZip -Url $PowerShellZipUrl
$PwshPath = Join-Path $ExtractedPowerShellPath 'pwsh.exe'
Expand Down Expand Up @@ -136,7 +136,7 @@ $Workloads = @(
)

$VisualStudioBootstrapperUrl = 'https://aka.ms/vs/17/pre/vs_enterprise.exe'
$PythonUrl = 'https://www.python.org/ftp/python/3.12.0/python-3.12.0-amd64.exe'
$PythonUrl = 'https://www.python.org/ftp/python/3.12.1/python-3.12.1-amd64.exe'

$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_511.23_windows.exe'

Expand Down
1 change: 0 additions & 1 deletion benchmarks/src/std_copy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include <utility.hpp>

namespace {

template <typename Contained>
void handwritten_loop(benchmark::State& state) {
const size_t r0 = static_cast<size_t>(state.range(0));
Expand Down
1 change: 1 addition & 0 deletions stl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ set(HEADERS
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_cxx_stdatomic.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_filebuf.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_format_ucd_tables.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_formatter.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_int128.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_iter_core.hpp
${CMAKE_CURRENT_LIST_DIR}/inc/__msvc_print.hpp
Expand Down
24 changes: 12 additions & 12 deletions stl/inc/__msvc_bit_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
#include _STL_INTRIN_HEADER

// TRANSITION, GH-2129, move down to _Arm64_popcount
#if (defined(_M_ARM64) || defined(_M_ARM64EC)) && !defined(_M_CEE_PURE) && !defined(__CUDACC__) \
&& !defined(__INTEL_COMPILER) && !defined(__clang__) // TRANSITION, LLVM-51488
#if (defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64)) && !defined(_M_CEE_PURE) \
&& !defined(__CUDACC__) && !defined(__INTEL_COMPILER) && !defined(__clang__) // TRANSITION, LLVM-51488
#define _HAS_NEON_INTRINSICS 1
#else // ^^^ intrinsics available / intrinsics unavailable vvv
#define _HAS_NEON_INTRINSICS 0
Expand Down Expand Up @@ -70,7 +70,7 @@ _NODISCARD constexpr int _Countl_zero_fallback(_Ty _Val) noexcept {
#endif // ^^^ intrinsics unavailable ^^^

#if _HAS_COUNTL_ZERO_INTRINSICS
#if defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
#if (defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || (defined(_M_X64) && !defined(_M_ARM64EC))
template <class _Ty>
_NODISCARD int _Countl_zero_lzcnt(const _Ty _Val) noexcept {
constexpr int _Digits = _Unsigned_integer_digits<_Ty>;
Expand Down Expand Up @@ -136,9 +136,9 @@ _NODISCARD int _Checked_x86_x64_countl_zero(const _Ty _Val) noexcept {
}
#endif // ^^^ !defined(__AVX2__) ^^^
}
#endif // defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
#endif // (defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || (defined(_M_X64) && !defined(_M_ARM64EC))

#if defined(_M_ARM) || defined(_M_ARM64)
#if defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64)
#ifdef __clang__ // TRANSITION, GH-1586
_NODISCARD constexpr int _Clang_arm_arm64_countl_zero(const unsigned short _Val) {
return __builtin_clzs(_Val);
Expand Down Expand Up @@ -179,7 +179,7 @@ _NODISCARD int _Checked_arm_arm64_countl_zero(const _Ty _Val) noexcept {
}
#endif // TRANSITION, GH-1586
}
#endif // defined(_M_ARM) || defined(_M_ARM64)
#endif // defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64)
#endif // _HAS_COUNTL_ZERO_INTRINSICS

// Implementation of countr_zero without using specialized CPU instructions.
Expand All @@ -196,14 +196,14 @@ _NODISCARD constexpr int _Countr_zero_fallback(const _Ty _Val) noexcept {
template <class _Ty>
_NODISCARD constexpr int _Popcount_fallback(_Ty _Val) noexcept {
constexpr int _Digits = _Unsigned_integer_digits<_Ty>;
#if defined(_M_IX86) || defined(_M_ARM)
#if (defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || defined(_M_ARM)
if constexpr (_Digits == 64) {
// 64-bit bit operations on architectures without 64-bit registers are less efficient,
// hence we split the value so that it fits in 32-bit registers
return _Popcount_fallback(static_cast<unsigned long>(_Val))
+ _Popcount_fallback(static_cast<unsigned long>(_Val >> 32));
}
#endif // defined(_M_IX86) || defined(_M_ARM)
#endif // (defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || defined(_M_ARM)
// we static_cast these bit patterns in order to truncate them to the correct size
_Val = static_cast<_Ty>(_Val - ((_Val >> 1) & static_cast<_Ty>(0x5555'5555'5555'5555ull)));
_Val = static_cast<_Ty>((_Val & static_cast<_Ty>(0x3333'3333'3333'3333ull))
Expand All @@ -215,8 +215,8 @@ _NODISCARD constexpr int _Popcount_fallback(_Ty _Val) noexcept {
return static_cast<int>(_Val >> (_Digits - 8));
}

#if (defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))) && !defined(_M_CEE_PURE) && !defined(__CUDACC__) \
&& !defined(__INTEL_COMPILER)
#if ((defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || (defined(_M_X64) && !defined(_M_ARM64EC))) \
&& !defined(_M_CEE_PURE) && !defined(__CUDACC__) && !defined(__INTEL_COMPILER)
#define _HAS_TZCNT_BSF_INTRINSICS 1
#else // ^^^ intrinsics available / intrinsics unavailable vvv
#define _HAS_TZCNT_BSF_INTRINSICS 0
Expand Down Expand Up @@ -310,8 +310,8 @@ _NODISCARD int _Checked_x86_x64_countr_zero(const _Ty _Val) noexcept {

#endif // _HAS_TZCNT_BSF_INTRINSICS

#if (defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))) && !defined(_M_CEE_PURE) && !defined(__CUDACC__) \
&& !defined(__INTEL_COMPILER)
#if ((defined(_M_IX86) && !defined(_M_HYBRID_X86_ARM64)) || (defined(_M_X64) && !defined(_M_ARM64EC))) \
&& !defined(_M_CEE_PURE) && !defined(__CUDACC__) && !defined(__INTEL_COMPILER)
#define _HAS_POPCNT_INTRINSICS 1
#else // ^^^ intrinsics available / intrinsics unavailable vvv
#define _HAS_POPCNT_INTRINSICS 0
Expand Down
Loading