Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since nodejs/node#55249 landed, the main branch of the
node
repo supports compilation with ClangCL with PCH. MSVC and ClangCL compilation times are similar now, so we can start compiling (in some time testing, and eventually releasing) with ClangCL.This PR adds support for compiling with ClangCL from v23. It also stops compiling v20 with VS2022 since it was temporary (we just never removed it before).
The labels we currently use in CI for VS2022 compilation are
win-vs2022
andwin-vs2022-arm64
. The format will stay the same, onlyvs2022
will be replaced byvs2022_clang
. The way I see it, this is the most consistent way of labeling it compared to what we already have in the CI, but if someone thinks differently we can discuss it.I already added those labels to the CI machines that will be compiling and made a copy of the Windows fanned job in https://ci.nodejs.org/job/mefi-node-test-commit-windows-fanned/, so I can confirm these changes work. Once this PR lands we can edit the original compile jobs to do the same.
The second part of the plan is to make new labels, similar to these for test jobs and once I test it in the CI, open a PR for them as well.
One more notable thing is that clcache doesn't work with ClangCL, so in parallel with all of this, I'll try and see about alternatives eg. ccache for ClangCL compilation.