diff --git a/.circleci/config.yml b/.circleci/config.yml index ad653a42..53356bc5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 52cef161..c93c1ac4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 diff --git a/Dockerfile b/Dockerfile index ba680a5a..a56bbafc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 diff --git a/appveyor.yml b/appveyor.yml index 3fb7e31e..fe2ebb38 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -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 }" diff --git a/doc/build.md b/doc/build.md index 78a2da8f..c27082d5 100644 --- a/doc/build.md +++ b/doc/build.md @@ -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: ``` diff --git a/doc/dev.md b/doc/dev.md index 1c5f3c6b..4602aa5e 100644 --- a/doc/dev.md +++ b/doc/dev.md @@ -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 diff --git a/script/bump_graal_version.clj b/script/bump_graal_version.clj index e448d42f..786d415a 100755 --- a/script/bump_graal_version.clj +++ b/script/bump_graal_version.clj @@ -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 diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index 2103a9e9..8104e8e7 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -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