Skip to content

Add a Clang 24 CI job to protect the modular build - #2308

Open
ispeters wants to merge 2 commits into
NVIDIA:mainfrom
ispeters:ci-clang-trunk-modules
Open

ispeters wants to merge 2 commits into
NVIDIA:mainfrom
ispeters:ci-clang-trunk-modules

Conversation

@ispeters

@ispeters ispeters commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

This changes replaces the existing modular Clang 22 build with a Clang 24 build that builds Clang from source before building stdexec. It pins Clang 24 to the commit that resolved the ICE that plagued Clang 22 and 23.

The Clang build is cached separately from the stdexec build so that it should only have to be built once.

The first build will fail until this change is rebased on #2307.

Add a "CPU (clang trunk, Debug, modules)" row to the CPU matrix that
builds Clang from llvm-project at a pinned commit and uses it for the
modular build. The pin is the merge of llvm/llvm-project#224528
(f970f59a9d4e), which fixes the nondeterministic Clang 23.1.0 ICE in
ImplicitConceptSpecializationDecl deserialization
(llvm/llvm-project#191361) that the modular build hits.

The job reuses the existing llvm22 rapidsai devcontainer image. It
builds a stripped Release toolchain limited to what the modular build
needs (clang, its resource headers, clang-scan-deps, and
libc++/libc++abi/libunwind) and caches it keyed on the commit and
image tag, saving the cache explicitly so a failing stdexec build
doesn't discard it. Only bumping llvm_sha or the image tag triggers a
rebuild.

Rows without llvm_sha are unaffected: the new steps are skipped and the
configure line falls back to the image's libc++.modules.json as before.
The Clang 22 modules row was allowed to fail because every released
22.1.x ICEs in the modular build. The from-source row now covers the
modular build with a compiler that doesn't, so the Clang 22 row adds
nothing. Update MAINTAINERS.md to say which compiler the modular build
is tested with.
@copy-pr-bot

copy-pr-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

This branch has not been deployed

No deployments
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.

1 participant