Skip to content

Conversation

@rjaegers
Copy link
Contributor

This pull request adds support for LLVM 20 across the project, updates supported LLVM versions in various configuration files, and introduces a new development container setup for Ubuntu 24.04 with LLVM 20. It also includes necessary code changes to maintain compatibility with LLVM 20's API updates.

LLVM 20 Support and Compatibility:

  • Added LLVM 20 to the supported versions matrix for Ubuntu 24.04 (both arm64 and x86_64), macOS, and the Bazel module configuration (.github/workflows/ci-Ubuntu_24.04-arm64.yml, .github/workflows/ci-Ubuntu_24.04-x86_64.yml, .github/workflows/ci-macOS-arm64.yml, MODULE.bazel). [1] [2] [3] [4] [5]
  • Updated C++ source files to handle LLVM 20 API changes, specifically by including llvm/Support/VirtualFileSystem.h and passing the real file system to createDiagnostics where required (lib/JunkDetection/CXX/ASTStorage.cpp, tests/unit/Helpers/InMemoryCompiler.cpp). [1] [2] [3] [4]

Development Environment Enhancements:

  • Added a new devcontainer configuration for Ubuntu 24.04 with LLVM 20, including a Dockerfile that installs all required dependencies and development tools (.devcontainer/ubuntu_24.04-llvm-20/Dockerfile, .devcontainer/ubuntu_24.04-llvm-20/devcontainer.json). [1] [2]
  • Introduced a base devcontainer configuration using the mcr.microsoft.com/devcontainers/base:noble image (.devcontainer/devcontainer.json).

This pull request adds support for LLVM 20 across the project, updates supported LLVM versions in various configuration files, and introduces a new development container setup for Ubuntu 24.04 with LLVM 20. It also includes necessary code changes to maintain compatibility with LLVM 20's API updates.

**LLVM 20 Support and Compatibility:**

* Added LLVM 20 to the supported versions matrix for Ubuntu 24.04 (both arm64 and x86_64), macOS, and the Bazel module configuration (`.github/workflows/ci-Ubuntu_24.04-arm64.yml`, `.github/workflows/ci-Ubuntu_24.04-x86_64.yml`, `.github/workflows/ci-macOS-arm64.yml`, `MODULE.bazel`). [[1]](diffhunk://#diff-9c973ae1aadd7d691c6b02ffda88b23247675eafe6c1cddb02ceaadb02d884cdL16-R16) [[2]](diffhunk://#diff-c3e10f7830d4ac7d29b51d708b4eee302f31cdbf01bc9f7f8569d42f76e8fb85L16-R16) [[3]](diffhunk://#diff-02a40453b73efbdb461835646d62ebaac82eeedf77b3cdfd0072f30ef1560ae9L17-R17) [[4]](diffhunk://#diff-6136fc12446089c3db7360e923203dd114b6a1466252e71667c6791c20fe6bdcL84-R86) [[5]](diffhunk://#diff-6136fc12446089c3db7360e923203dd114b6a1466252e71667c6791c20fe6bdcR104)
* Updated C++ source files to handle LLVM 20 API changes, specifically by including `llvm/Support/VirtualFileSystem.h` and passing the real file system to `createDiagnostics` where required (`lib/JunkDetection/CXX/ASTStorage.cpp`, `tests/unit/Helpers/InMemoryCompiler.cpp`). [[1]](diffhunk://#diff-18a9ada978cdb57c5b48b0c7a4db6dfb4ff13f5a9eb6d28766bb8c50a1ce45f0R7-R14) [[2]](diffhunk://#diff-18a9ada978cdb57c5b48b0c7a4db6dfb4ff13f5a9eb6d28766bb8c50a1ce45f0L238-R248) [[3]](diffhunk://#diff-8a3ce0d8ff83cc696f52fd313b8b199a58d322d6dfda5a4ef7dc34bd107d72c5R11-R13) [[4]](diffhunk://#diff-8a3ce0d8ff83cc696f52fd313b8b199a58d322d6dfda5a4ef7dc34bd107d72c5L38-R45)

**Development Environment Enhancements:**

* Added a new devcontainer configuration for Ubuntu 24.04 with LLVM 20, including a Dockerfile that installs all required dependencies and development tools (`.devcontainer/ubuntu_24.04-llvm-20/Dockerfile`, `.devcontainer/ubuntu_24.04-llvm-20/devcontainer.json`). [[1]](diffhunk://#diff-d156e8a3f185cdd37486a8681d8cc279daec963982547e190d1c2d5abd776ecfR1-R29) [[2]](diffhunk://#diff-1ae9fb2d4c5915564c72a71d5beb4443f65ded8c2a0a09e489a58173e5213ed7R1-R32)
* Introduced a base devcontainer configuration using the `mcr.microsoft.com/devcontainers/base:noble` image (`.devcontainer/devcontainer.json`).
@rjaegers
Copy link
Contributor Author

The RHEL builds were already failing, and I could not quickly figure out what was going on. Maybe you have an idea?

Otherwise the changes to support LLVM 20 were pretty small.

There are some deprecation warnings on some of the APIs, I will see if I have some time to tackle those in a follow-up PR.

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