Skip to content

Commit d5b9cbf

Browse files
authored
Update LLVM version from 15/16 to 17 across K Framework (#4854)
## Summary This PR updates the LLVM version from 15/16 to 17 across the entire K Framework repository to align with modern toolchain requirements and improve performance. ## ⚠️ **IMPORTANT DEPENDENCY** **This PR requires [llvm-backend PR #1214](runtimeverification/llvm-backend#1214) to be merged first.** The llvm-backend submodule changes are included in this PR, but the final merge should wait until the llvm-backend PR is merged and released to ensure proper dependency alignment. ## Changes Made ### **GitHub Actions Workflows** - **`.github/workflows/release.yml`**: Updated all `llvm: 15/16` → `llvm: 17` - **`.github/workflows/test-pr.yml`**: Updated all `llvm: 15` → `llvm: 17` ### **Debian Package Dependencies** - **`package/debian/kframework/control.jammy`**: - `clang-15` → `clang-17` - `lld-15` → `lld-17` - `llvm-15` → `llvm-17` - **`package/debian/kframework/control.noble`**: - `clang-16` → `clang-17` - `lld-16` → `lld-17` - `llvm-17` (already correct) ### **Installation Scripts** - **`install-build-deps`**: Updated Debian package installation - `clang-15` → `clang-17` - `lld-15` → `lld-17` - `llvm-15-tools` → `llvm-17-tools` ### **macOS Support** - **`package/macos/brew-install-deps`**: `llvm@15` → `llvm@17` - **`macos-envrc`**: Updated environment variables for `llvm@17` ### **Submodule Updates** - **`llvm-backend/src/main/native/llvm-backend`**: Updated to include LLVM 17 changes from [PR #1214](runtimeverification/llvm-backend#1214) ## Testing Strategy - [x] **CI/CD**: GitHub Actions will test with LLVM 17 - [x] **Debian Packages**: Test builds on Ubuntu Jammy (22.04) and Noble (24.04) - [ ] **macOS**: Test Homebrew installation with `llvm@17` - [x] **Submodule**: Verify llvm-backend integration works correctly ## Migration Benefits 1. **Performance**: LLVM 17 includes performance improvements and optimizations 2. **Compatibility**: Better support for modern C++ features and standards 3. **Security**: Latest security patches and bug fixes 4. **Toolchain**: Improved debugging and analysis tools ## Related PRs - **llvm-backend**: [PR #1214](runtimeverification/llvm-backend#1215) - Update LLVM version from 15 to 17 - **haskell-backend**: May need similar updates (to be determined) ## Checklist - [x] Update GitHub Actions workflows - [x] Update Debian package dependencies - [x] Update installation scripts - [x] Update macOS Homebrew configuration - [x] Update llvm-backend submodule - [x] Wait for llvm-backend PR #1214 to merge - [ ] Update `deps/llvm-backend_release` after llvm-backend release - [ ] Final testing and validation
1 parent fc463e4 commit d5b9cbf

File tree

5 files changed

+8
-8
lines changed

5 files changed

+8
-8
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ jobs:
177177
with:
178178
os: ubuntu
179179
distro: noble
180-
llvm: 16
180+
llvm: 17
181181
jdk: 21
182182
pkg-name: kframework_amd64_ubuntu_noble.deb
183183
build-package: package/debian/build-package noble kframework

install-build-deps

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ inst_Debian() {
1111
sudo apt-get install -q \
1212
bison \
1313
build-essential \
14-
clang-15 \
14+
clang-17 \
1515
cmake \
1616
curl \
1717
flex \
@@ -26,8 +26,8 @@ inst_Debian() {
2626
libunwind-dev \
2727
libyaml-dev \
2828
libz3-dev \
29-
lld-15 \
30-
llvm-15-tools \
29+
lld-17 \
30+
llvm-17-tools \
3131
m4 \
3232
maven \
3333
openjdk-17-jdk \

macos-envrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
PATH_add `brew --prefix bison`/bin
55
PATH_add `brew --prefix flex`/bin
6-
PATH_add `brew --prefix llvm@15`/bin
6+
PATH_add `brew --prefix llvm@17`/bin
77
PATH_add `brew --prefix openjdk`/bin

package/debian/kframework/control.noble

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ Source: kframework
22
Section: devel
33
Priority: optional
44
Maintainer: Dwight Guth <dwight.guth@runtimeverification.com>
5-
Build-Depends: clang-16 , cmake , debhelper (>=10) , flex , libboost-test-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-dev , libunwind-dev , libyaml-dev , maven , openjdk-21-jdk , pkg-config , python3 , python3-dev , python3-pip , xxd , zlib1g-dev
5+
Build-Depends: clang-17 , cmake , debhelper (>=10) , flex , libboost-test-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-dev , libunwind-dev , libyaml-dev , maven , openjdk-21-jdk , pkg-config , python3 , python3-dev , python3-pip , xxd , zlib1g-dev
66
Standards-Version: 3.9.6
77
Homepage: https://github.com/runtimeverification/k
88

99
Package: kframework
1010
Architecture: any
1111
Section: devel
1212
Priority: optional
13-
Depends: bison , clang-16 , openjdk-21-jre-headless , flex , gcc , g++ , libboost-dev , libffi-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-1 , libtinfo-dev , libunwind-dev , libyaml-0-2 , libz3-4 , lld-16 , llvm-16 , pkg-config
13+
Depends: bison , clang-17 , openjdk-21-jre-headless , flex , gcc , g++ , libboost-dev , libffi-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-1 , libtinfo-dev , libunwind-dev , libyaml-0-2 , libz3-4 , lld-17 , llvm-17 , pkg-config
1414
Recommends: z3
1515
Description: K framework toolchain
1616
Includes K Framework compiler for K language definitions, and K interpreter

package/macos/brew-install-deps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/bash -ex
22

33
brew update
4-
brew install maven cmake boost libyaml jemalloc llvm@12 gmp mpfr z3 pkg-config flex bison haskell-stack
4+
brew install maven cmake boost libyaml jemalloc llvm@17 gmp mpfr z3 pkg-config flex bison haskell-stack

0 commit comments

Comments
 (0)