Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VS 2019 16.9 Preview 1 toolset update #1451

Merged
merged 19 commits into from
Nov 13, 2020

Conversation

StephanTLavavej
Copy link
Member

@StephanTLavavej StephanTLavavej commented Nov 12, 2020

This updates the toolset to VS 2019 16.9 Preview 1 and removes a bunch of compiler bug workarounds.

  • .github/ISSUE_TEMPLATE/cxx23-feature.md
    • Transform the issue template for C++20 features to C++23. This adds a note that we aren't ready to begin work on C++23.
  • CMakeLists.txt
    • VS 2019 16.9 Preview 1 ships CMake 3.18; make that our minimum required version.
  • README.md
    • Mention the new VS and CMake versions.
  • azure-devops/create-vmss.ps1
    • Increase $TotalProgress and add an initial step to Set-AzContext -SubscriptionName CPP_STL_GitHub. (For unknown reasons, I now have access to a bunch of subscriptions, and Connect-AzAccount selects the first one, which isn't CPP_STL_GitHub. This Set-AzContext step allows the following steps to work, and should have no harmful effects if a maintainer has access to only CPP_STL_GitHub.)
    • When the script is done, don't print AdminUser and $AdminPW. We don't need these credentials.
  • azure-devops/provision-image.ps1
  • azure-pipelines.yml
    • Use the new Virtual Machine Scale Set pool.
  • stl/inc/filesystem
    • Remove the workaround for the internal compiler bug VSO-571749.
  • stl/inc/memory_resource
    • Remove the workaround for the compiler bug DevCom-1159869 that affected Standard Library Header Units.
  • stl/inc/tuple
  • stl/inc/utility
    • Work around the internal compiler bug VSO-1236041 affecting pair's piecewise constructor with Standard Library Header Units, by defining that constructor in <utility> instead of <tuple>. To do so, we need to define an internal _Tuple_get helper for modifiable rvalues only. This mitigates the throughput impact for <utility>, and should avoid disrupting conformance tests that are overly sensitive to the order of get declarations. As a bonus, we can now define pair's constructors entirely within the class definition.
  • stl/inc/yvals_core.h
    • MSVC and EDG now define __cpp_impl_coroutine to its C++20 value, so we don't need the 197000L workaround. (We still need #ifdef __cpp_impl_coroutine for Clang.)
  • tests/libcxx/expected_results.txt
    • The MSVC configuration of allocator.members/allocate.pass.cpp now passes, so mark it as FAIL for Clang only. (No change to skipped_tests.txt.)
  • tests/std/tests/P0433R2_deduction_guides/test.cpp
    • Remove the workaround for the internal compiler bug VSO-587956.
  • tests/std/tests/P0896R4_ranges_range_machinery/test.cpp
  • tests/std/tests/P0896R4_views_common/test.cpp
  • tests/std/tests/P0896R4_views_drop_while/test.cpp
  • tests/std/tests/P0896R4_views_filter/test.cpp
  • tests/std/tests/P0896R4_views_reverse/test.cpp
  • tests/std/tests/P0896R4_views_take_while/test.cpp
  • tests/std/tests/P0896R4_views_transform/test.cpp
    • Remove the (hilariously bizarre 🤪) workaround for the compiler bug DevCom-1159442.
  • tests/std/tests/P1502R1_standard_library_header_units/test.cpp
    • Remove many compiler bug workarounds.
  • tests/std/tests/VSO_0157762_feature_test_macros/test.compile.pass.cpp
    • Remove the __cpp_impl_coroutine 197000L workaround; see yvals_core.h above.

Note: The _MSC_VER check is not changing, as its value will remain 1928 for 16.9 (due to running out of one's digits). The difference is detectable through _MSC_FULL_VER, but this check doesn't need to be strict - it merely diagnoses egregious compiler version mismatch.

STL/stl/inc/yvals_core.h

Lines 515 to 516 in 9959929

#if _MSC_VER < 1928 // Coarse-grained, not inspecting _MSC_FULL_VER
#error STL1001: Unexpected compiler version, expected MSVC 19.28 or newer.

@StephanTLavavej StephanTLavavej added the infrastructure Related to repository automation label Nov 12, 2020
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner November 12, 2020 04:21
stl/inc/tuple Outdated Show resolved Hide resolved
@StephanTLavavej StephanTLavavej self-assigned this Nov 12, 2020
@StephanTLavavej
Copy link
Member Author

(I'm trying to get the internal test suite to pass, hence the back-and-forth commits)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Related to repository automation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants