Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@StephanTLavavej
Copy link
Member

@StephanTLavavej StephanTLavavej commented Nov 10, 2022

  • New 1ES Hosted Pool, containing Patch Tuesday.
  • New toolset, VS 2022 17.5 Preview 1.
    • This is not yet required in <yvals_core.h>, 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<bool> and applies to release mode too. That has been reported as VSO-1674154 "EDG rejects constexpr vector<bool> with 'invalid arithmetic on non-array pointer' error".

StephanTLavavej and others added 8 commits November 8, 2022 18:02
…1674154.

VSO-1674140 "EDG rejects constexpr string/vector in debug mode with 'attempt to access expired storage' errors"

VSO-1674154 "EDG rejects constexpr vector<bool> with 'invalid arithmetic on non-array pointer' error"
@StephanTLavavej StephanTLavavej added the infrastructure Related to repository automation label Nov 10, 2022
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner November 10, 2022 03:13
@StephanTLavavej StephanTLavavej self-assigned this Nov 11, 2022
@StephanTLavavej
Copy link
Member Author

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

@StephanTLavavej
Copy link
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".

@StephanTLavavej StephanTLavavej merged commit f58deab into microsoft:main Nov 11, 2022
@StephanTLavavej StephanTLavavej deleted the vs17.5p1 branch November 11, 2022 22:39
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