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.7 Preview 1 #3711

Merged
merged 37 commits into from
May 18, 2023

Conversation

StephanTLavavej
Copy link
Member

@StephanTLavavej StephanTLavavej commented May 17, 2023

New pool

  • Use PowerShell 7.3.4.
  • New pool.
    • Also contains May 2023's Patch Tuesday.
  • Mention VS 2022 17.7 Preview 1 in the README.
    • CMake and Ninja are unchanged.
  • Require Clang 16.
    • We can't require MSVC 19.37 yet because the internal toolset hasn't been sufficiently updated.

Remove workarounds

LLVM 16 changes from @CaseyCarter

LLVM 16 followups from @StephanTLavavej

  • Improve arrow comments.
  • We _EXPORT_STD both declarations and definitions.

Add/update workarounds

clang-format 16

  • clang-format 16, no manual changes.
    • The changes are almost entirely positive, with no horrible mangling, and limited weirdness around &, &&, and *. No need for manual fixups.
  • .clang-format: Update link to Clang 16, no behavioral changes.
  • .clang-format: Sort defaults, no behavioral changes.
  • .clang-format: Drop commented-out defaults, no behavioral changes.
    • BreakBeforeInheritanceComma and BreakConstructorInitializersBeforeComma were never documented and aren't printed out by -dump-config anymore.
    • The weird empty BasedOnStyle isn't printed out by -dump-config anymore.
    • ConstructorInitializerAllOnOneLineOrOnePerLine and AllowAllConstructorInitializersOnNextLine are now deprecated and aren't printed out by -dump-config anymore.
  • .clang-format: DeriveLineEnding and UseCRLF were deprecated and fused into LineEnding, no behavioral changes.
  • .clang-format: AlignTrailingComments is no longer a bool. Use the new options, no behavioral changes.
  • .clang-format: SortUsingDeclarations (which we didn't customize) is no longer a bool, no behavioral changes.
  • .clang-format: Add new defaults, no behavioral changes.
  • .clang-format: InsertNewlineAtEOF is new, set it to true. Doesn't change any files right now.
  • .clang-format: RemoveSemicolon is new, set it to true. Behavioral change!
  • clang-format 16, no manual changes - remove semicolons.

clang-format update process

As always, the idea is to run clang-format --style=LLVM -dump-config when a new version is available, and then update our .clang-format such that all of the defaults are commented out, followed by any customizations.

StephanTLavavej and others added 30 commits May 16, 2023 13:09
…n: !"If lookup found RDSymbol before it should find something this time, too", ParseTree.cpp 10376'.
…ebug mode with 'attempt to access expired storage' errors, part 3".
…nto requirements of class template members not implemented".
… remove workaround in `P2474R2_views_repeat`.
…tract`. Update `floating_point_model_matrix.lst` to silence these warnings.
…raint expressions effectively cannot be reproduced since each utterance is distinct).
The changes are almost entirely positive, with no horrible mangling,
and limited weirdness around `&`, `&&`, and `*`. No need for manual fixups.
`BreakBeforeInheritanceComma` and `BreakConstructorInitializersBeforeComma`
were never documented and aren't printed out by `-dump-config` anymore.

The weird empty `BasedOnStyle` isn't printed out by `-dump-config` anymore.

`ConstructorInitializerAllOnOneLineOrOnePerLine` and `AllowAllConstructorInitializersOnNextLine`
are now deprecated and aren't printed out by `-dump-config` anymore.
…used into `LineEnding`, no behavioral changes.
@StephanTLavavej StephanTLavavej added the infrastructure Related to repository automation label May 17, 2023
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner May 17, 2023 16:34
@StephanTLavavej StephanTLavavej self-assigned this May 17, 2023
@StephanTLavavej
Copy link
Member Author

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

_Different_from<_TupleLike, _Tuple> && _Tuple_like<_TupleLike>
&& (!_Is_subrange_v<remove_cvref_t<_TupleLike>>) &&(
tuple_size_v<_Tuple>
== tuple_size_v<remove_cvref_t<_TupleLike>>) &&_Can_construct_values_from_tuple_like_v<_Tuple, _TupleLike>
Copy link
Member

Choose a reason for hiding this comment

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

Ick. (No change requested, but I wouldn't complain.)

Comment on lines +750 to +751
// TRANSITION, VSO-1690654
#ifdef __EDG__
Copy link
Member

Choose a reason for hiding this comment

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

Not worth resetting testing, but I note that this will fit on one line now - which is how we'd conventionally write it.

#define _STL_128_DIV_INTRINSICS 1
#endif // ^^^ detect _udiv128 / _div128 ^^^
#ifdef __clang__
#define _STL_128_ADD_SUB_INTRINSICS 0 // clang doesn't have _addcarry_u64 / _subborrow_u64
Copy link
Member

Choose a reason for hiding this comment

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

Naming nit: these are 64-bit intrinsics, not 128-bit intrinsics.
More serious: This is a lie. I can reproduce the issue with the clang in 17.7p1, but not when I self-install 16.0.1. Something has gone awry in the VS clang tree, and we need to run it down.

I don't really care about the naming given that I suspect this will be a temporary workaround. I've filed #3713 to investigate this.

…nsion to repeat a type N times"."

This reverts commit eb6b4db.
@StephanTLavavej
Copy link
Member Author

I had to restore the workaround for VSO-1761088 "ICE when using a pack expansion to repeat a type N times".

(Sorry, not enough time today to address the "nice to have" nitpicks even though I'm resetting testing.)

@StephanTLavavej
Copy link
Member Author

I had to push an additional commit to skip the tgmath.h test.

@CaseyCarter CaseyCarter merged commit a621095 into microsoft:main May 18, 2023
@CaseyCarter
Copy link
Member

CaseyCarter commented May 18, 2023

Thanks for enabling us to use current tools! 🔧 (No joke, these toolset updates are a ton of work.)

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.

3 participants