Skip to content

Conversation

@F-WRunTime
Copy link
Member

@F-WRunTime F-WRunTime commented Sep 11, 2025

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 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/16llvm: 17
  • .github/workflows/test-pr.yml: Updated all llvm: 15llvm: 17

Debian Package Dependencies

  • package/debian/kframework/control.jammy:
    • clang-15clang-17
    • lld-15lld-17
    • llvm-15llvm-17
  • package/debian/kframework/control.noble:
    • clang-16clang-17
    • lld-16lld-17
    • llvm-17 (already correct)

Installation Scripts

  • install-build-deps: Updated Debian package installation
    • clang-15clang-17
    • lld-15lld-17
    • llvm-15-toolsllvm-17-tools

macOS Support

  • package/macos/brew-install-deps: llvm@15llvm@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

Testing Strategy

  • CI/CD: GitHub Actions will test with LLVM 17
  • Debian Packages: Test builds on Ubuntu Jammy (22.04) and Noble (24.04)
  • macOS: Test Homebrew installation with llvm@17
  • 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 - Update LLVM version from 15 to 17
  • haskell-backend: May need similar updates (to be determined)

Checklist

- Update GitHub Actions workflows: llvm: 15/16 → 17
- Update Debian package dependencies:
  - control.jammy: clang-15→17, lld-15→17, llvm-15→17
  - control.noble: clang-16→17, lld-16→17 (llvm-17 already correct)
- Update install-build-deps: clang-15→17, lld-15→17, llvm-15-tools→17
- Update macOS Homebrew: llvm@15→17
- Update macos-envrc: llvm@15→17
- Update llvm-backend submodule to include LLVM 17 changes

This migration aligns K Framework with LLVM 17 for improved performance
and compatibility with newer toolchain features.

Depends on: runtimeverification/llvm-backend#1214
@F-WRunTime F-WRunTime requested a review from a team as a code owner September 11, 2025 18:57
@rv-jenkins rv-jenkins changed the base branch from master to develop September 11, 2025 18:57
- Revert Ubuntu Jammy builds back to LLVM 15 (not available in Ubuntu 22.04)
- Update llvm-backend clang-tidy script to auto-detect available LLVM version
- Fix Debian package dependencies to use consistent LLVM versions per Ubuntu release
  - Jammy (22.04): LLVM 15 (available in standard repos)
  - Noble (24.04): LLVM 17 (available in standard repos)

This resolves the 'run-clang-tidy-17: command not found' error and Ubuntu Jammy
package build failures by using the correct LLVM versions for each platform.
- Update release workflow to use LLVM 15 for Ubuntu Jammy builds
- Fix kframework Jammy package dependencies to use clang-15, lld-15, llvm-15
- Maintain LLVM 17 for Ubuntu Noble builds (correct for Ubuntu 24.04)

This ensures consistency between workflow configuration and package
dependencies, resolving the mismatch that was causing test confusion.
Copy link
Collaborator

@Robertorosmaninho Robertorosmaninho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@F-WRunTime F-WRunTime self-assigned this Sep 18, 2025
@automergerpr-permission-manager automergerpr-permission-manager bot merged commit d5b9cbf into develop Sep 18, 2025
18 checks passed
@automergerpr-permission-manager automergerpr-permission-manager bot deleted the update/llvm-version branch September 18, 2025 05:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants