diff --git a/README.md b/README.md index d8bdc0aee34..77e152f6742 100644 --- a/README.md +++ b/README.md @@ -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.8 Preview 3 or later. +1. Install Visual Studio 2022 17.9 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. @@ -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.8 Preview 3 or later. +1. Install Visual Studio 2022 17.9 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. @@ -164,7 +164,7 @@ Just try to follow these rules, so we can spend more time fixing bugs and implem * Make sure [Python][] 3.12 or later is available to CMake. 2. Open a command prompt. 3. Change directories to a location where you'd like a clone of this STL repository. -4. `git clone https://github.com/microsoft/STL --recurse-submodules` +4. `git clone https://github.com/microsoft/STL.git --recurse-submodules` To build the x86 target: diff --git a/azure-devops/config.yml b/azure-devops/config.yml index 0e2c41d3842..54f81c44138 100644 --- a/azure-devops/config.yml +++ b/azure-devops/config.yml @@ -5,7 +5,7 @@ variables: - name: poolName - value: 'StlBuild-2023-10-10T1443-Pool' + value: 'StlBuild-2023-11-15T0519-Pool' readonly: true - name: poolDemands value: 'EnableSpotVM -equals true' diff --git a/azure-devops/provision-image.ps1 b/azure-devops/provision-image.ps1 index d2079664bd1..7461fc8252e 100644 --- a/azure-devops/provision-image.ps1 +++ b/azure-devops/provision-image.ps1 @@ -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.8/PowerShell-7.3.8-win-x64.zip' + $PowerShellZipUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.9/PowerShell-7.3.9-win-x64.zip' Write-Host "Downloading: $PowerShellZipUrl" $ExtractedPowerShellPath = DownloadAndExtractZip -Url $PowerShellZipUrl $PwshPath = Join-Path $ExtractedPowerShellPath 'pwsh.exe' diff --git a/stl/inc/stacktrace b/stl/inc/stacktrace index be9c8e97671..22a4eda8ba6 100644 --- a/stl/inc/stacktrace +++ b/stl/inc/stacktrace @@ -25,11 +25,6 @@ _STL_DISABLE_CLANG_WARNINGS #pragma push_macro("new") #undef new -// TRANSITION, VSO-1885306: warning C5039 shouldn't be emitted when an extern "C" function is marked noexcept(false) -#pragma warning(disable : 5039) // '__std_stacktrace_meow': pointer or reference to potentially throwing function - // passed to 'extern "C"' function under -EHc. Undefined behavior may occur if this - // function throws an exception. (/Wall) - // The separately compiled part of the implementation calls a function pointer of _Stacktrace_string_fill // type to allocate a buffer for string output. The called function does the buffer allocation and calls a function // pointer of _Stacktrace_string_fill_callback type to fill the buffer. This is needed to type-erase or diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index 1c494ad1100..198ebed5d62 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -892,8 +892,8 @@ _EMIT_STL_ERROR(STL1002, "Unexpected compiler version, expected CUDA 11.6 or new _EMIT_STL_ERROR(STL1000, "Unexpected compiler version, expected Clang 16.0.0 or newer."); #endif // ^^^ old Clang ^^^ #elif defined(_MSC_VER) -#if _MSC_VER < 1938 // Coarse-grained, not inspecting _MSC_FULL_VER -_EMIT_STL_ERROR(STL1001, "Unexpected compiler version, expected MSVC 19.38 or newer."); +#if _MSC_VER < 1939 // Coarse-grained, not inspecting _MSC_FULL_VER +_EMIT_STL_ERROR(STL1001, "Unexpected compiler version, expected MSVC 19.39 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 17635616851..c681105abc2 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -408,10 +408,6 @@ std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset_se std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp:0 FAIL std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp:1 FAIL -# DevCom-10138792: C4455 'operator ""s': literal suffix identifiers that do not start with an underscore are reserved -std/strings/basic.string.literals/noexcept.compile.pass.cpp:0 FAIL -std/strings/basic.string.literals/noexcept.compile.pass.cpp:1 FAIL - # DevCom-1626139 "compile-time NaN comparison" std/iterators/predef.iterators/reverse.iterators/reverse.iter.cmp/three-way.pass.cpp:0 FAIL std/iterators/predef.iterators/reverse.iterators/reverse.iter.cmp/three-way.pass.cpp:1 FAIL @@ -1064,8 +1060,6 @@ std/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp:0 FAIL std/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp:1 FAIL std/containers/sequences/vector.bool/emplace_back.pass.cpp FAIL std/containers/sequences/vector.bool/enabled_hash.pass.cpp FAIL -std/containers/sequences/vector.bool/move.pass.cpp:0 FAIL -std/containers/sequences/vector.bool/move.pass.cpp:1 FAIL std/containers/sequences/vector.bool/vector_bool.pass.cpp FAIL std/containers/sequences/vector/iterators.pass.cpp:0 FAIL std/containers/sequences/vector/iterators.pass.cpp:1 FAIL diff --git a/tests/std/include/test_atomic_wait.hpp b/tests/std/include/test_atomic_wait.hpp index 16ca07aa9ce..9322cd5454a 100644 --- a/tests/std/include/test_atomic_wait.hpp +++ b/tests/std/include/test_atomic_wait.hpp @@ -286,9 +286,7 @@ inline void test_atomic_wait() { #ifndef __clang__ // TRANSITION, LLVM-46685 test_pad_bits>(waiting_duration); test_pad_bits>(waiting_duration); -#if !(defined(_M_CEE) && defined(_M_IX86)) // TRANSITION, VSO-1881472 test_pad_bits>(waiting_duration); -#endif // ^^^ no workaround ^^^ #ifndef _M_ARM test_pad_bits>(waiting_duration); test_pad_bits>(waiting_duration); diff --git a/tests/std/tests/P0226R1_math_special_functions/test.cpp b/tests/std/tests/P0226R1_math_special_functions/test.cpp index 294f2817830..aa0993a7f54 100644 --- a/tests/std/tests/P0226R1_math_special_functions/test.cpp +++ b/tests/std/tests/P0226R1_math_special_functions/test.cpp @@ -514,9 +514,7 @@ void test_sph_neumann() { // Also test GH-3076 : Invalid output for incomplete elliptic integral of the second kind with k = 1 void test_gh_3076() { -#if !defined(_MSVC_INTERNAL_TESTING) || !defined(_DLL) // TRANSITION, 17.6 Preview 2 unlocked redist assert(isclose(ellint_2(1, 6.2831853071795862), 4.0)); -#endif // !defined(_MSVC_INTERNAL_TESTING) || !defined(_DLL) } int main() { diff --git a/tests/std/tests/VSO_0000000_type_traits/test.cpp b/tests/std/tests/VSO_0000000_type_traits/test.cpp index fb00b3c3efe..2c272249256 100644 --- a/tests/std/tests/VSO_0000000_type_traits/test.cpp +++ b/tests/std/tests/VSO_0000000_type_traits/test.cpp @@ -1387,27 +1387,12 @@ STATIC_ASSERT(is_same_v, simple_base const&&>); STATIC_ASSERT(is_same_v, simple_base const&&>); -#ifdef __EDG__ -// When f is the name of a function of type int(), C1XX incorrectly believes that -// decltype(false ? f : f) -// is int() in permissive mode and int(*)() in strict mode (Yes, two different incorrect results). It also -// correctly believes that -// decltype(false ? declval() : declval()) -// is int(&)(), which is nice because it allows this test case to pass. EDG believes the type of both the above -// is int() in all modes. I suspect this is intentional bug compatibility with C1XX, so I'm not filing a bug. I -// _do_ assert here that EDG produces the _wrong_ type from common_reference_t, however, so that THIS TEST WILL -// FAIL IF AND WHEN EDG STARTS BEHAVING CORRECTLY. We can then remove the non-workaround to defend against -// regression. -STATIC_ASSERT(!is_same_v, int (&)()>); -STATIC_ASSERT(!is_same_v, int (&)()>); -STATIC_ASSERT(!is_same_v, int (&)()>); -STATIC_ASSERT(!is_same_v, int (&&)()>); -#else // ^^^ EDG / not EDG vvv +#if !(defined(__EDG__) && defined(_MSVC_INTERNAL_TESTING)) // TRANSITION, remove after EDG is updated internally STATIC_ASSERT(is_same_v, int (&)()>); STATIC_ASSERT(is_same_v, int (&)()>); STATIC_ASSERT(is_same_v, int (&)()>); STATIC_ASSERT(is_same_v, int (&&)()>); -#endif // __EDG__ +#endif // ^^^ no workaround ^^^ STATIC_ASSERT(is_same_v, int const volatile&&>); STATIC_ASSERT(is_same_v, int const volatile&>);