[#449] move to GraalVM 20.1.0 java11

This commit is contained in:
Michiel Borkent 2020-05-23 14:53:28 +02:00 committed by GitHub
parent 03fba08e31
commit c3f9480efe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 132 additions and 78 deletions

View file

@ -7,7 +7,7 @@ jobs:
jvm:
docker:
# specify the version you desire here
- image: circleci/clojure:lein-2.8.1
- image: circleci/clojure:lein-2.9.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
@ -66,14 +66,14 @@ jobs:
key: v1-dependencies-{{ checksum "project.clj" }}
linux:
docker:
- image: circleci/clojure:lein-2.8.1
- image: circleci/clojure:lein-2.9.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.2
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.1.0
BABASHKA_PLATFORM: linux # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx7g"
BABASHKA_XMX: "-J-Xmx6500m"
resource_class: large
steps:
- checkout
@ -104,9 +104,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
fi
- run:
name: Build binary
@ -126,7 +126,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java8-19.3.2
- ~/graalvm-ce-java11-20.1.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -137,15 +137,15 @@ jobs:
./bb .circleci/script/publish_artifact.clj
linux-static:
docker:
- image: circleci/clojure:lein-2.8.1
- image: circleci/clojure:lein-2.9.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"
GRAALVM_HOME: /home/circleci/graalvm-ce-java8-19.3.2
GRAALVM_HOME: /home/circleci/graalvm-ce-java11-20.1.0
BABASHKA_PLATFORM: linux-static # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_STATIC: true
BABASHKA_XMX: "-J-Xmx7g"
BABASHKA_XMX: "-J-Xmx6500m"
resource_class: large
steps:
- checkout
@ -176,9 +176,9 @@ jobs:
name: Download GraalVM
command: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
fi
- run:
name: Build binary
@ -198,7 +198,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java8-19.3.2
- ~/graalvm-ce-java11-20.1.0
key: linux-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -211,10 +211,10 @@ jobs:
macos:
xcode: "9.0"
environment:
GRAALVM_HOME: /Users/distiller/graalvm-ce-java8-19.3.2/Contents/Home
GRAALVM_HOME: /Users/distiller/graalvm-ce-java11-20.1.0/Contents/Home
BABASHKA_PLATFORM: macos # used in release script
BABASHKA_TEST_ENV: native
BABASHKA_XMX: "-J-Xmx7g"
BABASHKA_XMX: "-J-Xmx6500m"
resource_class: large
steps:
- checkout
@ -239,19 +239,21 @@ jobs:
command: |
cd ~
ls -la
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-darwin-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-darwin-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
fi
- run:
name: Build binary
command: |
export PATH=$GRAALVM_HOME/bin:$PATH
script/uberjar
script/compile
no_output_timeout: 30m
- run:
name: Run tests
command: |
export PATH=$GRAALVM_HOME/bin:$PATH
script/test
script/run_lib_tests
- run:
@ -261,7 +263,7 @@ jobs:
- save_cache:
paths:
- ~/.m2
- ~/graalvm-ce-java8-19.3.2
- ~/graalvm-ce-java11-20.1.0
key: mac-{{ checksum "project.clj" }}-{{ checksum ".circleci/config.yml" }}
- store_artifacts:
path: /tmp/release
@ -273,7 +275,7 @@ jobs:
deploy:
resource_class: large
docker:
- image: circleci/clojure:lein-2.8.1
- image: circleci/clojure:lein-2.9.1
working_directory: ~/repo
environment:
LEIN_ROOT: "true"

View file

@ -38,6 +38,23 @@ jobs:
restore-keys: |
${{ runner.os }}-maven-
- name: Cache GraalVM
uses: actions/cache@v1
id: cache-graalvm
with:
path: ~/graalvm-ce-java11-20.1.0
key: ${{ runner.os }}-graalvm-20.1.0
restore-keys: |
${{ runner.os }}-graalvm-20.1.0
- name: Download GraalVM
run: |
cd ~
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
fi
- name: Fetch deps
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
@ -45,15 +62,18 @@ jobs:
- name: Run tests
run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
script/test
- name: Test libraries
run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
sudo script/install-clojure
script/run_lib_tests
- name: Build uberjar
run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
script/uberjar
- name: Babashka version
@ -109,17 +129,17 @@ jobs:
uses: actions/cache@v1
id: cache-graalvm
with:
path: ~/graalvm-ce-java8-19.3.2
key: ${{ runner.os }}-graalvm-19.3.2
path: ~/graalvm-ce-java11-20.1.0
key: ${{ runner.os }}-graalvm-20.1.0
restore-keys: |
${{ runner.os }}-graalvm-19.3.2
${{ runner.os }}-graalvm-20.1.0
- name: Download GraalVM
run: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
fi
- name: Babashka version
@ -132,12 +152,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-java8-19.3.2"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.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-20.1.0"
BABASHKA_TEST_ENV=native script/test
- name: Install clojure
@ -146,6 +167,7 @@ jobs:
- name: Test libraries
run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
BABASHKA_TEST_ENV=native script/run_lib_tests
- uses: actions/upload-artifact@v1
@ -186,17 +208,17 @@ jobs:
uses: actions/cache@v1
id: cache-graalvm
with:
path: ~/graalvm-ce-java8-19.3.2
key: ${{ runner.os }}-graalvm-19.3.2
path: ~/graalvm-ce-java11-20.1.0
key: ${{ runner.os }}-graalvm-20.1.0
restore-keys: |
${{ runner.os }}-graalvm-19.3.2
${{ runner.os }}-graalvm-20.1.0
- name: Download GraalVM
run: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-linux-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-linux-amd64-20.1.0.tar.gz
fi
- name: Babashka version
@ -209,7 +231,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-java8-19.3.2"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
export BABASHKA_STATIC=true
cp babashka-${{ steps.babashka-version.outputs.version }}-reflection.json reflection.json
script/compile
@ -217,6 +239,7 @@ jobs:
- name: Test binary
run: |
./bb '(+ 1 2 3)'
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
BABASHKA_TEST_ENV=native script/test
- name: Install clojure
@ -225,6 +248,7 @@ jobs:
- name: Test libraries
run: |
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.1.0"
BABASHKA_TEST_ENV=native script/run_lib_tests
- uses: actions/upload-artifact@v1
@ -256,17 +280,17 @@ jobs:
uses: actions/cache@v1
id: cache-graalvm
with:
path: ~/graalvm-ce-java8-19.3.2
key: ${{ runner.os }}-graalvm-19.3.2
path: ~/graalvm-ce-java11-20.1.0
key: ${{ runner.os }}-graalvm-20.1.0
restore-keys: |
${{ runner.os }}-graalvm-19.3.2
${{ runner.os }}-graalvm-20.1.0
- name: Download GraalVM
run: |
cd ~
if ! [ -d graalvm-ce-java8-19.3.2 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-darwin-amd64-19.3.2.tar.gz
tar xzf graalvm-ce-java8-darwin-amd64-19.3.2.tar.gz
if ! [ -d graalvm-ce-java11-20.1.0 ]; then
curl -O -sL https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.1.0/graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
tar xzf graalvm-ce-java11-darwin-amd64-20.1.0.tar.gz
fi
- name: Babashka version
@ -279,17 +303,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-java8-19.3.2/Contents/Home"
export GRAALVM_HOME="$HOME/graalvm-ce-java11-20.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-20.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-20.1.0/Contents/Home"
sudo script/install-clojure
BABASHKA_TEST_ENV=native script/run_lib_tests

View file

@ -2,12 +2,12 @@
version: "v-{build}"
image: Visual Studio 2015
image: Visual Studio 2017
clone_folder: C:\projects\babashka
environment:
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java8-19.3.2
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java11-20.1.0
BABASHKA_XMX: "-J-Xmx5g"
cache:
@ -39,12 +39,12 @@ build_script:
# call script/test.bat
# see https://github.com/quarkusio/quarkus/pull/7663
- cmd: >-
choco install windows-sdk-7.1
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-19.3.2/graalvm-ce-java8-windows-amd64-19.3.2.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-20.1.0/graalvm-ce-java11-windows-amd64-20.1.0.zip', 'graalvm.zip') }"
powershell -Command "if (Test-Path('graalvm')) { return } else { Expand-Archive graalvm.zip graalvm }"

View file

@ -17,11 +17,11 @@
[org.clojure/tools.reader "1.3.2"]
[borkdude/edamame "0.0.11-alpha.12"]
[borkdude/graal.locking "0.0.2"]
[borkdude/sci.impl.reflector "0.0.1"]
[org.clojure/tools.cli "1.0.194"]
[cheshire "5.10.0"]
[fipp "0.6.22"]
[nrepl/bencode "1.1.0"]]
[nrepl/bencode "1.1.0"]
[borkdude/sci.impl.reflector "0.0.1-java11"]]
:profiles {:feature/xml {:source-paths ["feature-xml"]
:dependencies [[org.clojure/data.xml "0.2.0-alpha6"]]}
:feature/yaml {:source-paths ["feature-yaml"]
@ -54,6 +54,7 @@
"-Dclojure.spec.skip-macros=true"]
:main babashka.main
:aot :all}
:native-image {:dependencies [[borkdude/clj-reflector-graal-java11-fix "0.0.1-graalvm-20.1.0"]]}
:reflection {:main babashka.impl.classes/generate-reflection-file}}
:aliases {"bb" ["with-profile" "test" "run" "-m" "babashka.main"]}
:deploy-repositories [["clojars" {:url "https://clojars.org/repo"

2
sci

@ -1 +1 @@
Subproject commit 935e8b5ff402cf9163f4a7640aa5cbe894a6e31c
Subproject commit f1d4264cfa409ae31fd79e205e579bbcbf7ca7e0

View file

@ -1,16 +1,16 @@
#!/usr/bin/env bb
;; NOTE
;;
;;
;; For more information on the current scene on support for
;; particular GraalVM versions, look here: https://www.graalvm.org/downloads/
;;
;;
;; There are 4 CE(Community Editions) being supported by GraalVM
;; GraalVM Community Edition 20.1.0 based on OpenJDK 8u252
;; GraalVM Community Edition 20.1.0 based on OpenJDK 11.0.7
;; GraalVM Community Edition 19.3.2 based on OpenJDK 8u252
;; GraalVM Community Edition 19.3.2 based on OpenJDK 11.0.7
;;
;;
;; Currently we use GraalVM java8-19.3.2
(ns bump-graal-version
@ -43,9 +43,9 @@
;; We might have to keep changing these from
;; time to time whenever the version is bumped
;;
;; OR
;;
;;
;; OR
;;
;; We could have them as environment variables
(def current-graal-version "19.3.2")
(def current-java-version "java8")
@ -71,12 +71,12 @@
(defn bump-current
[current new]
(doseq [file files-to-edit]
(let [exec-res (replace-current file current new)]
(try (spit file exec-res)
(catch Exception e (str "There was an error: " (.getMessage e)))
(finally
(println "Done with : " file))))))
(doseq [file files-to-edit]
(let [exec-res (replace-current file current new)]
(try (spit file exec-res)
(catch Exception e (str "There was an error: " (.getMessage e)))
(finally
(println "Done with : " file))))))
(defn show-error
[err-version]

View file

@ -22,11 +22,16 @@ fi
"$GRAALVM_HOME/bin/gu" install native-image
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
SVM_JAR=$(find "$GRAALVM_HOME" | grep svm.jar)
"$GRAALVM_HOME/bin/javac" -cp "$SVM_JAR" resources/CutOffCoreServicesDependencies.java
BABASHKA_FEATURE_HSQLDB=${BABASHKA_FEATURE_HSQLDB:-}
if [ -z "$BABASHKA_JAR" ]; then
lein with-profiles +reflection,+native-image "do" run
lein "do" clean, uberjar
BABASHKA_JAR=${BABASHKA_JAR:-"target/babashka-$BABASHKA_VERSION-standalone.jar"}
fi
BABASHKA_BINARY=${BABASHKA_BINARY:-"bb"}

View file

@ -13,7 +13,7 @@ if "%BABASHKA_XMX%"=="" (
)
set JAVA_HOME=%GRAALVM_HOME%
set PATH=%PATH%;%GRAALVM_HOME%\bin
set PATH=%GRAALVM_HOME%\bin;%PATH%
set /P BABASHKA_VERSION=< resources\BABASHKA_VERSION
echo Building Babashka %BABASHKA_VERSION%
@ -21,6 +21,8 @@ echo Building Babashka %BABASHKA_VERSION%
Rem the --no-server option is not supported in GraalVM Windows.
Rem -H:EnableURLProtocols=jar,http,https is also not supported.
call %GRAALVM_HOME%\bin\gu.cmd install native-image
call %GRAALVM_HOME%\bin\native-image.cmd ^
"-jar" "target/babashka-%BABASHKA_VERSION%-standalone.jar" ^
"-H:Name=bb" ^

View file

@ -2,6 +2,12 @@
set -eo pipefail
if [ "$GRAALVM_HOME" != "" ]
then
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
fi
script/lib_tests/clj_http_lite_test
script/lib_tests/deps_clj_test
script/lib_tests/spartan_spec_test

View file

@ -1,18 +1,26 @@
#!/usr/bin/env bash
if [ "$GRAALVM_HOME" != "" ]
then
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
fi
java -version
set -eo pipefail
BABASHKA_PRELOADS=""
BABASHKA_CLASSPATH=""
echo "running tests part 1"
lein test "$@"
BABASHKA_PRELOADS='(defn __bb__foo [] "foo") (defn __bb__bar [] "bar")'
BABASHKA_PRELOADS_TEST=true
export BABASHKA_PRELOADS='(defn __bb__foo [] "foo") (defn __bb__bar [] "bar")'
export BABASHKA_PRELOADS_TEST=true
echo "running tests part 2"
lein test :only babashka.main-test/preloads-test
BABASHKA_PRELOADS="(require '[env-ns])"
BABASHKA_CLASSPATH_TEST=true
BABASHKA_CLASSPATH="test-resources/babashka/src_for_classpath_test/env"
export BABASHKA_PRELOADS="(require '[env-ns])"
export BABASHKA_CLASSPATH_TEST=true
export BABASHKA_CLASSPATH="test-resources/babashka/src_for_classpath_test/env"
echo "running tests part 3"
lein test :only babashka.classpath-test/classpath-env-test

View file

@ -1,5 +1,13 @@
#!/usr/bin/env bash
if [ "$GRAALVM_HOME" != "" ]
then
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
fi
java -version
set -eo pipefail
if [ "$BABASHKA_LEAN" = "true" ]

View file

@ -6,7 +6,7 @@ if "%GRAALVM_HOME%"=="" (
)
set JAVA_HOME=%GRAALVM_HOME%
set PATH=%PATH%;%GRAALVM_HOME%\bin
set PATH=%GRAALVM_HOME%\bin;%PATH%
set BABASHKA_LEIN_PROFILES=+uberjar
@ -69,5 +69,5 @@ call lein with-profiles %BABASHKA_LEIN_PROFILES% bb "(+ 1 2 3)"
call lein with-profiles %BABASHKA_LEIN_PROFILES%,+reflection,-uberjar do run
if %errorlevel% neq 0 exit /b %errorlevel%
call lein with-profiles "%BABASHKA_LEIN_PROFILES%" do clean, uberjar
call lein with-profiles "%BABASHKA_LEIN_PROFILES%,+native-image" do clean, uberjar
if %errorlevel% neq 0 exit /b %errorlevel%

View file

@ -72,10 +72,6 @@
{:name "toURI"}]}
java.util.Arrays
{:methods [{:name "copyOf"}]}}
features/xml? (assoc `com.sun.xml.internal.stream.XMLInputFactoryImpl
{:methods [{:name "<init>" :parameterTypes []}]}
`com.sun.xml.internal.stream.XMLOutputFactoryImpl
{:methods [{:name "<init>" :parameterTypes []}]})
features/hsqldb? (assoc `org.hsqldb.dbinfo.DatabaseInformationFull
{:methods [{:name "<init>"
:parameterTypes ["org.hsqldb.Database"]}]}
@ -285,6 +281,6 @@
(sort-by :name)
(vec)))
(public-declared-method-names java.lang.UNIXProcess)
(public-declared-method-names java.net.URL)
(public-declared-method-names java.util.Properties)
)