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.13 Preview 3, Clang 19.1.1 #5247

Merged
merged 30 commits into from
Jan 24, 2025

Conversation

StephanTLavavej
Copy link
Member

@StephanTLavavej StephanTLavavej commented Jan 23, 2025

Fixes #4710.

📜 Changelog

  • Code cleanups:
    • Removed compiler bug workarounds.
  • Infrastructure improvements:
    • Updated dependencies.
      • Updated build compiler to VS 2022 17.13 Preview 3.
      • Updated Clang to 19.1.1 (now required).

⚙️ Commits

  • For CUDA, add '-n' (no reboot) and limit installed components to 'nvcc_12.4'.
    • This makes the installation significantly faster, and prevents the installer from hanging (which started happening in this toolset update for unknown reasons).
  • New pool.
  • VS 2022 17.13 Preview 3 (not yet required).
    • We still can't require 17.13 due to the MSVC-internal toolset not having been updated yet.
  • Clang 19 (required).
  • EDG: Remove workaround for VSO-1898933.
  • EDG: Remove workarounds for DevCom-10678753.
  • Clang: Expand workarounds for LLVM-56507.
    • This has gotten significantly worse, so I'm skipping the entire tests now. It's limited to Clang x86, so I don't care about the loss of coverage.
  • Clang: Remove workarounds for LLVM-75404.
  • Clang: Remove workarounds for what was thought to be LLVM-61763.
  • Clang: Remove workarounds in libcxx/expected_results.txt.
  • C1XX: Reported VSO-2338829.
  • C1XX: Reported VSO-2338880.
  • C1XX: Record DevCom-10808176 as fixed in 17.14 Preview 1.
  • VCRuntime: Record DevCom-10373274 as fixed in 17.14 Preview 1.
  • C1XX: Record VSO-2293247 as fixed in 17.13 Preview 4.
    • 17.13 Preview 3 didn't contain any MSVC toolset changes (only EDG and Clang), hence the delay.
  • LLVM-54051 was fixed, but this should be a perma-workaround.
    • Testing CTAD for alias templates is something for a compiler test suite. It isn't relevant to how <format> works, and the specific way we're constructing temporaries with braces would pose problems if we tried to use CTAD (as we could deduce basic_string<const char *> which is bogus).
  • Expect clang-format 19.1.1.
  • Update .clang-format defaults.
  • New option: Drop empty lines at start of file.
    • This doesn't result in any changes now, but will prevent such empty lines from being added in the future.
  • Add parens to avoid clang-format inserting icky spaces.
  • Suppress clang-format to avoid functional damage and poor formatting.
  • Change C casts to static_casts in tr1, to avoid clang-format inserting spaces.
    • We don't usually clean up tr1, but these are tiny and C casts are icky.
  • clang-format, no manual changes: Improve CTAD.
  • clang-format, no manual changes: Add spaces to pointers to members.
  • clang-format, no manual changes: Put braces on separate lines.
  • clang-format, no manual changes: Decrease indentation when wrapping (with a tiny bit of rewrapping).
  • clang-format, no manual changes: Slightly adjust how multi-line for-loops are indented.
  • clang-format, no manual changes: Reasonable rewrapping.
  • Change ALL pragma warning suppress to push-disable-pop in test code.
    • Sometimes expanding the scope slightly for clarity. This is because clang-format changed one line into three, breaking the suppress in P0083R3_splicing_maps_and_sets.
      We already cleaned up the product code to avoid this waste of time, in Improve warning suppressions for header units #3069 on 2022-09-03.
  • Restore MSVC-internal skips for ADDITIONAL_COMPILE_FLAGS.
    • These were marked as "These tests also need ADDITIONAL_COMPILE_FLAGS to silence warnings, but only for Clang 18" but this still repros with Clang 19. (They emit -Wmissing-designated-field-initializers warnings that are silenced by ADDITIONAL_COMPILE_FLAGS(gcc-style-warnings): -Wno-missing-field-initializers.) Restore them, and group them with the other skips.
  • Rephrase "CONTEST / C1XX" to "MSVC".
    • "Contest" was an old MSVC-internal test harness that we no longer use, so this was confusing.

STL-ASan-CI passed.

@StephanTLavavej StephanTLavavej added infrastructure Related to repository automation uncharted Excluded from the Status Chart labels Jan 23, 2025
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner January 23, 2025 11:50
StephanTLavavej and others added 21 commits January 23, 2025 13:05
Testing CTAD for alias templates is something for a compiler test suite. It isn't relevant to how <format> works, and the specific way we're constructing temporaries with
braces would pose problems if we tried to use CTAD (as we could deduce basic_string<const char *> which is bogus).
…g spaces.

We don't usually clean up tr1, but these are tiny and C casts are icky.
Sometimes expanding the scope slightly for clarity.
This is because clang-format changed one line into three, breaking the suppress in P0083R3_splicing_maps_and_sets.
We already cleaned up the product code to avoid this waste of time.
@StephanTLavavej StephanTLavavej removed the uncharted Excluded from the Status Chart label Jan 23, 2025
@StephanTLavavej StephanTLavavej changed the title Test toolset update Toolset update: VS 2022 17.13 Preview 3, Clang 19.1.1 Jan 23, 2025
@StephanTLavavej

This comment was marked as resolved.

This comment was marked as resolved.

Copy link
Member

@davidmrdavid davidmrdavid left a comment

Choose a reason for hiding this comment

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

:shipit: LGTM

@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.

Unskip sized deallocation tests with clang
2 participants