From 59a9a3e819912bb77fd362fdf3047da42f2d922e Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Mon, 7 Aug 2023 16:11:13 -0700 Subject: [PATCH 1/6] Remove VSO-1659408 workarounds, update one to VSO-1867037. Validated internally. --- tests/std/include/range_algorithm_support.hpp | 4 ++-- tests/std/tests/P0019R8_atomic_ref/test.cpp | 2 -- .../P0040R3_extending_memory_management_tools/test.cpp | 10 ---------- tests/std/tests/P0660R10_stop_token/test.cpp | 2 -- tests/std/tests/P1135R6_atomic_flag_test/test.cpp | 2 -- 5 files changed, 2 insertions(+), 18 deletions(-) diff --git a/tests/std/include/range_algorithm_support.hpp b/tests/std/include/range_algorithm_support.hpp index 3d2de06d40..056c89aa0d 100644 --- a/tests/std/include/range_algorithm_support.hpp +++ b/tests/std/include/range_algorithm_support.hpp @@ -12,7 +12,7 @@ #include #include -#ifdef _M_CEE // TRANSITION, VSO-1659408 +#ifdef _M_CEE // TRANSITION, VSO-1867037 #include #endif // ^^^ workaround ^^^ @@ -72,7 +72,7 @@ template struct holder { STATIC_ASSERT(N < ~std::size_t{0} / sizeof(T)); -#ifdef _M_CEE // TRANSITION, VSO-1659408 +#ifdef _M_CEE // TRANSITION, VSO-1867037 unsigned char space[(N + 1) * sizeof(T)]; auto as_span() { diff --git a/tests/std/tests/P0019R8_atomic_ref/test.cpp b/tests/std/tests/P0019R8_atomic_ref/test.cpp index c6aa73439e..fa119be524 100644 --- a/tests/std/tests/P0019R8_atomic_ref/test.cpp +++ b/tests/std/tests/P0019R8_atomic_ref/test.cpp @@ -37,7 +37,6 @@ struct int128 { template void test_ops() { -#ifndef _M_CEE // TRANSITION, VSO-1659408 constexpr std::size_t unique = 80; // small to avoid overflow even for char constexpr std::size_t repetitions = 8000; constexpr std::size_t total = unique * repetitions; @@ -85,7 +84,6 @@ void test_ops() { assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, load) == range * repetitions * 2); assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, xchg0) == range * 2); assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, load) == 0); -#endif // _M_CEE } template diff --git a/tests/std/tests/P0040R3_extending_memory_management_tools/test.cpp b/tests/std/tests/P0040R3_extending_memory_management_tools/test.cpp index dce64b8444..2e122c0285 100644 --- a/tests/std/tests/P0040R3_extending_memory_management_tools/test.cpp +++ b/tests/std/tests/P0040R3_extending_memory_management_tools/test.cpp @@ -56,21 +56,11 @@ struct uninitialized_fixture { template struct uninitialized_storage { -#ifdef _M_CEE // TRANSITION, VSO-1659408 - char storage[sizeof(T) * Count + sizeof(T)]; - - T* begin() { - void* storageVoid = storage; - size_t space = sizeof(storage); - return static_cast(align(alignof(T), sizeof(T), storageVoid, space)); - } -#else // ^^^ _M_CEE / !_M_CEE vvv alignas(T) char storage[sizeof(T) * Count]; T* begin() { return &reinterpret_cast(storage); } -#endif // _M_CEE T* end() { return begin() + Count; diff --git a/tests/std/tests/P0660R10_stop_token/test.cpp b/tests/std/tests/P0660R10_stop_token/test.cpp index afad961313..132dd856a2 100644 --- a/tests/std/tests/P0660R10_stop_token/test.cpp +++ b/tests/std/tests/P0660R10_stop_token/test.cpp @@ -55,7 +55,6 @@ struct cb_destroying_functor { }; int main() noexcept { -#ifndef _M_CEE // TRANSITION, VSO-1659408 reset_new_counters(0); { // all the following must not allocate, and must work with a nostopstate source; in rough synopsis order stop_token token; @@ -416,5 +415,4 @@ int main() noexcept { reset_new_counters(0); puts("pass"); -#endif // _M_CEE } diff --git a/tests/std/tests/P1135R6_atomic_flag_test/test.cpp b/tests/std/tests/P1135R6_atomic_flag_test/test.cpp index 47d0604e1a..f82dbed310 100644 --- a/tests/std/tests/P1135R6_atomic_flag_test/test.cpp +++ b/tests/std/tests/P1135R6_atomic_flag_test/test.cpp @@ -82,8 +82,6 @@ void test_flag_type() { } int main() { -#ifndef _M_CEE // TRANSITION, VSO-1659408 test_flag_type(); test_flag_type(); -#endif // _M_CEE } From 356638894a498ab05d8e46159745485ca56eb62a Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 8 Aug 2023 11:44:11 -0700 Subject: [PATCH 2/6] PowerShell 7.3.6. --- azure-devops/provision-image.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-devops/provision-image.ps1 b/azure-devops/provision-image.ps1 index d87f5b4749..4b09f55976 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.5/PowerShell-7.3.5-win-x64.zip' + $PowerShellZipUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.6/PowerShell-7.3.6-win-x64.zip' Write-Host "Downloading: $PowerShellZipUrl" $ExtractedPowerShellPath = DownloadAndExtractZip -Url $PowerShellZipUrl $PwshPath = Join-Path $ExtractedPowerShellPath 'pwsh.exe' From 937af4062a65ea70aaee325a462fa5ed2f39c69a Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 8 Aug 2023 12:33:19 -0700 Subject: [PATCH 3/6] New pool. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4c306b0c31..68b5db353d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,7 +9,7 @@ variables: benchmarkBuildOutputLocation: 'D:\benchmark' pool: - name: 'StlBuild-2023-07-11T1513-Pool' + name: 'StlBuild-2023-08-08T1145-Pool' demands: EnableSpotVM -equals true pr: From 2384600b1fdfa48ddfaaa4fe0cfa93e94113958f Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 8 Aug 2023 12:34:30 -0700 Subject: [PATCH 4/6] VS 2022 17.8 Preview 1. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c898ffc531..c3ea0da31a 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.7 Preview 3 or later. +1. Install Visual Studio 2022 17.8 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. @@ -157,7 +157,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.7 Preview 3 or later. +1. Install Visual Studio 2022 17.8 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. From 3e4a717b753709e2f51896249e1e971bdd58b5ce Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Tue, 8 Aug 2023 12:36:37 -0700 Subject: [PATCH 5/6] Remove workaround for VSO-1849458. --- .../test.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp b/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp index ac110e8d1e..14d6bafb99 100644 --- a/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp +++ b/tests/std/tests/P0466R5_layout_compatibility_and_pointer_interconvertibility_traits/test.cpp @@ -71,13 +71,9 @@ constexpr bool test() { ASSERT(is_layout_compatible_v); ASSERT(is_layout_compatible_v); ASSERT(is_layout_compatible_v); - -#ifndef __EDG__ // TRANSITION, VSO-1849458 ASSERT(is_layout_compatible_v); ASSERT(is_layout_compatible_v); ASSERT(is_layout_compatible_v); -#endif // ^^^ no workaround ^^^ - ASSERT(!is_layout_compatible_v); ASSERT(!is_layout_compatible_v); ASSERT(!is_layout_compatible_v); From 4341c2fd7ba0c49c91bca06dd6f82d9c427aeb32 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Wed, 9 Aug 2023 21:13:44 -0700 Subject: [PATCH 6/6] Work around VSO-1659695. --- tests/std/tests/P0019R8_atomic_ref/test.cpp | 2 ++ tests/std/tests/P1135R6_atomic_flag_test/test.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/std/tests/P0019R8_atomic_ref/test.cpp b/tests/std/tests/P0019R8_atomic_ref/test.cpp index fa119be524..df504bce24 100644 --- a/tests/std/tests/P0019R8_atomic_ref/test.cpp +++ b/tests/std/tests/P0019R8_atomic_ref/test.cpp @@ -37,6 +37,7 @@ struct int128 { template void test_ops() { +#ifndef _M_CEE // TRANSITION, VSO-1659695 constexpr std::size_t unique = 80; // small to avoid overflow even for char constexpr std::size_t repetitions = 8000; constexpr std::size_t total = unique * repetitions; @@ -84,6 +85,7 @@ void test_ops() { assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, load) == range * repetitions * 2); assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, xchg0) == range * 2); assert(std::transform_reduce(par, refs.begin(), refs.end(), 0, std::plus{}, load) == 0); +#endif // _M_CEE } template diff --git a/tests/std/tests/P1135R6_atomic_flag_test/test.cpp b/tests/std/tests/P1135R6_atomic_flag_test/test.cpp index f82dbed310..93bc5f720b 100644 --- a/tests/std/tests/P1135R6_atomic_flag_test/test.cpp +++ b/tests/std/tests/P1135R6_atomic_flag_test/test.cpp @@ -82,6 +82,8 @@ void test_flag_type() { } int main() { +#ifndef _M_CEE // TRANSITION, VSO-1659695 test_flag_type(); test_flag_type(); +#endif // _M_CEE }