Update to LLVM 17 & fix Python/Windows build #2546
Merged
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.
clang-format
,clang-tidy
andclangd
support for C++ development #2541 introducedclang-tidy
as a lint pass, as well as a host of autofixes, one of which was to makecreate_mapping()
C++ methodconst
. However, in an#ifdef(windows)
block, a member value was mutated in this method, causing compilation errors on Windows. This method is actually vestigial in current Perspective (it related to disk-backedTable
implementations), but is still compiled. This PR simply fixes the compilation issue by removingconst
- in the future we should really move this functionality to a deprecated folder.clang-format
andclang-tidy
lint rules to use LLVM 17 (previously 16). Over the course of Improve C++/LSP/VSCode Integration #2467 Addclang-format
,clang-tidy
andclangd
support for C++ development #2541 we discovered no good way to achieve both glibc 1.26 and llvm 17 support for the entire lint+build process on the GitHub Actions CI machines available, without potentially building LLVM from source as part of the build process, so we chose LLVM 16 as a compromise. However, further conflicts made this untenable still so we instead only use LLVM 16 for lint+tidy, which happens in a dedicated CI job (VM) which does not compile (or is JS which does not use systemclang
). Since we don't compile with this toolchain, there is no actual reason to limit it, so this PR updates to 17 and applies autofix.