Upgrade to graal 21.1, fixes #884 (#885)

This commit is contained in:
Michiel Borkent 2021-06-13 21:53:07 +02:00 committed by GitHub
parent 4492db289e
commit 35103f40ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 83 additions and 74 deletions

View file

@ -76,7 +76,7 @@ jobs:
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.1.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m"
@ -110,9 +110,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java11-21.0.0 ]; then
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-21.0.0.tar.gz
if ! [ -d graalvm-ce-java11-21.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
fi
- run:
name: Build binary
@ -136,7 +136,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java11-21.0.0
- ~/graalvm-ce-java11-21.1.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -151,7 +151,7 @@ jobs:
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.1.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_STATIC: "true"
@ -198,9 +198,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java11-21.0.0 ]; then
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-21.0.0.tar.gz
if ! [ -d graalvm-ce-java11-21.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
fi
- run:
name: Build binary
@ -224,7 +224,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java11-21.0.0
- ~/graalvm-ce-java11-21.1.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -241,7 +241,7 @@ jobs:
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.1.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_ARCH: aarch64
BABASHKA_TEST_ENV: native
@ -287,9 +287,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-aarch64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-aarch64-21.0.0.tar.gz
if ! [ -d graalvm-ce-java11-21.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-aarch64-21.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-aarch64-21.1.0.tar.gz
fi
- run:
name: Build binary
@ -313,7 +313,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java11-21.0.0
- ~/graalvm-ce-java11-21.1.0
key: linux-aarch64-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -330,7 +330,7 @@ jobs:
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.0.0
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-21.1.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_ARCH: aarch64
BABASHKA_TEST_ENV: native
@ -378,9 +378,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java11-21.0.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.0.0/graalvm-ce-java11-linux-aarch64-21.0.0.tar.gz
tar xzf graalvm-ce-java11-linux-aarch64-21.0.0.tar.gz
if ! [ -d graalvm-ce-java11-21.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-aarch64-21.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-aarch64-21.1.0.tar.gz
fi
- run:
name: Build binary
@ -404,7 +404,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java11-21.0.0
- ~/graalvm-ce-java11-21.1.0
key: linux-aarch64-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -418,7 +418,7 @@ jobs:
xcode: "12.0.0"
environment:
MACOSX_DEPLOYMENT_TARGET: 10.13 # 10.12 is EOL
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-21.0.0/Contents/Home
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-21.1.0/Contents/Home
BABASHKA_PLATFORM: macos # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx6500m"
@ -446,9 +446,9 @@ jobs:
command: |
cd ~
ls -la
if ! [ -d graalvm-ce-java11-21.0.0 ]; then
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-21.0.0.tar.gz
if ! [ -d graalvm-ce-java11-21.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-darwin-amd64-21.1.0.tar.gz
tar xzf graalvm-ce-java11-darwin-amd64-21.1.0.tar.gz
fi
- run:
name: Build binary
@ -470,7 +470,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java11-21.0.0
- ~/graalvm-ce-java11-21.1.0
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release

View file

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

View file

@ -4,13 +4,13 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN apt update
RUN apt install --no-install-recommends -yy curl unzip build-essential zlib1g-dev sudo
WORKDIR "/opt"
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-21.0.0.tar.gz
RUN curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
RUN tar -xzf graalvm-ce-java11-linux-amd64-21.1.0.tar.gz
ARG BABASHKA_XMX="-J-Xmx4500m"
ENV GRAALVM_HOME="/opt/graalvm-ce-java11-21.0.0"
ENV JAVA_HOME="/opt/graalvm-ce-java11-21.0.0/bin"
ENV GRAALVM_HOME="/opt/graalvm-ce-java11-21.1.0"
ENV JAVA_HOME="/opt/graalvm-ce-java11-21.1.0/bin"
ENV PATH="$JAVA_HOME:$PATH"
ENV BABASHKA_XMX=$BABASHKA_XMX

View file

@ -7,7 +7,7 @@ image: Visual Studio 2017
clone_folder: C:\projects\babashka
environment:
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-21.0.0
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-21.1.0
BABASHKA_XMX: "-J-Xmx5g"
cache:
@ -44,7 +44,7 @@ build_script:
- cmd: >-
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-21.0.0/graalvm-ce-java11-windows-amd64-21.0.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.1.0/graalvm-ce-java11-windows-amd64-21.1.0.zip', 'graalvm.zip') }"
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"

View file

@ -3,24 +3,24 @@
## Prerequisites
- Install [lein](https://leiningen.org/) for producing uberjars
- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-21.0.0*.
- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *java11-21.1.0*.
- For Windows, installing Visual Studio 2019 with the "Desktop development
with C++" workload is recommended.
- Set `$GRAALVM_HOME` to the GraalVM distribution directory. On macOS this can look like:
``` shell
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0/Contents/Home
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.1.0/Contents/Home
```
On linux:
``` shell
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.0.0
export GRAALVM_HOME=~/Downloads/graalvm-ce-java11-21.1.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):
```
set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-21.0.0
set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-java11-21.1.0
```
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
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.
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.1.0.
## Clone repository

View file

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

View file

@ -646,6 +646,15 @@ true")))
(bb nil "-e" "(.get (.command (.info (java.lang.ProcessHandle/current))))")
"bb"))))
(deftest interop-concurrency-test
(is (= ["true" 3] (last (bb nil "-e"
"
(def f (fn [_]
[(String/valueOf true)
(.length \"foo\")]))
(vec (pmap f (map str (range 10000))))")))))
;;;; Scratch
(comment