Skip to content

ci: test MSVC 14.44 and 14.51 on x64 and ARM64 - #375

Merged
mvandeberg merged 1 commit into
cppalliance:developfrom
mvandeberg:pr/msvc-ci-matrix
Sep 30, 2026
Merged

mvandeberg merged 1 commit into
cppalliance:developfrom
mvandeberg:pr/msvc-ci-matrix

Conversation

@mvandeberg

Copy link
Copy Markdown
Contributor

This change replaces the MSVC jobs with these jobs:

  • 14.44 on x64, on the windows-2022 runner (is_earliest). CMake uses the Visual Studio 17 2022 generator.
  • 14.51 on x64, on the windows-2025-vs2026 runner (is_latest). CMake uses the Ninja generator. The ASan variant moves with is_latest.
  • 14.44 on ARM64, on the windows-11-vs2026-arm runner. This job uses the side-by-side toolset of the image.
  • 14.51 on ARM64, on the windows-11-vs2026-arm runner.

This change removes the 14.34 jobs. No hosted runner has 14.34, and those jobs compiled with the default toolset of the image.

The new msvc_toolset field in compilers.json selects a side-by-side toolset. For this field, the Configure MSVC step writes a B2 user-config. The user-config sets a setup script that gives -vcvars_ver to vcvarsall. B2 runs this script before it builds.

The Configure MSVC step also compares the cl banner with the matrix. The step gets the target architecture from RUNNER_ARCH. If the version or the target architecture is different, the step stops with an error.

In cancel_close_stress_test, a separate coroutine lambda now runs each iteration of the worker. This change prevents an internal compiler error (C1001) in MSVC 19.51.36257 for x64 at /O2. The compiler fails when a co_await is in a counted loop in the try block of a coroutine. The iterations, counters, cancellation mix and assertions do not change.

This change replaces the MSVC jobs with these jobs:

- 14.44 on x64, on the windows-2022 runner (is_earliest). CMake uses
  the Visual Studio 17 2022 generator.
- 14.51 on x64, on the windows-2025-vs2026 runner (is_latest). CMake
  uses the Ninja generator. The ASan variant moves with is_latest.
- 14.44 on ARM64, on the windows-11-vs2026-arm runner. This job uses
  the side-by-side toolset of the image.
- 14.51 on ARM64, on the windows-11-vs2026-arm runner.

This change removes the 14.34 jobs. No hosted runner has 14.34, and
those jobs compiled with the default toolset of the image.

The new msvc_toolset field in compilers.json selects a side-by-side
toolset. For this field, the Configure MSVC step writes a B2
user-config. The user-config sets a setup script that gives
-vcvars_ver to vcvarsall. B2 runs this script before it builds.

The Configure MSVC step also compares the cl banner with the matrix.
The step gets the target architecture from RUNNER_ARCH. If the version
or the target architecture is different, the step stops with an error.

In cancel_close_stress_test, a separate coroutine lambda now runs each
iteration of the worker. This change prevents an internal compiler
error (C1001) in MSVC 19.51.36257 for x64 at /O2. The compiler fails
when a co_await is in a counted loop in the try block of a coroutine.
The iterations, counters, cancellation mix and assertions do not
change.
@mvandeberg
mvandeberg requested a review from sgerbino September 30, 2026 19:08
@cppalliance-bot

Copy link
Copy Markdown

GCOVR code coverage report https://375.corosio.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://375.corosio.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://375.corosio.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-09-30 19:33:49 UTC

@mvandeberg
mvandeberg merged commit bbdd595 into cppalliance:develop Sep 30, 2026
42 checks passed
@mvandeberg
mvandeberg deleted the pr/msvc-ci-matrix branch September 30, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants