Skip to content

Toolset update: VS 2022 17.5 Preview 1, Python 3.11.0 - #3202

Merged
Stephan T. Lavavej (StephanTLavavej) merged 9 commits into
microsoft:mainfrom
StephanTLavavej:vs17.5p1
Nov 11, 2022
Merged

Stephan T. Lavavej (StephanTLavavej) merged 9 commits into
microsoft:mainfrom
StephanTLavavej:vs17.5p1

Conversation

@StephanTLavavej

@StephanTLavavej Stephan T. Lavavej (StephanTLavavej) commented Nov 10, 2022 •

Copy link
Copy Markdown
Member
  • New 1ES Hosted Pool, containing Patch Tuesday.
  • New toolset, VS 2022 17.5 Preview 1.
    • This is not yet required in , because the MSVC-internal build is still using MSVC 19.34.
  • This also contains Python 3.11.0 (with major performance improvements, although it doesn't make a massive difference for our test runs, which are dominated by compile time).
    • Not updating the minimum required version, as the VS Installer still offers Python 3.9.7.
  • Use PowerShell 7.3.0 while preparing the VM.
    • Note that PowerShell 7.3.0 can't be used locally while preparing the 1ES Hosted Pool. As mentioned in the Checklist for Toolset Updates, there's an active Azure PowerShell bug about this.
  • Remove EDG compiler bug workarounds:
    • Update citation from VSO-1641993 "REPORTED: EDG __builtin_memcmp misbehavior, part 2" to VSO-1675318 "EDG __builtin_memcmp misbehavior, part 3".
    • Remove _CONSTEXPR20_STRING_LITERALS workaround.
    • Remove workaround in Dev10_816787_swap_vector_bool_elements.
  • Overhaul the constexpr string/vector tests, which had accumulated a mess of EDG workarounds. 🙀 This was problematic because there were overlapping ifdefs, some became unnecessary due to fixes over time, some could be debug-only, and many were working around a real problem but the reported bugs were resolved, so no action was being taken.
    • The diff looks horrible (I'd recommend focusing on the end result, and trusting that I haven't damaged things along the way; in a few cases I needed to move test code around a bit). Ultimately, this irons out everything into a highly systematic workaround, slightly refined from what P0980R1_constexpr_strings was doing. When we're (1) EDG and (2) IDL=2 and (3) compile-time, we skip test code. This activates as much test code as possible.
    • I verified that each remaining workaround is necessary, and is working around the same error message, which I've reported as VSO-1674140 "EDG rejects constexpr string/vector in debug mode with 'attempt to access expired storage' errors".
    • One workaround is unique, in that it's specific to vector and applies to release mode too. That has been reported as VSO-1674154 "EDG rejects constexpr vector with 'invalid arithmetic on non-array pointer' error".

@StephanTLavavej Stephan T. Lavavej (StephanTLavavej) added the infrastructure Related to repository automation label Nov 10, 2022
@StephanTLavavej

Copy link
Copy Markdown
Member Author

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

@StephanTLavavej

Copy link
Copy Markdown
Member Author

I've pushed an additional commit to restore a workaround and update the citation to VSO-1675318 "EDG __builtin_memcmp misbehavior, part 3".

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.

2 participants