diff --git a/README.md b/README.md index 1c0d4288d8a..9f3beec2d60 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ The following dependencies are needed either at build time or runtime: * [fmt](https://fmt.dev/) * [gcc](https://gcc.gnu.org/) * [gmp](https://gmplib.org/) -* [jdk](https://openjdk.java.net/) (version 11 or greater) +* [jdk](https://openjdk.java.net/) (version 17 or greater) * [libjemalloc](https://github.com/jemalloc/jemalloc) * [libyaml](https://pyyaml.org/wiki/LibYAML) * [llvm](https://llvm.org/) (We require version 10 or greater for clang, lld, and llvm-tools. On some distributions, the utilities below are also needed and packaged separately.) @@ -135,10 +135,10 @@ See the notes below. ### Installation Notes -1. Java Development Kit (required JDK11 or higher) +1. Java Development Kit (required JDK 17 or higher) * Linux: Download from package manager - (e.g. `sudo apt-get install openjdk-11-jdk`). + (e.g. `sudo apt-get install openjdk-17-jdk`). * macOS/brew: Download from package manager (e.g. `brew install java`). @@ -419,10 +419,6 @@ Common build-time error messages: build path of your IDE. Generally this is solved by regenerating your project / re-syncing it with the pom.xml. -- `[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile - (default-compile) on project k-core: Fatal error compiling: invalid target release: 11 -> [Help 1]` - + You either do not have Java 11 installed, or `$JAVA_HOME` does not point to a Java 11 JDK. - - `[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (build-haskell) on project haskell-backend: An Ant BuildException has occured: exec returned: 1` diff --git a/flake.nix b/flake.nix index e5690b2fce5..ea4a8ed148b 100644 --- a/flake.nix +++ b/flake.nix @@ -64,6 +64,7 @@ k-framework = { haskell-backend-bins, llvm-kompile-libs }: prev.callPackage ./nix/k.nix { inherit (prev) llvm-backend; + clang = prev."clang_${toString final.llvm-version}"; booster = booster-backend.packages.${prev.system}.kore-rpc-booster; mavenix = { inherit (prev) buildMaven; }; haskell-backend = haskell-backend-bins; diff --git a/nix/k.nix b/nix/k.nix index e96bc7e0dc7..7d29456b8fa 100644 --- a/nix/k.nix +++ b/nix/k.nix @@ -1,6 +1,7 @@ { src, clang, stdenv, lib, mavenix, runCommand, makeWrapper, bison, flex, gcc -, git, gmp, jdk, mpfr, ncurses, pkgconfig, python3, z3, haskell-backend, booster ? null -, prelude-kore, llvm-backend, llvm-backend-matching, debugger, version, llvm-kompile-libs }: +, git, gmp, jdk, jre_minimal, mpfr, ncurses, pkgconfig, python3, z3 +, haskell-backend, booster ? null, prelude-kore, llvm-backend, debugger, version +, llvm-kompile-libs }: let unwrapped = mavenix.buildMaven { @@ -46,13 +47,14 @@ let fi done - mkdir -p $out/lib/cmake/kframework && ln -sf ${llvm-backend.src}/cmake/* $out/lib/cmake/kframework/ + mkdir -p $out/lib/cmake/kframework && cp ${llvm-backend.src}/cmake/* $out/lib/cmake/kframework/ ln -sf ${llvm-backend}/include/kllvm $out/include/ ln -sf ${llvm-backend}/include/kllvm-c $out/include/ ln -sf ${llvm-backend}/lib/kllvm $out/lib/ ln -sf ${llvm-backend}/lib/scripts $out/lib/ ln -sf ${llvm-backend}/bin/* $out/bin/ - ${lib.optionalString (booster != null ) "ln -sf ${booster}/bin/* $out/bin/"} + ${lib.optionalString (booster != null) + "ln -sf ${booster}/bin/* $out/bin/"} prelude_kore="$out/include/kframework/kore/prelude.kore" mkdir -p "$(dirname "$prelude_kore")" @@ -75,7 +77,10 @@ in let flex (if stdenv.isDarwin then clang else gcc) gmp - jdk + (jre_minimal.override { + modules = [ "java.base" "java.desktop" "java.logging" "java.rmi" ]; + jdk = if stdenv.isDarwin then jdk else jdk.override { headless = true; }; + }) mpfr ncurses pkgconfig @@ -123,6 +128,5 @@ in let ln -sf ${haskell-backend}/bin/kore-parser $out/bin/kore-parser ln -sf ${haskell-backend}/bin/kore-repl $out/bin/kore-repl ln -sf ${haskell-backend}/bin/kore-match-disjunction $out/bin/kore-match-disjunction - ln -sf ${llvm-backend-matching}/bin/llvm-backend-matching $out/bin/llvm-backend-matching ''; in final [ ] diff --git a/package/debian/control.bookworm b/package/debian/control.bookworm index dffbfae42c7..9a3cfe171ff 100644 --- a/package/debian/control.bookworm +++ b/package/debian/control.bookworm @@ -10,7 +10,7 @@ Package: kframework Architecture: any Section: devel Priority: optional -Depends: bison , clang-14 , default-jre-headless , flex , gcc , g++ , libboost-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-1 , libyaml-0-2 , libz3-4 , lld-14 , pkg-config , llvm-14 +Depends: bison , clang-14 , openjdk-17-jre-headless , flex , gcc , g++ , libboost-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-1 , libyaml-0-2 , libz3-4 , lld-14 , pkg-config , llvm-14 Recommends: z3 Description: K framework toolchain Includes K Framework compiler for K language definitions, and K interpreter diff --git a/package/debian/control.jammy b/package/debian/control.jammy index 30972fdf9c1..2a08ce17c6c 100644 --- a/package/debian/control.jammy +++ b/package/debian/control.jammy @@ -10,7 +10,7 @@ Package: kframework Architecture: any Section: devel Priority: optional -Depends: bison , clang-14 , default-jre-headless , flex , gcc , g++ , libboost-dev , libffi-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-0 , libtinfo-dev , libyaml-0-2 , libz3-4 , lld-14 , llvm-14 , pkg-config +Depends: bison , clang-14 , openjdk-17-jre-headless , flex , gcc , g++ , libboost-dev , libffi-dev , libfmt-dev , libgmp-dev , libjemalloc-dev , libmpfr-dev , libsecp256k1-0 , libtinfo-dev , libyaml-0-2 , libz3-4 , lld-14 , llvm-14 , pkg-config Recommends: z3 Description: K framework toolchain Includes K Framework compiler for K language definitions, and K interpreter diff --git a/pom.xml b/pom.xml index 90c2ea620b6..4497bebb742 100644 --- a/pom.xml +++ b/pom.xml @@ -145,8 +145,8 @@ maven-compiler-plugin 3.7.0 - 11 - 11 + 17 + 17