Skip to content

Conversation

@mingxwa
Copy link
Member

@mingxwa mingxwa commented Dec 6, 2025

Changes

  • Updated Clang major version from 20 to 21. Added Clang 20 to compatibility tests.
  • Updated GCC major version from 14 to 15 using GCC Docker container image.
  • Updated NVHPC from 25.7 to 25.11.
  • Updated dependencies to their latest versions:
    • fmt from 11.2.0 to 12.1.0. Also refactored proxy_fmt.h not to rely on fmt::is_char because it's removed in the latest 12.x.
    • google-benchmark from 1.9.0 to 1.9.4.
    • google-test from 1.15.2 to 1.17.0.
    • nlohmann-json from 3.11.3 to 3.12.0.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request updates the project's toolchain and dependencies to their latest versions. The primary focus is upgrading major compiler versions (Clang 20→21, GCC 14→15, NVHPC 25.7→25.11) and core dependencies (fmt, google-test, google-benchmark, nlohmann-json). The PR also refactors proxy_fmt.h to maintain compatibility with fmt 12.x by replacing the removed fmt::is_char check with version-based type aliases.

  • Updated three major compiler toolchains to their latest versions
  • Upgraded four key dependencies to newer releases
  • Refactored fmt integration code to use version-specific type aliases instead of removed API
  • Consolidated FetchContent setup in parent CMakeLists.txt for better organization

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/bvt-clang.yml Updates Clang from version 20 to 21 in the main build and test workflow
.github/workflows/bvt-gcc.yml Updates GCC from version 14 to 15 using Docker container approach
.github/workflows/bvt-nvhpc.yml Updates NVHPC from version 25.7 to 25.11
.github/workflows/bvt-compatibility.yml Adds Clang 20 to compatibility tests alongside existing compiler versions
CMakeLists.txt Consolidates FetchContent setup and declares fmt 12.1.0 in parent CMake file
include/proxy/v4/proxy.h Fixes whitespace formatting in macro definition
include/proxy/v4/proxy_fmt.h Refactors to use version-based type aliases instead of removed fmt::is_char API
tests/proxy_fmt_format_tests.cpp Removes NVCOMPILER pragma guards that are no longer needed
tests/CMakeLists.txt Updates google-test to 1.17.0 and removes redundant FetchContent declarations
benchmarks/CMakeLists.txt Updates google-benchmark to 1.9.4 and removes redundant FetchContent setup
docs/CMakeLists.txt Removes redundant fmt FetchContent declaration now in parent CMake
tools/report_generator/CMakeLists.txt Updates nlohmann-json to 3.12.0 with new archive URL
cmake/msft_proxy4ModuleTargets.cmake Adds Clang compiler flag to suppress C++2b extension warnings

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mingxwa mingxwa merged commit 1d4ea35 into microsoft:main Dec 6, 2025
10 checks passed
@mingxwa mingxwa deleted the user/mingxwa/upgrade-toolchain branch December 6, 2025 12:28
@mingxwa mingxwa mentioned this pull request Dec 6, 2025
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants