Use Oracle GraalVM 21 (#1624)
--------- Co-authored-by: Michiel Borkent <michielborkent@gmail.com>
This commit is contained in:
parent
ef50677275
commit
6c1a66e853
10 changed files with 45 additions and 46 deletions
|
|
@ -80,7 +80,7 @@
|
||||||
:working_directory "~/repo"
|
:working_directory "~/repo"
|
||||||
:environment {:LEIN_ROOT "true"
|
:environment {:LEIN_ROOT "true"
|
||||||
:BABASHKA_PLATFORM "linux"
|
:BABASHKA_PLATFORM "linux"
|
||||||
:GRAALVM_VERSION "22.3.1"
|
:GRAALVM_VERSION "21"
|
||||||
:GRAALVM_HOME graalvm-home
|
:GRAALVM_HOME graalvm-home
|
||||||
:BABASHKA_TEST_ENV "jvm"}
|
:BABASHKA_TEST_ENV "jvm"}
|
||||||
:resource_class "large"
|
:resource_class "large"
|
||||||
|
|
@ -120,7 +120,7 @@ java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$refl
|
||||||
(defn unix
|
(defn unix
|
||||||
[shorted? static? musl? arch executor-conf resource-class graalvm-home platform]
|
[shorted? static? musl? arch executor-conf resource-class graalvm-home platform]
|
||||||
(let [env {:LEIN_ROOT "true"
|
(let [env {:LEIN_ROOT "true"
|
||||||
:GRAALVM_VERSION "22.3.1"
|
:GRAALVM_VERSION "21"
|
||||||
:GRAALVM_HOME graalvm-home
|
:GRAALVM_HOME graalvm-home
|
||||||
:BABASHKA_PLATFORM (if (= "mac" platform)
|
:BABASHKA_PLATFORM (if (= "mac" platform)
|
||||||
"macos"
|
"macos"
|
||||||
|
|
@ -178,7 +178,7 @@ java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$refl
|
||||||
{:persist_to_workspace {:root "/tmp"
|
{:persist_to_workspace {:root "/tmp"
|
||||||
:paths ["release"]}}
|
:paths ["release"]}}
|
||||||
{:save_cache
|
{:save_cache
|
||||||
{:paths ["~/.m2" "~/graalvm-ce-java19-22.3.1"]
|
{:paths ["~/.m2" "~/graalvm"]
|
||||||
:key cache-key}}
|
:key cache-key}}
|
||||||
{:store_artifacts {:path "/tmp/release"
|
{:store_artifacts {:path "/tmp/release"
|
||||||
:destination "release"}}
|
:destination "release"}}
|
||||||
|
|
@ -190,8 +190,8 @@ java -jar \"$jar\" --config .build/bb.edn --deps-root . release-artifact \"$refl
|
||||||
(let [docker-executor-conf {:docker [{:image "circleci/clojure:openjdk-11-lein-2.9.8-bullseye"}]}
|
(let [docker-executor-conf {:docker [{:image "circleci/clojure:openjdk-11-lein-2.9.8-bullseye"}]}
|
||||||
machine-executor-conf {:machine {:image "ubuntu-2004:202111-01"}}
|
machine-executor-conf {:machine {:image "ubuntu-2004:202111-01"}}
|
||||||
mac-executor-conf {:macos {:xcode "14.0.0"}}
|
mac-executor-conf {:macos {:xcode "14.0.0"}}
|
||||||
linux-graalvm-home "/home/circleci/graalvm-ce-java19-22.3.1"
|
linux-graalvm-home "/home/circleci/graalvm"
|
||||||
mac-graalvm-home "/Users/distiller/graalvm-ce-java19-22.3.1/Contents/Home"]
|
mac-graalvm-home "/Users/distiller/graalvm/Contents/Home"]
|
||||||
(ordered-map
|
(ordered-map
|
||||||
:version 2.1
|
:version 2.1
|
||||||
:commands
|
:commands
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ task:
|
||||||
skip: "changesIncludeOnly('logo/*', '**.md')"
|
skip: "changesIncludeOnly('logo/*', '**.md')"
|
||||||
env:
|
env:
|
||||||
LEIN_ROOT: "true"
|
LEIN_ROOT: "true"
|
||||||
GRAALVM_VERSION: "22.3.1"
|
GRAALVM_VERSION: "21"
|
||||||
GRAALVM_HOME: ${HOME}/graalvm-ce-java19-22.3.1/Contents/Home
|
GRAALVM_HOME: ${HOME}/graalvm/Contents/Home
|
||||||
BABASHKA_PLATFORM: macos # used in release script
|
BABASHKA_PLATFORM: macos # used in release script
|
||||||
BABASHKA_ARCH: aarch64
|
BABASHKA_ARCH: aarch64
|
||||||
BABASHKA_TEST_ENV: native
|
BABASHKA_TEST_ENV: native
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ A preview of the next release can be installed from
|
||||||
- [#1619](https://github.com/babashka/babashka/issues/1619): Fix reflection issue with `Thread/sleep` in `core.async/timeout`
|
- [#1619](https://github.com/babashka/babashka/issues/1619): Fix reflection issue with `Thread/sleep` in `core.async/timeout`
|
||||||
- Support interop on `java.util.stream.IntStream`
|
- Support interop on `java.util.stream.IntStream`
|
||||||
- [#1513](https://github.com/babashka/babashka/issues/1513): Fix interop on `Thread/sleep` with numbers that aren't already longs
|
- [#1513](https://github.com/babashka/babashka/issues/1513): Fix interop on `Thread/sleep` with numbers that aren't already longs
|
||||||
|
- [#1624](https://github.com/babashka/babashka/pull/1624): Use Oracle GraalVM 21 ([@lispyclouds](https://github.com/lispyclouds))
|
||||||
|
|
||||||
## 1.3.184 (2023-08-22)
|
## 1.3.184 (2023-08-22)
|
||||||
|
|
||||||
|
|
|
||||||
13
Dockerfile
13
Dockerfile
|
|
@ -5,24 +5,25 @@ RUN apt update
|
||||||
RUN apt install --no-install-recommends -yy build-essential zlib1g-dev
|
RUN apt install --no-install-recommends -yy build-essential zlib1g-dev
|
||||||
WORKDIR "/opt"
|
WORKDIR "/opt"
|
||||||
|
|
||||||
ENV GRAALVM_VERSION="22.3.1"
|
ENV GRAALVM_VERSION="21"
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
# Do not set those directly, use TARGETARCH instead
|
# Do not set those directly, use TARGETARCH instead
|
||||||
ENV BABASHKA_ARCH=
|
ENV BABASHKA_ARCH=
|
||||||
ENV GRAALVM_ARCH=
|
ENV GRAALVM_ARCH=
|
||||||
RUN if [ "${TARGETARCH}" = "" ] || [ "${TARGETARCH}" = "amd64" ]; then \
|
RUN if [ "${TARGETARCH}" = "" ] || [ "${TARGETARCH}" = "amd64" ]; then \
|
||||||
export GRAALVM_ARCH=amd64; export BABASHKA_ARCH=x86_64; \
|
export GRAALVM_ARCH=x64; export BABASHKA_ARCH=x86_64; \
|
||||||
elif [ "${TARGETARCH}" = "arm64" ]; then \
|
elif [ "${TARGETARCH}" = "arm64" ]; then \
|
||||||
export GRAALVM_ARCH=aarch64; \
|
export GRAALVM_ARCH=aarch64; \
|
||||||
fi && \
|
fi && \
|
||||||
echo "Installing GraalVM for ${GRAALVM_ARCH}" && \
|
echo "Installing GraalVM for ${GRAALVM_ARCH}" && \
|
||||||
curl -sLO https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${GRAALVM_VERSION}/graalvm-ce-java19-linux-${GRAALVM_ARCH}-${GRAALVM_VERSION}.tar.gz && \
|
curl -sLO https://download.oracle.com/graalvm/${GRAALVM_VERSION}/archive/graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz
|
||||||
tar -xzf graalvm-ce-java19-linux-${GRAALVM_ARCH}-${GRAALVM_VERSION}.tar.gz
|
mkdir graalvm
|
||||||
|
tar -xzf graalvm-jdk-${GRAALVM_VERSION}_linux-${GRAALVM_ARCH}_bin.tar.gz -C graalvm --strip-components 1
|
||||||
|
|
||||||
ARG BABASHKA_XMX="-J-Xmx4500m"
|
ARG BABASHKA_XMX="-J-Xmx4500m"
|
||||||
|
|
||||||
ENV GRAALVM_HOME="/opt/graalvm-ce-java19-${GRAALVM_VERSION}"
|
ENV GRAALVM_HOME="/opt/graalvm"
|
||||||
ENV JAVA_HOME="/opt/graalvm-ce-java19-${GRAALVM_VERSION}/bin"
|
ENV JAVA_HOME="$GRAALVM_HOME/bin"
|
||||||
ENV PATH="$JAVA_HOME:$PATH"
|
ENV PATH="$JAVA_HOME:$PATH"
|
||||||
ENV BABASHKA_XMX=$BABASHKA_XMX
|
ENV BABASHKA_XMX=$BABASHKA_XMX
|
||||||
|
|
||||||
|
|
|
||||||
11
appveyor.yml
11
appveyor.yml
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
version: "v-{build}"
|
version: "v-{build}"
|
||||||
|
|
||||||
image: Visual Studio 2019
|
image: Visual Studio 2022
|
||||||
|
|
||||||
clone_folder: C:\projects\babashka
|
clone_folder: C:\projects\babashka
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-ce-java19-22.3.1
|
GRAALVM_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21+35.1
|
||||||
JAVA_HOME: C:\projects\babashka\graalvm\graalvm-ce-java19-22.3.1
|
JAVA_HOME: C:\projects\babashka\graalvm\graalvm-jdk-21+35.1
|
||||||
BABASHKA_XMX: "-J-Xmx5g"
|
BABASHKA_XMX: "-J-Xmx5g"
|
||||||
|
|
||||||
skip_commits:
|
skip_commits:
|
||||||
|
|
@ -37,8 +37,9 @@ clone_script:
|
||||||
- cmd: git submodule update --init --recursive
|
- cmd: git submodule update --init --recursive
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
# TODO: Extract the zip by removing the top level folder to remove the hardcoded path for GRAALVM_HOME
|
||||||
- cmd: >-
|
- cmd: >-
|
||||||
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.3.1/graalvm-ce-java19-windows-amd64-22.3.1.zip', 'graalvm.zip') }"
|
powershell -Command "if (Test-Path('graalvm')) { return } else { (New-Object Net.WebClient).DownloadFile('https://download.oracle.com/graalvm/21/archive/graalvm-jdk-21_windows-x64_bin.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 }"
|
||||||
|
|
||||||
|
|
@ -55,8 +56,6 @@ build_script:
|
||||||
# see https://github.com/quarkusio/quarkus/pull/7663
|
# see https://github.com/quarkusio/quarkus/pull/7663
|
||||||
|
|
||||||
- cmd: >-
|
- cmd: >-
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
|
|
||||||
|
|
||||||
call script/uberjar.bat
|
call script/uberjar.bat
|
||||||
|
|
||||||
call script/compile.bat
|
call script/compile.bat
|
||||||
|
|
|
||||||
|
|
@ -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 *java19-22.3.1*.
|
- Download [GraalVM](https://www.graalvm.org/downloads/). Currently we use *jdk-21*.
|
||||||
- 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-java19-22.3.1/Contents/Home
|
export GRAALVM_HOME=~/Downloads/graalvm-jdk-21/Contents/Home
|
||||||
```
|
```
|
||||||
|
|
||||||
On linux:
|
On linux:
|
||||||
|
|
||||||
``` shell
|
``` shell
|
||||||
export GRAALVM_HOME=~/Downloads/graalvm-ce-java19-22.3.1
|
export GRAALVM_HOME=~/Downloads/graalvm-jdk-21
|
||||||
```
|
```
|
||||||
|
|
||||||
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-java19-22.3.1
|
set GRAALVM_HOME=%USERPROFILE%\Downloads\graalvm-ce-jdk-21
|
||||||
```
|
```
|
||||||
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:
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ reasons:
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use java19-22.3.1.
|
You need [lein](https://leiningen.org/) for running JVM tests and/or producing uberjars. For building binaries you need GraalVM. Currently we use jdk-21
|
||||||
|
|
||||||
## Clone repository
|
## Clone repository
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,8 @@ args=("-jar" "$BABASHKA_JAR"
|
||||||
"--install-exit-handlers"
|
"--install-exit-handlers"
|
||||||
# --trace-class-initialization=jdk.internal.net.http.common.DebugLogger,jdk.internal.net.http.websocket.WebSocketImpl,jdk.internal.net.http.common.Utils
|
# --trace-class-initialization=jdk.internal.net.http.common.DebugLogger,jdk.internal.net.http.websocket.WebSocketImpl,jdk.internal.net.http.common.Utils
|
||||||
"$BABASHKA_XMX"
|
"$BABASHKA_XMX"
|
||||||
"--enable-preview")
|
"--enable-preview"
|
||||||
|
"-O1")
|
||||||
|
|
||||||
BABASHKA_STATIC=${BABASHKA_STATIC:-}
|
BABASHKA_STATIC=${BABASHKA_STATIC:-}
|
||||||
BABASHKA_MUSL=${BABASHKA_MUSL:-}
|
BABASHKA_MUSL=${BABASHKA_MUSL:-}
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ call %GRAALVM_HOME%\bin\native-image.cmd ^
|
||||||
"--no-fallback" ^
|
"--no-fallback" ^
|
||||||
"--enable-preview" ^
|
"--enable-preview" ^
|
||||||
"--install-exit-handlers" ^
|
"--install-exit-handlers" ^
|
||||||
|
"-O1" ^
|
||||||
"%BABASHKA_XMX%"
|
"%BABASHKA_XMX%"
|
||||||
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||||
|
|
|
||||||
|
|
@ -4,37 +4,33 @@ set -euo pipefail
|
||||||
|
|
||||||
INSTALL_DIR="${1:-$HOME}"
|
INSTALL_DIR="${1:-$HOME}"
|
||||||
|
|
||||||
GRAALVM_VERSION="${GRAALVM_VERSION:-21.2.0}"
|
GRAALVM_VERSION="${GRAALVM_VERSION:-21}"
|
||||||
|
|
||||||
case "$BABASHKA_PLATFORM" in
|
GRAALVM_PLATFORM=$BABASHKA_PLATFORM
|
||||||
macos)
|
|
||||||
GRAALVM_PLATFORM="darwin"
|
|
||||||
;;
|
|
||||||
linux)
|
|
||||||
GRAALVM_PLATFORM="linux"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "${BABASHKA_ARCH:-}" in
|
case "${BABASHKA_ARCH:-}" in
|
||||||
aarch64)
|
aarch64)
|
||||||
GRAALVM_ARCH="aarch64"
|
GRAALVM_ARCH="aarch64"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
GRAALVM_ARCH="amd64"
|
GRAALVM_ARCH="x64"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
GRAALVM_FILENAME="graalvm-ce-java19-$GRAALVM_PLATFORM-$GRAALVM_ARCH-$GRAALVM_VERSION.tar.gz"
|
GRAALVM_DIR_NAME="graalvm"
|
||||||
|
GRAALVM_FILENAME="graalvm-jdk-${GRAALVM_VERSION}_${GRAALVM_PLATFORM}-${GRAALVM_ARCH}_bin.tar.gz"
|
||||||
|
DOWNLOAD_URL="https://download.oracle.com/graalvm/${GRAALVM_VERSION}/archive/${GRAALVM_FILENAME}"
|
||||||
|
|
||||||
pushd "$INSTALL_DIR" >/dev/null
|
pushd "$INSTALL_DIR" >/dev/null
|
||||||
|
|
||||||
if ! [ -d "graalvm-ce-java19-$GRAALVM_VERSION" ]; then
|
if ! [ -d "$GRAALVM_DIR_NAME" ]; then
|
||||||
echo "Downloading GraalVM $GRAALVM_PLATFORM-$GRAALVM_ARCH-$GRAALVM_VERSION on '$PWD'..."
|
echo "Downloading GraalVM $GRAALVM_PLATFORM-$GRAALVM_ARCH-$GRAALVM_VERSION on '$PWD'..."
|
||||||
echo "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-$GRAALVM_VERSION/$GRAALVM_FILENAME"
|
echo "$DOWNLOAD_URL"
|
||||||
curl -LO "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-$GRAALVM_VERSION/$GRAALVM_FILENAME"
|
curl -LO "$DOWNLOAD_URL"
|
||||||
ls -la
|
ls -la
|
||||||
tar xzvf "$GRAALVM_FILENAME"
|
mkdir "$GRAALVM_DIR_NAME"
|
||||||
ls -la "graalvm-ce-java19-$GRAALVM_VERSION"
|
tar xzvf "$GRAALVM_FILENAME" -C "$GRAALVM_DIR_NAME" --strip-components 1
|
||||||
|
ls -la "$GRAALVM_DIR_NAME"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue