[#712] Upgrade to GraalVM 21.0.0 (#725)

This commit is contained in:
Michiel Borkent 2021-02-07 12:23:20 +01:00 committed by GitHub
parent 61ca2720fd
commit 77daea7362
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 77 additions and 74 deletions

View file

@ -70,7 +70,7 @@ jobs:
working_directory: ~/repo working_directory: ~/repo
environment: environment:
LEIN_ROOT: "true" LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.3.0 GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
BABASHKA_PLATFORM: linux # used in release script BABASHKA_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m" BABASHKA_XMX: "-J-Xmx6500m"
@ -104,9 +104,9 @@ jobs:
name: Download GraalVM name: Download GraalVM
command: | command: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -130,7 +130,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.3.0 - ~/graalvm-ce-java11-21.0.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release
@ -138,14 +138,14 @@ jobs:
- run: - run:
name: Publish artifact link to Slack name: Publish artifact link to Slack
command: | command: |
./bb .circleci/script/publish_artifact.clj ./bb .circleci/script/publish_artifact.clj || true
linux-static: linux-static:
docker: docker:
- image: circleci/clojure:lein-2.9.1 - image: circleci/clojure:lein-2.9.1
working_directory: ~/repo working_directory: ~/repo
environment: environment:
LEIN_ROOT: "true" LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.3.0 GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
BABASHKA_PLATFORM: linux-static # used in release script BABASHKA_PLATFORM: linux-static # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_STATIC: "true" BABASHKA_STATIC: "true"
@ -190,9 +190,9 @@ jobs:
name: Download GraalVM name: Download GraalVM
command: | command: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -216,7 +216,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.3.0 - ~/graalvm-ce-java11-21.0.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release
@ -224,13 +224,13 @@ jobs:
- run: - run:
name: Publish artifact link to Slack name: Publish artifact link to Slack
command: | command: |
./bb .circleci/script/publish_artifact.clj ./bb .circleci/script/publish_artifact.clj || true
mac: mac:
macos: macos:
xcode: "12.0.0" xcode: "12.0.0"
environment: environment:
MACOSX_DEPLOYMENT_TARGET: 10.13 # 10.12 is EOL MACOSX_DEPLOYMENT_TARGET: 10.13 # 10.12 is EOL
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-20.3.0/Contents/Home GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-21.0.0/Contents/Home
BABASHKA_PLATFORM: macos # used in release script BABASHKA_PLATFORM: macos # used in release script
BABASHKA_TEST_ENV: native BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m" BABASHKA_XMX: "-J-Xmx6500m"
@ -258,9 +258,9 @@ jobs:
command: | command: |
cd ~ cd ~
ls -la ls -la
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz
fi fi
- run: - run:
name: Build binary name: Build binary
@ -282,7 +282,7 @@ jobs:
- save_cache: - save_cache:
paths: paths:
- ~/.m2 - ~/.m2
- ~/graalvm-ce-java11-20.3.0 - ~/graalvm-ce-java11-21.0.0
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }} key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts: - store_artifacts:
path: /tmp/release path: /tmp/release
@ -290,7 +290,7 @@ jobs:
- run: - run:
name: Publish artifact link to Slack name: Publish artifact link to Slack
command: | command: |
./bb .circleci/script/publish_artifact.clj ./bb .circleci/script/publish_artifact.clj || true
deploy: deploy:
resource_class: large resource_class: large
docker: docker:

View file

@ -3,7 +3,7 @@
'[clojure.java.io :as io] '[clojure.java.io :as io]
'[clojure.string :as str]) '[clojure.string :as str])
(def channel "#babashka_circleci_builds") (def channel "#babashka-circleci-builds")
#_(def channel "#_test") #_(def channel "#_test")
(def babashka-version (str/trim (slurp (io/file "resources" "BABASHKA_VERSION")))) (def babashka-version (str/trim (slurp (io/file "resources" "BABASHKA_VERSION"))))
(def slack-hook-url (System/getenv "SLACK_HOOK_URL")) (def slack-hook-url (System/getenv "SLACK_HOOK_URL"))

View file

@ -45,17 +45,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.3.0 path: ~/graalvm-ce-java11-21.0.0
key: ${{ runner.os }}-graalvm-20.3.0 key: ${{ runner.os }}-graalvm-21.0.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.3.0 ${{ runner.os }}-graalvm-21.0.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
fi fi
- name: Fetch deps - name: Fetch deps
@ -65,18 +65,18 @@ jobs:
- name: Run tests - name: Run tests
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
script/test script/test
- name: Test libraries - name: Test libraries
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
sudo script/install-clojure sudo script/install-clojure
script/run_lib_tests script/run_lib_tests
- name: Build uberjar - name: Build uberjar
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
script/uberjar script/uberjar
- name: Babashka version - name: Babashka version
@ -133,17 +133,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.3.0 path: ~/graalvm-ce-java11-21.0.0
key: ${{ runner.os }}-graalvm-20.3.0 key: ${{ runner.os }}-graalvm-21.0.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.3.0 ${{ runner.os }}-graalvm-21.0.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -156,13 +156,13 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" export BABASHKA_XMX="-J-Xmx6g"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
- name: Test binary - name: Test binary
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
BABASHKA_TEST_ENV=native script/test BABASHKA_TEST_ENV=native script/test
- name: Install clojure - name: Install clojure
@ -171,7 +171,7 @@ jobs:
- name: Test libraries - name: Test libraries
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
BABASHKA_TEST_ENV=native script/run_lib_tests BABASHKA_TEST_ENV=native script/run_lib_tests
- name: Upload artifact - name: Upload artifact
@ -214,17 +214,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.3.0 path: ~/graalvm-ce-java11-21.0.0
key: ${{ runner.os }}-graalvm-20.3.0 key: ${{ runner.os }}-graalvm-21.0.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.3.0 ${{ runner.os }}-graalvm-21.0.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -237,7 +237,7 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" export BABASHKA_XMX="-J-Xmx6g"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
export BABASHKA_STATIC=true export BABASHKA_STATIC=true
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
@ -245,7 +245,7 @@ jobs:
- name: Test binary - name: Test binary
run: | run: |
./bb '(+ 1 2 3)' ./bb '(+ 1 2 3)'
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
BABASHKA_TEST_ENV=native script/test BABASHKA_TEST_ENV=native script/test
- name: Install clojure - name: Install clojure
@ -254,7 +254,7 @@ jobs:
- name: Test libraries - name: Test libraries
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0"
BABASHKA_TEST_ENV=native script/run_lib_tests BABASHKA_TEST_ENV=native script/run_lib_tests
- name: Upload artifact - name: Upload artifact
@ -288,17 +288,17 @@ jobs:
uses: actions/cache@v1 uses: actions/cache@v1
id: cache-graalvm id: cache-graalvm
with: with:
path: ~/graalvm-ce-java11-20.3.0 path: ~/graalvm-ce-java11-21.0.0
key: ${{ runner.os }}-graalvm-20.3.0 key: ${{ runner.os }}-graalvm-21.0.0
restore-keys: | restore-keys: |
${{ runner.os }}-graalvm-20.3.0 ${{ runner.os }}-graalvm-21.0.0
- name: Download GraalVM - name: Download GraalVM
run: | run: |
cd ~ cd ~
if ! [ -d graalvm-ce-java11-20.3.0 ]; then if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-darwin-amd64-20.3.0.tar.gz tar xzf graalvm-ce-java11-darwin-amd64-21.0.0.tar.gz
fi fi
- name: Babashka version - name: Babashka version
@ -311,19 +311,19 @@ jobs:
run: | run: |
export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar export BABASHKA_JAR=babashka-${{ steps.babashka-version.outputs.version }}-standalone.jar
export BABASHKA_XMX="-J-Xmx6g" export BABASHKA_XMX="-J-Xmx6g"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home"
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile script/compile
- name: Test binary - name: Test binary
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home"
sudo script/install-leiningen sudo script/install-leiningen
BABASHKA_TEST_ENV=native script/test BABASHKA_TEST_ENV=native script/test
- name: Test libraries - name: Test libraries
run: | run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.3.0/Contents/Home" export GRAALVM_HOME="$HOME/graalvm-ce-java11-21.0.0/Contents/Home"
sudo script/install-clojure sudo script/install-clojure
BABASHKA_TEST_ENV=native script/run_lib_tests BABASHKA_TEST_ENV=native script/run_lib_tests

View file

@ -3,13 +3,13 @@ FROM clojure:lein-2.9.1 AS BASE
RUN apt update RUN apt update
RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev
WORKDIR "/opt" WORKDIR "/opt"
RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-linux-amd64-20.3.0.tar.gz RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
RUN tar -xzf graalvm-ce-java11-linux-amd64-20.3.0.tar.gz RUN tar -xzf graalvm-ce-java11-linux-amd64-21.0.0.tar.gz
ARG BABASHKA_XMX="-J-Xmx3g" ARG BABASHKA_XMX="-J-Xmx3g"
ENV GRAALVM_HOME="/opt/graalvm-ce-java11-20.3.0" ENV GRAALVM_HOME="/opt/graalvm-ce-java11-21.0.0"
ENV JAVA_HOME="/opt/graalvm-ce-java11-20.3.0/bin" ENV JAVA_HOME="/opt/graalvm-ce-java11-21.0.0/bin"
ENV PATH="$JAVA_HOME:$PATH" ENV PATH="$JAVA_HOME:$PATH"
ENV BABASHKA_XMX=$BABASHKA_XMX ENV BABASHKA_XMX=$BABASHKA_XMX

View file

@ -7,7 +7,7 @@ image: Visual Studio 2017
clone_folder: C:\projects\babashka clone_folder: C:\projects\babashka
environment: environment:
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-20.3.0 GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-21.0.0
BABASHKA_XMX: "-J-Xmx5g" BABASHKA_XMX: "-J-Xmx5g"
cache: cache:
@ -44,7 +44,7 @@ build_script:
- cmd: >- - cmd: >-
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-windows-amd64-20.3.0.zip', 'graalvm.zip') }" powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-windows-amd64-21.0.0.zip', 'graalvm.zip') }"
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }" powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"

View file

@ -1 +0,0 @@
borkdude@MBP2019.local.17736

View file

@ -3,24 +3,24 @@
## Prerequisites ## Prerequisites
- Install [lein](https://leiningen.org/) for producing uberjars - Install [lein](https://leiningen.org/) for producing uberjars
- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-20.3.0*. - Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-21.0.0*.
- For Windows, installing Visual Studio 2019 with the "Desktop development - For Windows, installing Visual Studio 2019 with the "Desktop development
with C++" workload is recommended. with C++" workload is recommended.
- Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like: - Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like:
``` shell ``` shell
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-20.1.0/Contents/Home export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0/Contents/Home
``` ```
On linux: On linux:
``` shell ``` shell
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-20.1.0 export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0
``` ```
On Windows, from the [Visual Studio 2019 x64 Native Tools Command Prompt](https://github.com/oracle/graal/issues/2116#issuecomment-590470806) or `cmd.exe` (not Powershell): On Windows, from the [Visual Studio 2019 x64 Native Tools Command Prompt](https://github.com/oracle/graal/issues/2116#issuecomment-590470806) or `cmd.exe` (not Powershell):
``` ```
set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-20.1.0 set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-21.0.0
``` ```
If you are not running from the x64 Native Tools Command Prompt, you will need to set additional environment variables using: If you are not running from the x64 Native Tools Command Prompt, you will need to set additional environment variables using:
``` ```

View file

@ -1,6 +1,6 @@
# Developing Babashka # Developing Babashka
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-20.3.0. You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java11-21.0.0.
## Clone repository ## Clone repository

View file

@ -20,7 +20,7 @@
[org.clojure/tools.cli "1.0.194"] [org.clojure/tools.cli "1.0.194"]
[cheshire "5.10.0"] [cheshire "5.10.0"]
[nrepl/bencode "1.1.0"] [nrepl/bencode "1.1.0"]
[borkdude/sci.impl.reflector "0.0.1-java11"] [borkdude/sci.impl.reflector "0.0.1"]
[org.clojure/test.check "1.1.0"] [org.clojure/test.check "1.1.0"]
[org.clojure/math.combinatorics "0.1.6"]] [org.clojure/math.combinatorics "0.1.6"]]
:profiles {:feature/xml {:source-paths ["feature-xml"] :profiles {:feature/xml {:source-paths ["feature-xml"]
@ -76,7 +76,6 @@
"-Dclojure.spec.skip-macros=true"] "-Dclojure.spec.skip-macros=true"]
:main babashka.main :main babashka.main
:aot :all} :aot :all}
:native-image {:dependencies [[borkdude/clj-reflector-graal-java11-fix "0.0.1-graalvm-20.3.0"]]}
:reflection {:main babashka.impl.classes/generate-reflection-file}} :reflection {:main babashka.impl.classes/generate-reflection-file}}
:aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]} :aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]}
:deploy-repositories [["clojars" {:url "https://clojars.org/repo" :deploy-repositories [["clojars" {:url "https://clojars.org/repo"

View file

@ -53,7 +53,7 @@
;; We could have them as environment variables ;; We could have them as environment variables
(def current-graal-version "20.2.0") (def current-graal-version "20.2.0")
(def current-java-version "java11") (def current-java-version "java11")
(def valid-graal-bumps ["19.3.2" "20.1.0" "20.2.0" "20.3.0"]) (def valid-graal-bumps ["19.3.2" "20.1.0" "20.2.0" "20.3.0" "21.0.0"])
(def valid-java-bumps ["java8" "java11"]) (def valid-java-bumps ["java8" "java11"])
(def cl-options (def cl-options

View file

@ -25,9 +25,10 @@ export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH export PATH=$GRAALVM_HOME/bin:$PATH
rm -rf resources/*.class rm -rf resources/*.class
SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar) # SVM_JAR=$(find -L "$GRAALVM_HOME" | grep svm.jar)
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java # "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffSunAwtWwwContentAudioAiff.java # "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffSunAwtWwwContentAudioAiff.java
# "$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffMisc.java
if [ -z "$BABASHKA_JAR" ]; then if [ -z "$BABASHKA_JAR" ]; then
lein with-profiles +reflection,+native-image "do" run lein with-profiles +reflection,+native-image "do" run

View file

@ -48,6 +48,7 @@ call %GRAALVM_HOME%\bin\native-image.cmd ^
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider" ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiDeviceProvider" ^
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader" ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.SoundbankReader" ^
"-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter" ^ "-H:ServiceLoaderFeatureExcludeServices=javax.sound.midi.spi.MidiFileWriter" ^
"-H:ServiceLoaderFeatureExcludeServices=java.awt.Toolkit" ^
"%BABASHKA_XMX%" "%BABASHKA_XMX%"
if %errorlevel% neq 0 exit /b %errorlevel% if %errorlevel% neq 0 exit /b %errorlevel%

View file

@ -71,7 +71,10 @@
{:name "toString"} {:name "toString"}
{:name "toURI"}]} {:name "toURI"}]}
java.util.Arrays java.util.Arrays
{:methods [{:name "copyOf"}]}} {:methods [{:name "copyOf"}]}
;; this fixes clojure.lang.Reflector for Java 11
java.lang.reflect.AccessibleObject
{:methods [{:name "canAccess"}]}}
features/hsqldb? (assoc `org.hsqldb.dbinfo.DatabaseInformationFull features/hsqldb? (assoc `org.hsqldb.dbinfo.DatabaseInformationFull
{:methods [{:name "<init>" {:methods [{:name "<init>"
:parameterTypes ["org.hsqldb.Database"]}]} :parameterTypes ["org.hsqldb.Database"]}]}