Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
061d5e0
Python 3.13.7.
StephanTLavavej Sep 9, 2025
d434553
Update VS URL from 17 Preview Enterprise to 18 Insiders Community.
StephanTLavavej Sep 9, 2025
a1d4aca
New pool.
StephanTLavavej Sep 10, 2025
9809bc4
Generalize to "Windows 11 SDK (10.0.26100) or later".
StephanTLavavej Sep 11, 2025
3e79f4f
Require MSVC Compiler 19.50 Preview 1.
StephanTLavavej Sep 11, 2025
b45bf89
README.md: Reorganize architectures.
StephanTLavavej Sep 11, 2025
70ef671
README.md: Avoid suspicious long dashes.
StephanTLavavej Sep 11, 2025
9736520
README.md: Update bincompat wording for VS 2026.
StephanTLavavej Sep 11, 2025
46271cc
README.md: (major improvement) Extract installer prerequisites.
StephanTLavavej Sep 11, 2025
4b48d1f
README.md: Update vcvarsall.bat paths and command prompt names.
StephanTLavavej Sep 11, 2025
ca48fea
README.md: Update the "complete example".
StephanTLavavej Sep 11, 2025
99a7218
README.md: Remove unused links.
StephanTLavavej Sep 11, 2025
651afe2
Clang 20.1.8, now required.
StephanTLavavej Sep 11, 2025
612d900
bug-report.md: Update options for reporting the STL version.
StephanTLavavej Sep 11, 2025
5349c4a
azure-devops/config.yml: Centralize VsDevCmd.bat path.
StephanTLavavej Sep 11, 2025
915acfe
Unwrap vsDevCmdBat calls.
StephanTLavavej Sep 11, 2025
1157dce
Remove suppressions of warning C4127 "conditional expression is const…
StephanTLavavej Sep 11, 2025
ac70641
C4127 followup: Fuse constexpr bools where the names provided minimal…
StephanTLavavej Sep 11, 2025
b36ffcf
Remove workaround for DevCom-10291456 / VSO-1754445, which had been f…
StephanTLavavej Sep 11, 2025
082d646
Remove workarounds for VSO-1513409, fixed by MSVC-PR-647159 on 2025-0…
StephanTLavavej Sep 11, 2025
0eb25e1
Remove workaround for GH 5506 / DevCom-10906320 / VSO-2495607, fixed …
StephanTLavavej Sep 11, 2025
6751e35
Remove workaround for VSO-1956558, fixed by VS-PR-656849 on 2025-07-29.
StephanTLavavej Sep 11, 2025
6e05ba8
Remove workaround for VSO-1588614, no longer repros as of 2025-06-10.
StephanTLavavej Sep 11, 2025
8d4250b
Remove workaround for VSO-1923988, no longer repros as of 2025-06-10.
StephanTLavavej Sep 11, 2025
704505d
Remove workaround for VSO-934264, no longer repros as of 2025-06-10.
StephanTLavavej Sep 11, 2025
c5ef6a0
Remove workarounds for DevCom-1638496 VSO-1462745, which was fixed by…
StephanTLavavej Sep 11, 2025
80da353
Remove workarounds for many unreported constexpr bugs.
StephanTLavavej Sep 11, 2025
f6f60bb
Comment LLVM-62096 as fixed in Clang 21.
StephanTLavavej Sep 12, 2025
fbd0f9f
Report and add workarounds for regression LLVM-158302.
StephanTLavavej Sep 12, 2025
e22129f
Remove workarounds for LLVM-94118.
StephanTLavavej Sep 11, 2025
34450b8
Remove workarounds for LLVM-56507.
StephanTLavavej Sep 11, 2025
7d6919f
Remove workaround for LLVM-104189.
StephanTLavavej Sep 11, 2025
c7069a0
Remove workaround for LLVM-116256, enable ARM64EC for Clang.
StephanTLavavej Sep 11, 2025
d2ac038
Fix Clang ARM64EC message: "'+cx16' is not a recognized feature for t…
StephanTLavavej Sep 12, 2025
6e1eb08
Report and add workarounds for LLVM-158341.
StephanTLavavej Sep 12, 2025
a5488a3
Remove EDG workarounds in P1208R6_source_location.
StephanTLavavej Sep 11, 2025
fc2fdaf
Simplify preprocessor logic in P1208R6_source_location.
StephanTLavavej Sep 11, 2025
a18559b
GH_000639_nvcc_include_all: Add `--allow-unsupported-compiler` again.
StephanTLavavej Sep 11, 2025
c5a434e
Report and add workaround for regression VSO-2574432 "C1XX incorrectl…
StephanTLavavej Sep 12, 2025
7e88559
Report previously unreported constexpr bugs: VSO-2574451, VSO-2574465…
StephanTLavavej Sep 12, 2025
17e76ac
.clang-format: Update defaults.
StephanTLavavej Sep 13, 2025
6235e76
Regen clang-format, no manual changes.
StephanTLavavej Sep 13, 2025
6675016
Manually improve max_size() wrapping.
StephanTLavavej Sep 13, 2025
69f520d
Enable clang-format in xlocale, no changes.
StephanTLavavej Sep 13, 2025
55dddd0
Enable clang-format in concepts with manual wrapping, results are oth…
StephanTLavavej Sep 13, 2025
0c8242a
Enable clang-format in __msvc_filebuf.hpp, results are acceptable.
StephanTLavavej Sep 13, 2025
aa9b642
Enable clang-format in ranges with partial manual wrapping, results a…
StephanTLavavej Sep 13, 2025
796a667
Enable clang-format in GH_001541_case_sensitive_boolalpha with manual…
StephanTLavavej Sep 13, 2025
296416b
Enable clang-format in P0355R7_calendars_and_time_zones_dates, result…
StephanTLavavej Sep 13, 2025
b4eb120
Enable clang-format for `requires`, results are acceptable.
StephanTLavavej Sep 13, 2025
34fe8e5
Enable clang-format in chrono, results are acceptable.
StephanTLavavej Sep 13, 2025
30d3abe
Enable clang-format in P0896R4_common_iterator with manual wrapping, …
StephanTLavavej Sep 13, 2025
c469c40
Enable clang-format in P0896R4_ranges_iterator_machinery with manual …
StephanTLavavej Sep 13, 2025
c3c4adb
Enable clang-format in Dev11_0437519_container_requirements and VSO_0…
StephanTLavavej Sep 13, 2025
4d744da
Enable clang-format in GH_000625_vector_bool_optimization with manual…
StephanTLavavej Sep 13, 2025
afee85f
Enable clang-format in VSO_0644691_utf_8_codecvt WITH COMMENT CLEANUP…
StephanTLavavej Sep 13, 2025
ffd0da5
Add/update clang-format suppression reasons.
StephanTLavavej Sep 13, 2025
648ddcd
Syntax cleanup in test code: Drop unnecessary parens.
StephanTLavavej Sep 13, 2025
d8c104d
README.md: Improve the Visual Studio Installer Prerequisites.
StephanTLavavej Sep 14, 2025
caa3011
README.md: Overhaul the IDE instructions.
StephanTLavavej Sep 14, 2025
5cb4a1e
CMakePresets.json: Reorder x64 before x86.
StephanTLavavej Sep 14, 2025
f033681
Restore product code workaround for VSO-1513409 due to MSVC-internal …
StephanTLavavej Sep 15, 2025
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
20 changes: 17 additions & 3 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/19.1.0/tools/clang/docs/ClangFormatStyleOptions.html
# https://releases.llvm.org/20.1.0/tools/clang/docs/ClangFormatStyleOptions.html

# To update this .clang-format file for a new clang-format version:
# 1. Update the documentation link above.
Expand All @@ -26,6 +26,7 @@ AlignAfterOpenBracket: DontAlign
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: true
AlignConsecutiveAssignments: Consecutive
Expand All @@ -34,20 +35,23 @@ AlignConsecutiveAssignments: Consecutive
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: false
# AlignConsecutiveDeclarations:
# Enabled: false
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: true
# AlignFunctionPointers: false
# PadOperators: false
# AlignConsecutiveMacros:
# Enabled: false
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: false
AlignConsecutiveMacros: Consecutive
Expand All @@ -62,20 +66,23 @@ AlignConsecutiveMacros: Consecutive
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: false
# AlignConsecutiveTableGenCondOperatorColons:
# Enabled: false
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: false
# AlignConsecutiveTableGenDefinitionColons:
# Enabled: false
# AcrossEmptyLines: false
# AcrossComments: false
# AlignCompound: false
# AlignFunctionDeclarations: false
# AlignFunctionPointers: false
# PadOperators: false
# AlignEscapedNewlines: Right
Expand All @@ -101,12 +108,13 @@ AllowShortFunctionsOnASingleLine: Empty
# AllowShortIfStatementsOnASingleLine: Never
# AllowShortLambdasOnASingleLine: All
# AllowShortLoopsOnASingleLine: false
# AllowShortNamespacesOnASingleLine: false
# AlwaysBreakAfterDefinitionReturnType: None
# AlwaysBreakBeforeMultilineStrings: false
# AttributeMacros:
# - __capability
# BinPackArguments: true
# BinPackParameters: true
# BinPackParameters: BinPack
# BitFieldColonSpacing: Both
# BraceWrapping:
# AfterCaseLabel: false
Expand Down Expand Up @@ -139,6 +147,7 @@ BreakBeforeBinaryOperators: NonAssignment
# BreakBeforeBraces: Attach
# BreakBeforeInlineASMColon: OnlyMultiline
# BreakBeforeTernaryOperators: true
# BreakBinaryOperations: Never
# BreakConstructorInitializers: BeforeColon
# BreakFunctionDefinitionParameters: false
# BreakInheritanceList: BeforeColon
Expand Down Expand Up @@ -203,6 +212,7 @@ IncludeCategories:
# IndentCaseBlocks: false
IndentCaseBlocks: true
# IndentCaseLabels: false
# IndentExportBlock: true
# IndentExternBlock: AfterExternBlock
# IndentGotoLabels: true
# IndentPPDirectives: None
Expand Down Expand Up @@ -231,6 +241,7 @@ InsertNewlineAtEOF: true
# AtStartOfFile: true
KeepEmptyLines:
AtStartOfFile: false
# KeepFormFeed: false
# LambdaBodyIndentation: Signature
# LineEnding: DeriveLF
LineEnding: CRLF
Expand All @@ -250,6 +261,7 @@ NamespaceIndentation: All
# PackConstructorInitializers: BinPack
# PenaltyBreakAssignment: 2
# PenaltyBreakBeforeFirstCallParameter: 19
# PenaltyBreakBeforeMemberAccess: 150
# PenaltyBreakComment: 300
# PenaltyBreakFirstLessLess: 120
# PenaltyBreakOpenParenthesis: 0
Expand All @@ -264,8 +276,9 @@ PointerAlignment: Left
# PPIndentWidth: -1
# QualifierAlignment: Leave
# ReferenceAlignment: Pointer
# ReflowComments: true
# ReflowComments: Always
# RemoveBracesLLVM: false
# RemoveEmptyLinesInUnwrappedLines: false
# RemoveParentheses: Leave
# RemoveSemicolon: false
RemoveSemicolon: true
Expand Down Expand Up @@ -349,4 +362,5 @@ StatementMacros:
# - NS_SWIFT_NAME
# - PP_STRINGIZE
# - STRINGIZE
# WrapNamespaceBodyWithEmptyLines: Leave
...
27 changes: 21 additions & 6 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,32 @@ Alternatively, include `static_assert` or `assert` lines in your
test case above whose failure clearly indicates the problem.

# STL version
* Option 1: Visual Studio version
+ Help > About Microsoft Visual Studio > Copy Info, we need only the first two lines
* Option 1: MSVC Compiler version
+ Example:
```
Microsoft Visual Studio Community 2022
Version 17.6.0 Preview 3.0
C:\Temp>cl.exe
Microsoft (R) C/C++ Optimizing Compiler Version 19.50.35503 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]
```
* Option 2: `_MSVC_STL_UPDATE` value
+ Example:
```
C:\Temp>type meow.cpp
#include <iostream>
int main() {
std::cout << _MSVC_STL_UPDATE << "\n";
}

C:\Temp>cl /EHsc /nologo /W4 meow.cpp && meow
meow.cpp
202507
```
* Option 2: git commit hash
* Option 3: git commit hash
+ Example:
```
https://github.com/microsoft/STL/commit/2195148
https://github.com/microsoft/STL/commit/219514876ea86491de191ceaa88632616bbc0f19
```

# Additional context
Expand Down
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ cmake_minimum_required(VERSION 3.31.0)
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
project(msvc_standard_libraries LANGUAGES CXX)

if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.44.35214")
message(FATAL_ERROR "The STL must be built with VS 2022 17.14.12 Preview 1 or later.")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.50.35503")
message(FATAL_ERROR "The STL must be built with MSVC Compiler 19.50 Preview 1 or later.")
endif()

include(CheckCXXSourceCompiles)
Expand All @@ -18,7 +18,7 @@ int main() {}
]=] WINDOWS_SDK_VERSION_CHECK)

if(NOT WINDOWS_SDK_VERSION_CHECK)
message(FATAL_ERROR "The STL must be built with the Windows 11 SDK (10.0.26100.4188) or later. Make sure it's available by selecting it in the Individual Components tab of the VS Installer.")
message(FATAL_ERROR "The STL must be built with the Windows 11 SDK (10.0.26100) or later. Make sure it's available by selecting it in the Individual Components tab of the VS Installer.")
endif()

if(NOT DEFINED VCLIBS_TARGET_ARCHITECTURE)
Expand Down Expand Up @@ -97,13 +97,13 @@ add_compile_definitions(
_WIN32_WINNT=0x0A00 NTDDI_VERSION=NTDDI_WIN11_GE)

if(STL_USE_ANALYZE)
# TRANSITION, Windows SDK 10.0.26100.4188 emits
# TRANSITION, Windows SDK 10.0.26100 emits
# "warning C6553: The annotation for function 'LCMapStringEx' on _Param_(9) does not apply to a value type."
# Reported as OS-40109504 "Windows SDK: incorrect SAL annotations on functions the STL uses".
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:/analyze:autolog-;/wd6553>")

if(VCLIBS_TARGET_ARCHITECTURE STREQUAL "arm64ec")
# TRANSITION, Windows SDK 10.0.26100.4188 emits
# TRANSITION, Windows SDK 10.0.26100 emits
# "warning C28301: No annotations for first declaration of 'meow'"
# for various intrinsics when building for ARM64EC.
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:/wd28301>")
Expand Down
26 changes: 13 additions & 13 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,35 @@
"binaryDir": "${sourceDir}/out/${presetName}"
},
{
"name": "x86",
"name": "x64",
"inherits": "base",
"description": "x86 Ninja Config",
"description": "x64 Ninja Config",
"architecture": {
"strategy": "external",
"value": "x86"
"value": "x64"
},
"condition": {
"type": "inList",
"string": "$env{Platform}",
"list": [
"x86",
"x64",
""
]
}
},
{
"name": "x64",
"name": "x86",
"inherits": "base",
"description": "x64 Ninja Config",
"description": "x86 Ninja Config",
"architecture": {
"strategy": "external",
"value": "x64"
"value": "x86"
},
"condition": {
"type": "inList",
"string": "$env{Platform}",
"list": [
"x64",
"x86",
""
]
}
Expand Down Expand Up @@ -89,16 +89,16 @@
}
],
"buildPresets": [
{
"name": "x86",
"configurePreset": "x86",
"description": "Build x86 STL"
},
{
"name": "x64",
"configurePreset": "x64",
"description": "Build x64 STL"
},
{
"name": "x86",
"configurePreset": "x86",
"description": "Build x86 STL"
},
{
"name": "ARM64",
"configurePreset": "ARM64",
Expand Down
Loading