You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
My ultrabosses have decided that dropping support for targeting Win7 / Server 2008 R2 in VS 2022 17.12 is too aggressive, so I'm being required to restore it. However, dropping support has been approved for the 18.0 Preview 1 release (whenever that will happen, and whatever its major version branding will be), so this restoration is temporary.
Windows 7 and Server 2008 R2 are insecure operating systems, which haven't been receiving security updates for many months. Targeting them is making the world a worse place.
In yvals_core.h, we dropped _STL_WIN32_WINNT_WIN7, then we dropped _STL_WIN32_WINNT_WINBLUE.
In atomic_wait.cpp, we dropped _ATOMIC_WAIT_ON_ADDRESS_STATICALLY_AVAILABLE machinery, then we dropped __std_atomic_compare_exchange_128_fallback.
[cherry-pick] Cauterize usage of Win8 GetCurrentPackageId.
As previously explained:
This is technically a bonus cleanup - instead of removing machinery dealing with the conditional absence of Win8 APIs, it's removing machinery dealing with the conditional presence of Win8 APIs.
We should preserve this improvement, because it doesn't affect Win7 targeting.
Conflict resolutions: We want to remove DEFINEFUNCTIONPOINTER/STOREFUNCTIONPOINTER for GetCurrentPackageId next to where the machinery for GetSystemTimePreciseAsFileTime has been re-added.
Restore the system_clock comment change.
We don't need to mention the GetSystemTimeAsFileTime fallback for Win7 here.
Restore the P1135R6_atomic_wait test changes.
This made it self-contained (instead of centralized in test_atomic_wait.hpp).
This also made it not bother to verify the API level. __std_atomic_set_api_level exists for test purposes only, and our dev/test machines are all modern.
Rename P1135R6_atomic_wait_vista to P1135R6_atomic_wait_win7.
The directory name was confusing, since we've totally dropped Vista support.
Fuse test_atomic_wait.hpp into P1135R6_atomic_wait_win7.
No changes other than dropping the duplicate banner and #pragma once.
Note divergence: <atomic>: ADL-proof implementation of atomic and atomic_refΒ #4221 (merged 2024-01-17, before we removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types to P1135R6_atomic_wait only. There's no need to replicate that coverage.
Making P1135R6_atomic_wait and P1135R6_atomic_wait_win7 independent obviously duplicates test code, but will make final removal simpler (in 18.0p1).
β οΈ Note to self:
I will need to revert some of MSVC-PR-559637's internal changes, specifically "NON-GitHub: Link src/vctools/PDB binaries against synchronization.lib."
Conflict resolutions:
We want to remove `DEFINEFUNCTIONPOINTER`/`STOREFUNCTIONPOINTER` for `GetCurrentPackageId`
next to where the machinery for `GetSystemTimePreciseAsFileTime` is being restored.
This made it self-contained (instead of centralized in test_atomic_wait.hpp).
This also made it not bother to verify the API level. `__std_atomic_set_api_level` exists for test purposes only, and our dev/test machines are all modern.
No changes other than dropping the duplicate banner and `#pragma once`.
This obviously duplicates test code, but will make removal simpler.
Note divergence: GH 4221 (merged 2024-01-17, before GH 4742 removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types to `P1135R6_atomic_wait` only. There's no need to replicate that coverage.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
πΊοΈ Overview
My ultrabosses have decided that dropping support for targeting Win7 / Server 2008 R2 in VS 2022 17.12 is too aggressive, so I'm being required to restore it. However, dropping support has been approved for the 18.0 Preview 1 release (whenever that will happen, and whatever its major version branding will be), so this restoration is temporary.
Windows 7 and Server 2008 R2 are insecure operating systems, which haven't been receiving security updates for many months. Targeting them is making the world a worse place.
π Commits
atomic_ref<16 bytes>
Β #4751:yvals_core.h
, we dropped_STL_WIN32_WINNT_WIN7
, then we dropped_STL_WIN32_WINNT_WINBLUE
.atomic_wait.cpp
, we dropped_ATOMIC_WAIT_ON_ADDRESS_STATICALLY_AVAILABLE
machinery, then we dropped__std_atomic_compare_exchange_128_fallback
.GetCurrentPackageId
.DEFINEFUNCTIONPOINTER
/STOREFUNCTIONPOINTER
forGetCurrentPackageId
next to where the machinery forGetSystemTimePreciseAsFileTime
has been re-added.system_clock
comment change.GetSystemTimeAsFileTime
fallback for Win7 here.P1135R6_atomic_wait
test changes.test_atomic_wait.hpp
).__std_atomic_set_api_level
exists for test purposes only, and our dev/test machines are all modern.P1135R6_atomic_wait_vista
toP1135R6_atomic_wait_win7
.test_atomic_wait.hpp
intoP1135R6_atomic_wait_win7
.#pragma once
.<atomic>
: ADL-proof implementation ofatomic
andatomic_ref
Β #4221 (merged 2024-01-17, before we removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types toP1135R6_atomic_wait
only. There's no need to replicate that coverage.Making
P1135R6_atomic_wait
andP1135R6_atomic_wait_win7
independent obviously duplicates test code, but will make final removal simpler (in 18.0p1).I will need to revert some of MSVC-PR-559637's internal changes, specifically "NON-GitHub: Link
src/vctools/PDB
binaries againstsynchronization.lib
."