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

Toolset update: VS 2022 17.10 Preview 2, WinSDK 22621, CUDA 12.4.0 #4475

Merged
merged 13 commits into from
Mar 16, 2024

Conversation

StephanTLavavej
Copy link
Member

📜 Changelog

  • Code cleanups:
    • Removed compiler bug workarounds.
  • Infrastructure improvements:
    • Updated dependencies.
      • Updated build compiler to VS 2022 17.10 Preview 2.
      • Updated to Windows 11 SDK 22621. This is now required for building and testing the STL, but not for using it.
      • Updated CUDA to 12.4.0 (now required).

⚙️ Details

WinSDK

WinSDK 22621 is now used by the MSVC-internal build (this was MSVC-PR-407828 which flowed into prod/fe via MSVC-PR-528863 on 2024-02-15).

In CMakeLists.txt, this defines NTDDI_VERSION=NTDDI_WIN10_NI to make the latest machinery available, although we don't need any of it yet. #2714 was when we last increased this to the maximum supported value (getting FILE_DISPOSITION_INFO_EX along the way). Note: Just because the latest machinery is declared, doesn't mean that we'll start requiring the latest OS - we always have runtime OS checks when attempting to actually use new machinery.

CUDA

CUDA 12.4.0 is the first version that allows VS 2022 17.10 (_MSC_VER 1940), allowing us to remove --allow-unsupported-compiler (recently added by #4392). The last time we increased our requirement was #2791 when CUDA 11.6.0 began supporting VS 2022.

Note that our escape hatch _ALLOW_COMPILER_AND_STL_VERSION_MISMATCH remains available if a user can't upgrade their CUDA at the same time as their VS for some reason.

AV exclusions

I'm dropping the AV exclusions in provision-image.ps1. Nobody has hissed at us yet, but I saw MSVC-PR-533609 making similar changes in MSVC-internal scripts, so I think we should do this now (even though our VMs are, of course, completely untrusted, unprivileged, and ephemeral).

Compiler bug workaround removals

  • VSO-1888157 "[EDG] failure to compare past-the-end pointer with nullptr in constexpr", fixed 2023-10-30.
  • DevCom-10112408 VSO-1588505 "Implicit conversion to function parameter of a non-movable type is still broken", closed as fixed on 2023-11-06.
  • VSO-1538698 "Better handling for non-exported friend function declarations", fixed in 17.10 Preview 2.

⚠️ Note to self:

NON-GitHub change required to define NTDDI_VERSION to NTDDI_WIN10_NI in src/vctools/crt/crt-common.settings.targets.

@StephanTLavavej StephanTLavavej added the infrastructure Related to repository automation label Mar 13, 2024
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner March 13, 2024 08:46
@@ -9,12 +9,12 @@ project(msvc_standard_libraries LANGUAGES CXX)
include(CheckCXXSourceCompiles)
check_cxx_source_compiles([=[
#include <sdkddkver.h>
static_assert(WDK_NTDDI_VERSION >= NTDDI_WIN10_CO, "Inspecting WDK_NTDDI_VERSION, the Windows SDK version.");
static_assert(WDK_NTDDI_VERSION >= NTDDI_WIN10_NI, "Inspecting WDK_NTDDI_VERSION, the Windows SDK version.");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm trying really hard not to make a Monty Python reference here for Windows "Ni". (No change requested.)

@StephanTLavavej StephanTLavavej self-assigned this Mar 15, 2024
@StephanTLavavej
Copy link
Member Author

I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.

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
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants