Toolset update: VS 2022 17.9 Preview 1 (#4197)

This commit is contained in:
Stephan T. Lavavej 2023-11-16 18:00:02 -08:00 коммит произвёл GitHub
Родитель 46843b3bf3
Коммит 5abffb659c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
9 изменённых файлов: 9 добавлений и 39 удалений

Просмотреть файл

@ -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:

Просмотреть файл

@ -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'

Просмотреть файл

@ -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'

Просмотреть файл

@ -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 <stacktrace> 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 <string> or

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -286,9 +286,7 @@ inline void test_atomic_wait() {
#ifndef __clang__ // TRANSITION, LLVM-46685
test_pad_bits<with_padding_bits<2>>(waiting_duration);
test_pad_bits<with_padding_bits<4>>(waiting_duration);
#if !(defined(_M_CEE) && defined(_M_IX86)) // TRANSITION, VSO-1881472
test_pad_bits<with_padding_bits<8>>(waiting_duration);
#endif // ^^^ no workaround ^^^
#ifndef _M_ARM
test_pad_bits<with_padding_bits<16>>(waiting_duration);
test_pad_bits<with_padding_bits<32>>(waiting_duration);

Просмотреть файл

@ -514,9 +514,7 @@ void test_sph_neumann() {
// Also test GH-3076 <cmath>: 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() {

Просмотреть файл

@ -1387,27 +1387,12 @@ STATIC_ASSERT(is_same_v<common_reference_t<simple_base const&&, simple_derived c
STATIC_ASSERT(is_same_v<common_reference_t<simple_base const&&, simple_derived&&>, simple_base const&&>);
STATIC_ASSERT(is_same_v<common_reference_t<simple_base const&&, simple_derived const&&>, 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<decltype((f))>() : declval<decltype((f))>())
// 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<common_reference_t<int (&)(), int (&)()>, int (&)()>);
STATIC_ASSERT(!is_same_v<common_reference_t<int (&&)(), int (&)()>, int (&)()>);
STATIC_ASSERT(!is_same_v<common_reference_t<int (&)(), int (&&)()>, int (&)()>);
STATIC_ASSERT(!is_same_v<common_reference_t<int (&&)(), int (&&)()>, 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<common_reference_t<int (&)(), int (&)()>, int (&)()>);
STATIC_ASSERT(is_same_v<common_reference_t<int (&&)(), int (&)()>, int (&)()>);
STATIC_ASSERT(is_same_v<common_reference_t<int (&)(), int (&&)()>, int (&)()>);
STATIC_ASSERT(is_same_v<common_reference_t<int (&&)(), int (&&)()>, int (&&)()>);
#endif // __EDG__
#endif // ^^^ no workaround ^^^
STATIC_ASSERT(is_same_v<common_reference_t<int const volatile&&, int volatile&&>, int const volatile&&>);
STATIC_ASSERT(is_same_v<common_reference_t<int&&, int const&, int volatile&>, int const volatile&>);