diff --git a/CMakeLists.txt b/CMakeLists.txt index 599067f005..17ebf7456f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,7 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.25) - -# TRANSITION, CMake-24249 -cmake_policy(SET CMP0141 OLD) +cmake_minimum_required(VERSION 3.25.2) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) project(msvc_standard_libraries LANGUAGES CXX) diff --git a/README.md b/README.md index 1d6177109b..0b3c8b3221 100644 --- a/README.md +++ b/README.md @@ -141,11 +141,11 @@ 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.5 Preview 6 or later. +1. Install Visual Studio 2022 17.6 Preview 1 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. - * Otherwise, install [CMake][] 3.25 or later, and [Ninja][] 1.11.0 or later. + * Otherwise, install [CMake][] 3.25.2 or later, and [Ninja][] 1.11.0 or later. * We recommend selecting "Python 3 64-bit" in the VS Installer. * Otherwise, make sure [Python][] 3.9 or later is available to CMake. 2. Open Visual Studio, and choose the "Clone or check out code" option. Enter the URL of this repository, @@ -157,11 +157,11 @@ 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.5 Preview 6 or later. +1. Install Visual Studio 2022 17.6 Preview 1 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. - * Otherwise, install [CMake][] 3.25 or later, and [Ninja][] 1.11.0 or later. + * Otherwise, install [CMake][] 3.25.2 or later, and [Ninja][] 1.11.0 or later. * We recommend selecting "Python 3 64-bit" in the VS Installer. * Otherwise, make sure [Python][] 3.9 or later is available to CMake. 2. Open a command prompt. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2b10bc1b43..9a0f22ce43 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,7 +9,7 @@ variables: benchmarkBuildOutputLocation: 'D:\benchmark' pool: - name: 'StlBuild-2023-02-14T1520-Pool' + name: 'StlBuild-2023-02-21T1058-Pool' demands: EnableSpotVM -equals true pr: diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 403c9d5ee7..594b1db0c3 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.25) +cmake_minimum_required(VERSION 3.25.2) project(msvc_standard_libraries_benchmarks LANGUAGES CXX) if(DEFINED STL_BINARY_DIR) diff --git a/stl/CMakeLists.txt b/stl/CMakeLists.txt index fc12494a3f..4bc93c646c 100644 --- a/stl/CMakeLists.txt +++ b/stl/CMakeLists.txt @@ -492,10 +492,12 @@ set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "") # Toolset options must appear before add_library() for the options to take effect. add_compile_definitions(_CRTBLD _VCRT_ALLOW_INTERNALS _HAS_OLD_IOSTREAMS_MEMBERS=1 _STL_CONCRT_SUPPORT) +# /Z7 for MSVC, /Zi for MASM +set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "Embedded") + add_compile_options(/WX /Gy - "$<$:/diagnostics:caret;/W4;/w14265;/w15038;/fastfail;/guard:cf;/Z7;/Zp8;/std:c++latest;/permissive-;/Zc:threadSafeInit-;/Zl>" - # note that /Zi generates debug info inside the object file, it's the same as /Z7 for msvc - "$<$:/Zi;/W3;/nologo>" + "$<$:/diagnostics:caret;/W4;/w14265;/w15038;/fastfail;/guard:cf;/Zp8;/std:c++latest;/permissive-;/Zc:threadSafeInit-;/Zl>" + "$<$:/W3;/nologo>" ) include_directories(BEFORE diff --git a/stl/inc/type_traits b/stl/inc/type_traits index 2364ac2ec9..103cb1fa5c 100644 --- a/stl/inc/type_traits +++ b/stl/inc/type_traits @@ -615,8 +615,8 @@ struct has_unique_object_representations : bool_constant<__has_unique_object_rep _EXPORT_STD template _INLINE_VAR constexpr bool has_unique_object_representations_v = __has_unique_object_representations(_Ty); -// TRANSITION, Clang 16, VSO-1690654, and VS17.6p1 -#if defined(__clang__) || defined(__EDG__) || !defined(_MSVC_INTERNAL_TESTING) +// TRANSITION, Clang 16 and VSO-1690654 +#if defined(__clang__) || defined(__EDG__) template struct _Is_aggregate_impl : bool_constant<__is_aggregate(_Ty)> {}; diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index ce8d39dcec..b106c0950b 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -829,8 +829,8 @@ _EMIT_STL_ERROR(STL1002, "Unexpected compiler version, expected CUDA 11.6 or new _EMIT_STL_ERROR(STL1000, "Unexpected compiler version, expected Clang 15.0.0 or newer."); #endif // ^^^ old Clang ^^^ #elif defined(_MSC_VER) -#if _MSC_VER < 1935 // Coarse-grained, not inspecting _MSC_FULL_VER -_EMIT_STL_ERROR(STL1001, "Unexpected compiler version, expected MSVC 19.35 or newer."); +#if _MSC_VER < 1936 // Coarse-grained, not inspecting _MSC_FULL_VER +_EMIT_STL_ERROR(STL1001, "Unexpected compiler version, expected MSVC 19.36 or newer."); #endif // ^^^ old MSVC ^^^ #else // vvv other compilers vvv // not attempting to detect other compilers diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 8784fe8023..fe8d0c7842 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -364,9 +364,6 @@ std/language.support/support.coroutines/end.to.end/go.pass.cpp:0 FAIL # DevCom-10026599: conditional expression has two different types std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp:0 FAIL -# DevCom-10165380: [ICE] constexpr evaluation confused by complicated use of string literals -std/utilities/format/format.fmt.string/get.pass.cpp:0 FAIL - # DevCom-10284753: Overload resolution is sometimes wrong for templated classes whose template argument are cv void std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type.pass.cpp SKIPPED @@ -648,9 +645,6 @@ std/utilities/meta/meta.unary/dependent_return_type.compile.pass.cpp SKIPPED std/utilities/format/format.functions/escaped_output.ascii.pass.cpp SKIPPED std/utilities/variant/variant.variant/implicit_ctad.pass.cpp SKIPPED -# MoveOnlyForwardIterator (a misnomer) has mixed-type comparisons and conversions -std/ranges/range.utility/range.subrange/primitives.pass.cpp:0 FAIL - # libc++ speculatively implements LWG-3645 std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp FAIL diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index def39ca7a8..3b12cfd5fd 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.25) +cmake_minimum_required(VERSION 3.25.2) project(msvc_standard_libraries_tools LANGUAGES CXX) add_subdirectory(format) diff --git a/tools/format/CMakeLists.txt b/tools/format/CMakeLists.txt index 8224193c82..1986474dfa 100644 --- a/tools/format/CMakeLists.txt +++ b/tools/format/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.25) +cmake_minimum_required(VERSION 3.25.2) project(msvc_standard_libraries_format NONE) set(did_search OFF) diff --git a/tools/validate/CMakeLists.txt b/tools/validate/CMakeLists.txt index f794b9d0bc..0c14d4f86e 100644 --- a/tools/validate/CMakeLists.txt +++ b/tools/validate/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -cmake_minimum_required(VERSION 3.25) +cmake_minimum_required(VERSION 3.25.2) project(msvc_standard_libraries_validate LANGUAGES CXX) add_executable(validate-binary validate.cpp)