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

Adding ClangCL to the CI #4001

Open
StefanStojanovic opened this issue Jan 16, 2025 · 0 comments
Open

Adding ClangCL to the CI #4001

StefanStojanovic opened this issue Jan 16, 2025 · 0 comments

Comments

@StefanStojanovic
Copy link
Contributor

Plan

Since Node.js can now be compiled with ClangCL on Windows, I'll start adapting the CI to start using that. Here is the plan in short and we'll work out the details as we go forward:

  1. Start compiling with ClangCL - Initially, we can add only x64, and later include arm64 too. The idea is to compile for some time to gain confidence. This phase should not be too long unless we encounter some issues.
  2. Start testing the ClangCL-produced binaries - This is a second phase, that will be prepared during the first one (eg. detecting flaky tests, fixing them or marking them flaky, etc).
  3. Start releasing ClangCL-produced binaries - This will happen after we gain enough confidence from testing. At this point, we can start thinking about dropping MSVC support in the long run or at least making it a lower-tier compiler on Windows.

Preparation

This part is done, as a part of it I did the following:

  1. Configured compilation machines to be able to compile with ClangCL. I've also made ansible changes so that the machines we create in the future will be ready to do it out of the box
  2. Added new labels for both compiling and testing the ClangCL setup.
  3. Created temp jobs where I tested all of this before moving to the main Windows fanned job.

Other work

Besides the main plan, there are some things to take care of as well (this list might get new entries later on):

  1. Enable compilation caching for ClangCL - ccache we are using for MSVC doesn't work here, I'm currently trying out ccache, but it is also not working out of the box because of the build process (V8 is generating some files in the obj directory which interferes with PCH).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant