dotnet / jitutils

MIT License
146 stars 59 forks source link

Update clang-tidy and clang-format to newer versions and upload binaries for macOS arm64 #352

Open echesakov opened 2 years ago

echesakov commented 2 years ago

Right now running bootstrap.sh on macOS arm64 will fail with the following output:

Downloading clang-format to bin directory
curl: (22) The requested URL returned error: 404                                                                                                                                                         

chmod: bin/clang-format: No such file or directory
Downloading clang-tidy to bin directory
curl: (22) The requested URL returned error: 404                                                                                                                                                         

chmod: bin/clang-tidy: No such file or directory
Either clang-tidy or clang-format was not installed. Please install and put them on the PATH to use jit-format.
Tools can be found at http://llvm.org/releases/download.html#3.8.0
ERROR: Failed to download clang-format and clang-tidy

The easiest way to fix the issue would be to upload clang-tidy and clang-format from the official LLVM releases. However, https://github.com/llvm/llvm-project/releases/tag/llvmorg-13.0.1 doesn't contain any native tools for macOS arm64.

As a workaround, another pipeline (similar to coredistools) can be added to the repo that will produce clang-tidy and clang-format binaries on demand.

cc @BruceForstall

BruceForstall commented 2 years ago

I'll note that we currently depend on clang-format/clang-tidy versions 3.8, stored in the clrjit Azure Storage blob storage location.

It's not clear what the benefit would be to updating these versions. If clang-format/clang-tidy changed output, it might lead to superfluous formatting changes (at least once).

Unless someone actively is developing on macOS arm64, doing any work to support that would be unused.

Question: could the macOS arm64 build download and use the existing macOS x64 versions? That could be implemented by simply fixing the bootstrap.sh script to pick those up.

echesakov commented 2 years ago

Question: could the macOS arm64 build download and use the existing macOS x64 versions?

This should work - they will run under Rosetta 2.