diff --git a/.github/workflows/espresso-continuations.yml b/.github/workflows/espresso-continuations.yml index 7186364e..bd98945b 100644 --- a/.github/workflows/espresso-continuations.yml +++ b/.github/workflows/espresso-continuations.yml @@ -19,10 +19,10 @@ jobs: steps: - uses: actions/checkout@v4 - name: Download Espresso - run: curl -sL -o $RUNNER_TEMP/espresso-linux-amd64.tar.gz https://gds.oracle.com/download/espresso/archive/espresso-java21-24.2.2-linux-amd64.tar.gz + run: curl -sL -o $RUNNER_TEMP/espresso-linux-amd64.tar.gz https://gds.oracle.com/download/espresso/archive/espresso-java25-25.0.0-linux-amd64.tar.gz - uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'jdkfile' jdkFile: ${{ runner.temp }}/espresso-linux-amd64.tar.gz - name: Build and run 'espresso-continuations' using Maven diff --git a/.github/workflows/graaljs-spring-boot-d3.yml b/.github/workflows/graaljs-spring-boot-d3.yml index 24ba157c..6c16d0bd 100644 --- a/.github/workflows/graaljs-spring-boot-d3.yml +++ b/.github/workflows/graaljs-spring-boot-d3.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graaljs-starter.yml b/.github/workflows/graaljs-starter.yml index 2849db30..50d214e9 100644 --- a/.github/workflows/graaljs-starter.yml +++ b/.github/workflows/graaljs-starter.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graaljs-webpack-guide.yml b/.github/workflows/graaljs-webpack-guide.yml index 87ea3f2f..1cd19d7c 100644 --- a/.github/workflows/graaljs-webpack-guide.yml +++ b/.github/workflows/graaljs-webpack-guide.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' diff --git a/.github/workflows/graalpy-custom-venv-guide.yml b/.github/workflows/graalpy-custom-venv-guide.yml index 5a24f92d..03f02b53 100644 --- a/.github/workflows/graalpy-custom-venv-guide.yml +++ b/.github/workflows/graalpy-custom-venv-guide.yml @@ -20,13 +20,13 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' - uses: actions/setup-python@v5 with: - python-version: 'graalpy-24.1' + python-version: 'graalpy-25.0' - name: Build, test, and run 'graalpy-custom-venv-guide' using Maven shell: bash run: | diff --git a/.github/workflows/graalpy-freeze-dependencies-guide.yml b/.github/workflows/graalpy-freeze-dependencies-guide.yml index 0d17df3a..25ddbe8d 100644 --- a/.github/workflows/graalpy-freeze-dependencies-guide.yml +++ b/.github/workflows/graalpy-freeze-dependencies-guide.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-javase-guide.yml b/.github/workflows/graalpy-javase-guide.yml index f64c87d9..587ca2b4 100644 --- a/.github/workflows/graalpy-javase-guide.yml +++ b/.github/workflows/graalpy-javase-guide.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-jbang-qrcode.yml b/.github/workflows/graalpy-jbang-qrcode.yml index 93c1568d..2954f93a 100644 --- a/.github/workflows/graalpy-jbang-qrcode.yml +++ b/.github/workflows/graalpy-jbang-qrcode.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} - name: Run 'graalpy-jbang-qrcode' demo diff --git a/.github/workflows/graalpy-jython-guide.yml b/.github/workflows/graalpy-jython-guide.yml index 197b67ee..745890e4 100644 --- a/.github/workflows/graalpy-jython-guide.yml +++ b/.github/workflows/graalpy-jython-guide.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-micronaut-guide.yml b/.github/workflows/graalpy-micronaut-guide.yml index ba3fd107..bae38e22 100644 --- a/.github/workflows/graalpy-micronaut-guide.yml +++ b/.github/workflows/graalpy-micronaut-guide.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -38,7 +38,7 @@ jobs: kill $mnpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -62,7 +62,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' @@ -78,7 +78,7 @@ jobs: kill $mnpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' diff --git a/.github/workflows/graalpy-micronaut-multithreaded.yml b/.github/workflows/graalpy-micronaut-multithreaded.yml index b1acb647..885a5323 100644 --- a/.github/workflows/graalpy-micronaut-multithreaded.yml +++ b/.github/workflows/graalpy-micronaut-multithreaded.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -39,7 +39,7 @@ jobs: kill $mnpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -64,7 +64,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' @@ -81,7 +81,7 @@ jobs: kill $mnpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' diff --git a/.github/workflows/graalpy-micronaut-pygal-charts.yml b/.github/workflows/graalpy-micronaut-pygal-charts.yml index 4b989e3b..6a99ba0a 100644 --- a/.github/workflows/graalpy-micronaut-pygal-charts.yml +++ b/.github/workflows/graalpy-micronaut-pygal-charts.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-native-extensions-guide.yml b/.github/workflows/graalpy-native-extensions-guide.yml index e6aadd7f..82be2b7b 100644 --- a/.github/workflows/graalpy-native-extensions-guide.yml +++ b/.github/workflows/graalpy-native-extensions-guide.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-openai-starter.yml b/.github/workflows/graalpy-openai-starter.yml index 776596ed..1d5f9f7c 100644 --- a/.github/workflows/graalpy-openai-starter.yml +++ b/.github/workflows/graalpy-openai-starter.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-script-debug.yml b/.github/workflows/graalpy-script-debug.yml index 5dbaf7a2..422bc7c2 100644 --- a/.github/workflows/graalpy-script-debug.yml +++ b/.github/workflows/graalpy-script-debug.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-spring-boot-guide.yml b/.github/workflows/graalpy-spring-boot-guide.yml index 5984977d..52aa91da 100644 --- a/.github/workflows/graalpy-spring-boot-guide.yml +++ b/.github/workflows/graalpy-spring-boot-guide.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -38,7 +38,7 @@ jobs: kill $sbpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -62,7 +62,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '21.0.6' + java-version: '21.0.8' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' @@ -78,7 +78,7 @@ jobs: kill $sbpid - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'gradle' diff --git a/.github/workflows/graalpy-spring-boot-pygal-charts.yml b/.github/workflows/graalpy-spring-boot-pygal-charts.yml index 20b73d4d..94848793 100644 --- a/.github/workflows/graalpy-spring-boot-pygal-charts.yml +++ b/.github/workflows/graalpy-spring-boot-pygal-charts.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalpy-starter.yml b/.github/workflows/graalpy-starter.yml index e9b95545..339ddd86 100644 --- a/.github/workflows/graalpy-starter.yml +++ b/.github/workflows/graalpy-starter.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalwasm-embed-c-code-guide.yml b/.github/workflows/graalwasm-embed-c-code-guide.yml index b698be22..ddd38512 100644 --- a/.github/workflows/graalwasm-embed-c-code-guide.yml +++ b/.github/workflows/graalwasm-embed-c-code-guide.yml @@ -30,7 +30,7 @@ jobs: ./emsdk activate latest - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -39,4 +39,4 @@ jobs: source ./emsdk/emsdk_env.sh cd graalwasm/graalwasm-embed-c-code-guide ./mvnw --no-transfer-progress package - ./mvnw --no-transfer-progress exec:java + ./mvnw --no-transfer-progress exec:exec diff --git a/.github/workflows/graalwasm-embed-go-code-guide.yml b/.github/workflows/graalwasm-embed-go-code-guide.yml index eb9b5dce..3c7b1232 100644 --- a/.github/workflows/graalwasm-embed-go-code-guide.yml +++ b/.github/workflows/graalwasm-embed-go-code-guide.yml @@ -28,7 +28,7 @@ jobs: - name: Set up GraalVM uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalwasm-embed-rust-code-guide.yml b/.github/workflows/graalwasm-embed-rust-code-guide.yml index 1375de90..16a9b4e7 100644 --- a/.github/workflows/graalwasm-embed-rust-code-guide.yml +++ b/.github/workflows/graalwasm-embed-rust-code-guide.yml @@ -26,7 +26,7 @@ jobs: - name: Set up GraalVM uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalwasm-micronaut-photon.yml b/.github/workflows/graalwasm-micronaut-photon.yml index 11c9f452..a41c443f 100644 --- a/.github/workflows/graalwasm-micronaut-photon.yml +++ b/.github/workflows/graalwasm-micronaut-photon.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalwasm-spring-boot-photon.yml b/.github/workflows/graalwasm-spring-boot-photon.yml index c24e350e..e8b7c3c2 100644 --- a/.github/workflows/graalwasm-spring-boot-photon.yml +++ b/.github/workflows/graalwasm-spring-boot-photon.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' diff --git a/.github/workflows/graalwasm-starter.yml b/.github/workflows/graalwasm-starter.yml index 5ec1ed06..a8eda182 100644 --- a/.github/workflows/graalwasm-starter.yml +++ b/.github/workflows/graalwasm-starter.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v4 - uses: graalvm/setup-graalvm@v1 with: - java-version: '24.0.2' + java-version: '25.0.0' distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} cache: 'maven' @@ -29,7 +29,7 @@ jobs: run: | cd graalwasm/graalwasm-starter ./mvnw --no-transfer-progress test - ./mvnw --no-transfer-progress exec:java + ./mvnw --no-transfer-progress exec:exec - name: Build, test, and run 'graalwasm-starter' using Gradle run: | cd graalwasm/graalwasm-starter diff --git a/espresso/espresso-continuations/README.md b/espresso/espresso-continuations/README.md index 623d2d91..eaa7861f 100644 --- a/espresso/espresso-continuations/README.md +++ b/espresso/espresso-continuations/README.md @@ -5,7 +5,7 @@ Each time it runs, the program increments a counter, displays the updated value, ## Preparation -Install [Espresso 24.2.2](https://www.graalvm.org/latest/reference-manual/espresso/) and set the value of `JAVA_HOME` accordingly. +Install [Espresso 25.0.0](https://www.graalvm.org/latest/reference-manual/espresso/) and set the value of `JAVA_HOME` accordingly. ## Run the Application diff --git a/espresso/espresso-continuations/pom.xml b/espresso/espresso-continuations/pom.xml index d7ba491b..9a51bf94 100644 --- a/espresso/espresso-continuations/pom.xml +++ b/espresso/espresso-continuations/pom.xml @@ -11,7 +11,7 @@ https://www.example.com - 24.2.2 + 25.0.0 java UTF-8 21 diff --git a/graaljs/graaljs-spring-boot-d3/pom.xml b/graaljs/graaljs-spring-boot-d3/pom.xml index b41831f8..605d09b2 100644 --- a/graaljs/graaljs-spring-boot-d3/pom.xml +++ b/graaljs/graaljs-spring-boot-d3/pom.xml @@ -19,7 +19,7 @@ Demo project for Spring with GraalJS - 24.2.2 + 25.0.0 --enable-native-access=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow diff --git a/graaljs/graaljs-starter/README.md b/graaljs/graaljs-starter/README.md index 443b117b..2b91627f 100644 --- a/graaljs/graaljs-starter/README.md +++ b/graaljs/graaljs-starter/README.md @@ -4,11 +4,11 @@ A minimal Java application that embeds JavaScript code with GraalJS. ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application Using Maven diff --git a/graaljs/graaljs-starter/build.gradle.kts b/graaljs/graaljs-starter/build.gradle.kts index 177c1d07..f284d8b7 100644 --- a/graaljs/graaljs-starter/build.gradle.kts +++ b/graaljs/graaljs-starter/build.gradle.kts @@ -9,8 +9,8 @@ repositories { } dependencies { - implementation("org.graalvm.polyglot:polyglot:24.2.2") - implementation("org.graalvm.polyglot:js:24.2.2") + implementation("org.graalvm.polyglot:polyglot:25.0.0") + implementation("org.graalvm.polyglot:js:25.0.0") // Use JUnit Jupiter for testing. testImplementation("org.junit.jupiter:junit-jupiter:5.11.0") diff --git a/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.jar b/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.jar and b/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.properties b/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.properties index 0aaefbca..2a84e188 100644 --- a/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.properties +++ b/graaljs/graaljs-starter/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graaljs/graaljs-starter/gradlew b/graaljs/graaljs-starter/gradlew index f5feea6d..ef07e016 100755 --- a/graaljs/graaljs-starter/gradlew +++ b/graaljs/graaljs-starter/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graaljs/graaljs-starter/gradlew.bat b/graaljs/graaljs-starter/gradlew.bat index 9d21a218..db3a6ac2 100644 --- a/graaljs/graaljs-starter/gradlew.bat +++ b/graaljs/graaljs-starter/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graaljs/graaljs-starter/pom.xml b/graaljs/graaljs-starter/pom.xml index b738ad82..915130bd 100644 --- a/graaljs/graaljs-starter/pom.xml +++ b/graaljs/graaljs-starter/pom.xml @@ -31,12 +31,12 @@ org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.polyglot js - 24.2.2 + 25.0.0 pom diff --git a/graaljs/graaljs-webpack-guide/README.md b/graaljs/graaljs-webpack-guide/README.md index 4640ddad..c0adc614 100644 --- a/graaljs/graaljs-webpack-guide/README.md +++ b/graaljs/graaljs-webpack-guide/README.md @@ -54,8 +54,8 @@ _build.gradle_ ```gradle dependencies { - implementation 'org.graalvm.polyglot:polyglot:24.2.2' // ① - implementation 'org.graalvm.polyglot:js:24.2.2' // ② + implementation 'org.graalvm.polyglot:polyglot:25.0.0' // ① + implementation 'org.graalvm.polyglot:js:25.0.0' // ② } ``` @@ -129,13 +129,13 @@ _pom.xml_ org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.polyglot js - 24.2.2 + 25.0.0 pom diff --git a/graaljs/graaljs-webpack-guide/build.gradle b/graaljs/graaljs-webpack-guide/build.gradle index 50a02eac..b4d45695 100644 --- a/graaljs/graaljs-webpack-guide/build.gradle +++ b/graaljs/graaljs-webpack-guide/build.gradle @@ -10,8 +10,8 @@ application { mainClass = 'com.example.App' } dependencies { - implementation 'org.graalvm.polyglot:polyglot:24.2.2' - implementation 'org.graalvm.polyglot:js:24.2.2' + implementation 'org.graalvm.polyglot:polyglot:25.0.0' + implementation 'org.graalvm.polyglot:js:25.0.0' testImplementation platform('org.junit:junit-bom:5.11.0') testImplementation 'org.junit.jupiter:junit-jupiter-api' diff --git a/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.jar b/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.jar index 1b33c55b..8bdaf60c 100644 Binary files a/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.jar and b/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.properties b/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.properties index ca025c83..2a84e188 100644 --- a/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graaljs/graaljs-webpack-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graaljs/graaljs-webpack-guide/gradlew b/graaljs/graaljs-webpack-guide/gradlew index 23d15a93..ef07e016 100755 --- a/graaljs/graaljs-webpack-guide/gradlew +++ b/graaljs/graaljs-webpack-guide/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/graaljs/graaljs-webpack-guide/pom.xml b/graaljs/graaljs-webpack-guide/pom.xml index 615f9975..20119ab7 100644 --- a/graaljs/graaljs-webpack-guide/pom.xml +++ b/graaljs/graaljs-webpack-guide/pom.xml @@ -32,12 +32,12 @@ org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.polyglot js - 24.2.2 + 25.0.0 pom diff --git a/graalpy/graalpy-custom-venv-guide/README.md b/graalpy/graalpy-custom-venv-guide/README.md index 9b9f5bcd..c56c2f5d 100644 --- a/graalpy/graalpy-custom-venv-guide/README.md +++ b/graalpy/graalpy-custom-venv-guide/README.md @@ -54,14 +54,14 @@ Add the required dependencies for GraalPy in the `` section of the org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 ``` diff --git a/graalpy/graalpy-custom-venv-guide/pom.xml b/graalpy/graalpy-custom-venv-guide/pom.xml index 447377e3..9d81c2d1 100644 --- a/graalpy/graalpy-custom-venv-guide/pom.xml +++ b/graalpy/graalpy-custom-venv-guide/pom.xml @@ -17,14 +17,14 @@ org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 diff --git a/graalpy/graalpy-freeze-dependencies-guide/README.md b/graalpy/graalpy-freeze-dependencies-guide/README.md index 2a7015e6..80797380 100644 --- a/graalpy/graalpy-freeze-dependencies-guide/README.md +++ b/graalpy/graalpy-freeze-dependencies-guide/README.md @@ -68,7 +68,7 @@ For Maven, add dependency on GraalPy runtime, and configure the GraalPy Maven pl org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom ``` @@ -80,7 +80,7 @@ For Maven, add dependency on GraalPy runtime, and configure the GraalPy Maven pl org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vaderSentiment==3.3.2 @@ -104,7 +104,7 @@ For Gradle, add the GraalPy plugin, configure it, and add the dependency on the ```kotlin plugins { application - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" } ``` @@ -178,7 +178,7 @@ If you use Maven, paste them in the `pom.xml` section of the packages and wrap t org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vaderSentiment==3.3.2 diff --git a/graalpy/graalpy-freeze-dependencies-guide/build.gradle.kts b/graalpy/graalpy-freeze-dependencies-guide/build.gradle.kts index d63917e0..7f5ab931 100644 --- a/graalpy/graalpy-freeze-dependencies-guide/build.gradle.kts +++ b/graalpy/graalpy-freeze-dependencies-guide/build.gradle.kts @@ -1,6 +1,6 @@ plugins { application - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" } // To make the paths of this reference solution (without 'app' subdirectory for sources) @@ -34,7 +34,7 @@ repositories { } // This dependency is necessary only for the example Java code, not for building and running pip freeze: -dependencies.add("implementation", "org.graalvm.python:python-embedding:24.2.2") +dependencies.add("implementation", "org.graalvm.python:python-embedding:25.0.0") group = "org.example" version = "1.0-SNAPSHOT" diff --git a/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.properties index df97d72b..2a84e188 100644 --- a/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-freeze-dependencies-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-freeze-dependencies-guide/gradlew b/graalpy/graalpy-freeze-dependencies-guide/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-freeze-dependencies-guide/gradlew +++ b/graalpy/graalpy-freeze-dependencies-guide/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-freeze-dependencies-guide/gradlew.bat b/graalpy/graalpy-freeze-dependencies-guide/gradlew.bat index 9b42019c..5eed7ee8 100644 --- a/graalpy/graalpy-freeze-dependencies-guide/gradlew.bat +++ b/graalpy/graalpy-freeze-dependencies-guide/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-freeze-dependencies-guide/pom.xml b/graalpy/graalpy-freeze-dependencies-guide/pom.xml index ee655101..33fae4c1 100644 --- a/graalpy/graalpy-freeze-dependencies-guide/pom.xml +++ b/graalpy/graalpy-freeze-dependencies-guide/pom.xml @@ -19,7 +19,7 @@ org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom @@ -27,7 +27,7 @@ org.graalvm.python python-embedding - 24.2.2 + 25.0.0 @@ -44,7 +44,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vaderSentiment==3.3.2 @@ -80,7 +80,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vaderSentiment==3.3.2 diff --git a/graalpy/graalpy-javase-guide/README.md b/graalpy/graalpy-javase-guide/README.md index 9a5568fe..ef83c371 100644 --- a/graalpy/graalpy-javase-guide/README.md +++ b/graalpy/graalpy-javase-guide/README.md @@ -62,14 +62,14 @@ dependencies automatically. org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 ``` @@ -93,7 +93,7 @@ You can use the GraalPy plugins for Maven or Gradle to manage Python packages fo org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 qrcode==7.4.2 @@ -118,7 +118,7 @@ You can use the GraalPy plugins for Maven or Gradle to manage Python packages fo ```kotlin plugins { application - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" } graalPy { diff --git a/graalpy/graalpy-javase-guide/build.gradle.kts b/graalpy/graalpy-javase-guide/build.gradle.kts index 89db3d04..69e0f62a 100644 --- a/graalpy/graalpy-javase-guide/build.gradle.kts +++ b/graalpy/graalpy-javase-guide/build.gradle.kts @@ -1,6 +1,6 @@ plugins { application - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" } graalPy { diff --git a/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.properties index df97d72b..2a84e188 100644 --- a/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-javase-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-javase-guide/gradlew b/graalpy/graalpy-javase-guide/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-javase-guide/gradlew +++ b/graalpy/graalpy-javase-guide/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-javase-guide/gradlew.bat b/graalpy/graalpy-javase-guide/gradlew.bat index 9b42019c..5eed7ee8 100644 --- a/graalpy/graalpy-javase-guide/gradlew.bat +++ b/graalpy/graalpy-javase-guide/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-javase-guide/pom.xml b/graalpy/graalpy-javase-guide/pom.xml index 29d7d8f3..5f672602 100644 --- a/graalpy/graalpy-javase-guide/pom.xml +++ b/graalpy/graalpy-javase-guide/pom.xml @@ -18,14 +18,14 @@ org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 @@ -34,7 +34,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 qrcode==7.4.2 diff --git a/graalpy/graalpy-jbang-qrcode/README.md b/graalpy/graalpy-jbang-qrcode/README.md index 63ceb24b..aa63ac8a 100644 --- a/graalpy/graalpy-jbang-qrcode/README.md +++ b/graalpy/graalpy-jbang-qrcode/README.md @@ -4,11 +4,11 @@ This demo illustrates how GraalPy can be used to embed the [`qrcode` Python pack ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` Afterward, [install `jbang`](https://www.jbang.dev/download/), for with: diff --git a/graalpy/graalpy-jbang-qrcode/qrcode.java b/graalpy/graalpy-jbang-qrcode/qrcode.java index 08f6b164..9eac9f2a 100644 --- a/graalpy/graalpy-jbang-qrcode/qrcode.java +++ b/graalpy/graalpy-jbang-qrcode/qrcode.java @@ -4,13 +4,13 @@ * Licensed under the Universal Permissive License v 1.0 as shown at https://opensource.org/license/UPL. */ -//DEPS org.graalvm.python:python-language:24.2.2 -//DEPS org.graalvm.python:python-launcher:24.2.2 -//DEPS org.graalvm.python:python-resources:24.2.2 -//DEPS org.graalvm.python:python-embedding:24.2.2 -//DEPS org.graalvm.python:python-embedding-tools:24.2.2 -//DEPS org.graalvm.python:jbang:24.2.2 -//DEPS org.graalvm.truffle:truffle-runtime:24.2.2 +//DEPS org.graalvm.python:python-language:25.0.0 +//DEPS org.graalvm.python:python-launcher:25.0.0 +//DEPS org.graalvm.python:python-resources:25.0.0 +//DEPS org.graalvm.python:python-embedding:25.0.0 +//DEPS org.graalvm.python:python-embedding-tools:25.0.0 +//DEPS org.graalvm.python:jbang:25.0.0 +//DEPS org.graalvm.truffle:truffle-runtime:25.0.0 //PIP qrcode==7.4.2 import org.graalvm.python.embedding.GraalPyResources; diff --git a/graalpy/graalpy-jython-guide/README.md b/graalpy/graalpy-jython-guide/README.md index f71779b3..a3a80e47 100644 --- a/graalpy/graalpy-jython-guide/README.md +++ b/graalpy/graalpy-jython-guide/README.md @@ -115,14 +115,14 @@ Add the required dependencies for GraalPy in the `` section of the org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 ``` diff --git a/graalpy/graalpy-jython-guide/pom.xml b/graalpy/graalpy-jython-guide/pom.xml index 7e2ac0c2..f7fe6e08 100644 --- a/graalpy/graalpy-jython-guide/pom.xml +++ b/graalpy/graalpy-jython-guide/pom.xml @@ -24,13 +24,13 @@ org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 diff --git a/graalpy/graalpy-micronaut-guide/README.md b/graalpy/graalpy-micronaut-guide/README.md index bf87633e..1c38e31b 100644 --- a/graalpy/graalpy-micronaut-guide/README.md +++ b/graalpy/graalpy-micronaut-guide/README.md @@ -72,13 +72,13 @@ related dependencies automatically. org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 io.micronaut.views @@ -112,7 +112,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vader-sentiment==3.2.1.1 @@ -132,7 +132,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM `build.gradle.kts` ``` plugins { - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" // ... ``` diff --git a/graalpy/graalpy-micronaut-guide/build.gradle.kts b/graalpy/graalpy-micronaut-guide/build.gradle.kts index 72542506..a7e99c06 100644 --- a/graalpy/graalpy-micronaut-guide/build.gradle.kts +++ b/graalpy/graalpy-micronaut-guide/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" // ... id("com.github.johnrengelman.shadow") version "8.1.1" id("io.micronaut.application") version "4.4.2" diff --git a/graalpy/graalpy-micronaut-guide/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-micronaut-guide/gradle/wrapper/gradle-wrapper.properties index df97d72b..37f853b1 100644 --- a/graalpy/graalpy-micronaut-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-micronaut-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-micronaut-guide/pom.xml b/graalpy/graalpy-micronaut-guide/pom.xml index f9798b44..a9945a8e 100644 --- a/graalpy/graalpy-micronaut-guide/pom.xml +++ b/graalpy/graalpy-micronaut-guide/pom.xml @@ -35,13 +35,13 @@ org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 io.micronaut.views @@ -90,7 +90,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vader-sentiment==3.2.1.1 diff --git a/graalpy/graalpy-micronaut-multithreaded/README.md b/graalpy/graalpy-micronaut-multithreaded/README.md index fd60b31f..410a2f35 100644 --- a/graalpy/graalpy-micronaut-multithreaded/README.md +++ b/graalpy/graalpy-micronaut-multithreaded/README.md @@ -72,13 +72,13 @@ For Gradle, the GraalPy Gradle plugin that we will add in the next section will org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 ``` @@ -101,7 +101,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 numpy==1.26.4 @@ -155,7 +155,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM `build.gradle.kts` ``` plugins { - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" // ... ``` diff --git a/graalpy/graalpy-micronaut-multithreaded/build.gradle.kts b/graalpy/graalpy-micronaut-multithreaded/build.gradle.kts index 876eb962..adfd4d16 100644 --- a/graalpy/graalpy-micronaut-multithreaded/build.gradle.kts +++ b/graalpy/graalpy-micronaut-multithreaded/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" // ... id("com.github.johnrengelman.shadow") version "8.1.1" id("io.micronaut.application") version "4.4.2" diff --git a/graalpy/graalpy-micronaut-multithreaded/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-micronaut-multithreaded/gradle/wrapper/gradle-wrapper.properties index df97d72b..37f853b1 100644 --- a/graalpy/graalpy-micronaut-multithreaded/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-micronaut-multithreaded/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-micronaut-multithreaded/pom.xml b/graalpy/graalpy-micronaut-multithreaded/pom.xml index 47e1ef48..2c83191c 100644 --- a/graalpy/graalpy-micronaut-multithreaded/pom.xml +++ b/graalpy/graalpy-micronaut-multithreaded/pom.xml @@ -34,13 +34,13 @@ org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 @@ -136,7 +136,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 numpy==1.26.4 diff --git a/graalpy/graalpy-micronaut-pygal-charts/README.md b/graalpy/graalpy-micronaut-pygal-charts/README.md index 67e52143..2a1014cb 100644 --- a/graalpy/graalpy-micronaut-pygal-charts/README.md +++ b/graalpy/graalpy-micronaut-pygal-charts/README.md @@ -5,11 +5,11 @@ In particular, this demo shows four different approaches to interact with Pygal ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application diff --git a/graalpy/graalpy-micronaut-pygal-charts/pom.xml b/graalpy/graalpy-micronaut-pygal-charts/pom.xml index 253211c2..6a39bbb7 100644 --- a/graalpy/graalpy-micronaut-pygal-charts/pom.xml +++ b/graalpy/graalpy-micronaut-pygal-charts/pom.xml @@ -13,7 +13,7 @@ 4.6.1 - 24.2.2 + 25.0.0 jar 21 21 diff --git a/graalpy/graalpy-native-extensions-guide/README.md b/graalpy/graalpy-native-extensions-guide/README.md index 187c4f6f..08d66c95 100644 --- a/graalpy/graalpy-native-extensions-guide/README.md +++ b/graalpy/graalpy-native-extensions-guide/README.md @@ -62,14 +62,14 @@ Add the required dependencies for GraalPy in the dependency section of the POM. org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 ``` @@ -92,7 +92,7 @@ You can use the GraalPy plugin to manage Python packages for you. org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 polyleven==0.8 diff --git a/graalpy/graalpy-native-extensions-guide/pom.xml b/graalpy/graalpy-native-extensions-guide/pom.xml index da7e0f12..c236c417 100644 --- a/graalpy/graalpy-native-extensions-guide/pom.xml +++ b/graalpy/graalpy-native-extensions-guide/pom.xml @@ -19,14 +19,14 @@ org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 @@ -35,7 +35,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 polyleven==0.8 diff --git a/graalpy/graalpy-openai-starter/README.md b/graalpy/graalpy-openai-starter/README.md index 83aef7da..89117a8b 100644 --- a/graalpy/graalpy-openai-starter/README.md +++ b/graalpy/graalpy-openai-starter/README.md @@ -4,11 +4,11 @@ A minimal Java application that embeds [the official Python library for the Open ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` This project also requires that an OpenAI API key is set via the `OPENAI_API_KEY` environment variable. @@ -25,7 +25,7 @@ To build and test the demo, run: To execute the main method, run: ```bash -./mvnw exec:java -Dexec.args="'Say Hello from GraalPy'" +./mvnw exec:exec -Duser.input="'How can I check if my code runs on GraalPy?'" ``` ## Run the Application Using Gradle @@ -39,7 +39,7 @@ To build and test the demo, run: To execute the main method, run: ```bash -./gradlew run --args="'Say Hello from GraalPy'" +./gradlew run --args="'How can I check if my code runs on GraalPy?'" ``` ## Implementation Details diff --git a/graalpy/graalpy-openai-starter/build.gradle.kts b/graalpy/graalpy-openai-starter/build.gradle.kts index bfa4d9bb..c2f15bbe 100644 --- a/graalpy/graalpy-openai-starter/build.gradle.kts +++ b/graalpy/graalpy-openai-starter/build.gradle.kts @@ -2,7 +2,7 @@ plugins { // Apply the application plugin to add support for building a CLI application in Java. application // Apply GraalPy plugin to add Python packages as dependencies. - id("org.graalvm.python") version "24.2.2" + id("org.graalvm.python") version "25.0.0" } repositories { @@ -19,22 +19,7 @@ dependencies { graalPy { packages = setOf( - "annotated-types==0.7.0", - "anyio==4.6.0", - "certifi==2024.8.30", - "distro==1.9.0", - "h11==0.14.0", - "hpy==0.9.0", - "httpcore==1.0.5", - "httpx==0.27.2", - "idna==3.10", - "jiter==0.5.0", // uses a native extension - "openai==1.47.1", - "pydantic==2.4.2", - "pydantic_core==2.10.1", // uses a native extension - "sniffio==1.3.1", - "tqdm==4.66.5", - "typing_extensions==4.12.2" + "openai==1.107.3", ) } @@ -43,7 +28,14 @@ application { mainClass = "com.example.App" } +val truffleJvmArgs = listOf("--enable-native-access=ALL-UNNAMED", "--sun-misc-unsafe-memory-access=allow") + +tasks.named("run") { + jvmArgs = truffleJvmArgs +} + tasks.named("test") { + jvmArgs = truffleJvmArgs // Use JUnit Platform for unit tests. useJUnitPlatform() } diff --git a/graalpy/graalpy-openai-starter/graalpy.lock b/graalpy/graalpy-openai-starter/graalpy.lock new file mode 100644 index 00000000..15da585d --- /dev/null +++ b/graalpy/graalpy-openai-starter/graalpy.lock @@ -0,0 +1,26 @@ +# This file was generated by maven goal 'org.graalvm.python:graalpy-maven-plugin:lock-packages'. +# +# WARNING: Any manual changes are done at your own risk and will be overwritten when the goal is executed. +# +# This file is meant to be tracked in a version control system. +# +# This file contains a list of all required Python packages with their specific versions, +# based on the packages defined in the plugin configuration and their dependencies. +# graalpy-version: 25.0.0 +# input-packages: openai==1.107.3 +annotated-types==0.7.0 +anyio==4.10.0 +certifi==2025.8.3 +distro==1.9.0 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.10 +jiter==0.11.0 +openai==1.107.3 +pydantic==2.11.9 +pydantic_core==2.33.2 +sniffio==1.3.1 +tqdm==4.67.1 +typing-inspection==0.4.1 +typing_extensions==4.15.0 diff --git a/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.properties index 0aaefbca..2a84e188 100644 --- a/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-openai-starter/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-openai-starter/gradlew b/graalpy/graalpy-openai-starter/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-openai-starter/gradlew +++ b/graalpy/graalpy-openai-starter/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-openai-starter/gradlew.bat b/graalpy/graalpy-openai-starter/gradlew.bat index 9d21a218..db3a6ac2 100644 --- a/graalpy/graalpy-openai-starter/gradlew.bat +++ b/graalpy/graalpy-openai-starter/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-openai-starter/pom.xml b/graalpy/graalpy-openai-starter/pom.xml index 335a2e9b..ed67293d 100644 --- a/graalpy/graalpy-openai-starter/pom.xml +++ b/graalpy/graalpy-openai-starter/pom.xml @@ -1,157 +1,167 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - com.example - demo - 1.0-SNAPSHOT + com.example + demo + 1.0-SNAPSHOT - demo - https://www.example.com + demo + https://www.example.com - - 24.2.2 - UTF-8 - 21 - + + How can I check if my code runs on GraalPy? + 25.0.0 + UTF-8 + 21 + --enable-native-access=ALL-UNNAMED + --sun-misc-unsafe-memory-access=allow + - - - - org.junit - junit-bom - 5.11.0 - pom - import - - - + + + + org.junit + junit-bom + 5.11.0 + pom + import + + + - - - org.graalvm.polyglot - polyglot - ${graalpy.version} - - - org.graalvm.polyglot - python - ${graalpy.version} - pom - - - org.graalvm.python - python-embedding - ${graalpy.version} - + + + org.graalvm.polyglot + polyglot + ${graalpy.version} + + + org.graalvm.polyglot + python + ${graalpy.version} + pom + + + org.graalvm.python + python-embedding + ${graalpy.version} + - - org.junit.jupiter - junit-jupiter-api - test - - - - org.junit.jupiter - junit-jupiter-params - test - - + + org.junit.jupiter + junit-jupiter-api + test + + + + org.junit.jupiter + junit-jupiter-params + test + + - - - - org.graalvm.python - graalpy-maven-plugin - ${graalpy.version} - - - annotated-types==0.7.0 - anyio==4.6.0 - certifi==2024.8.30 - distro==1.9.0 - h11==0.14.0 - hpy==0.9.0 - httpcore==1.0.5 - httpx==0.27.2 - idna==3.10 - jiter==0.5.0 - openai==1.47.1 - pydantic==2.4.2 - pydantic_core==2.10.1 - sniffio==1.3.1 - tqdm==4.66.5 - typing_extensions==4.12.2 - - - - - - process-graalpy-resources - - - - - + + + + org.graalvm.python + graalpy-maven-plugin + ${graalpy.version} + + + openai==1.107.3 + + + + + + process-graalpy-resources + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + ${truffle.jvm.arg1} ${truffle.jvm.arg2} + + + + org.codehaus.mojo + exec-maven-plugin + + java + + -classpath + + ${truffle.jvm.arg1} + ${truffle.jvm.arg2} + com.example.App + ${user.input} + + + + - - - - - maven-clean-plugin - 3.4.0 - - - - maven-resources-plugin - 3.3.1 - - - maven-compiler-plugin - 3.13.0 - - - maven-surefire-plugin - 3.3.0 - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - - java - - - - - com.example.App - - - - maven-jar-plugin - 3.4.2 - - - maven-install-plugin - 3.1.2 - - - maven-deploy-plugin - 3.1.2 - - - - maven-site-plugin - 3.12.1 - - - maven-project-info-reports-plugin - 3.6.1 - - - - + + + + + maven-clean-plugin + 3.4.0 + + + + maven-resources-plugin + 3.3.1 + + + maven-compiler-plugin + 3.13.0 + + + maven-surefire-plugin + 3.3.0 + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + + java + + + + + com.example.App + + + + maven-jar-plugin + 3.4.2 + + + maven-install-plugin + 3.1.2 + + + maven-deploy-plugin + 3.1.2 + + + + maven-site-plugin + 3.12.1 + + + maven-project-info-reports-plugin + 3.6.1 + + + + diff --git a/graalpy/graalpy-openai-starter/src/main/java/com/example/App.java b/graalpy/graalpy-openai-starter/src/main/java/com/example/App.java index c5c1120a..b67706e8 100644 --- a/graalpy/graalpy-openai-starter/src/main/java/com/example/App.java +++ b/graalpy/graalpy-openai-starter/src/main/java/com/example/App.java @@ -7,17 +7,18 @@ package com.example; import org.graalvm.polyglot.Context; +import org.graalvm.polyglot.EnvironmentAccess; import org.graalvm.polyglot.PolyglotException; import org.graalvm.python.embedding.GraalPyResources; -import java.util.List; - public class App { public static void main(String[] args) { - String userInput = args.length > 0 ? args[0] : "Say this is a test"; - try (Context context = GraalPyResources.createContext()) { - CreateChatCompletionFunction createChatCompletion = context.eval("python", + String input = args.length > 0 ? args[0] : "How can I check if my code runs on GraalPy?"; + try (Context context = GraalPyResources.contextBuilder() + .allowEnvironmentAccess(EnvironmentAccess.INHERIT) // for OPENAI_API_KEY env var access + .build()) { + CreateResponseFunction createResponseFunction = context.eval("python", // language=python """ import os @@ -28,42 +29,28 @@ public static void main(String[] args) { api_key=os.environ.get("OPENAI_API_KEY"), ) - def create_chat_completion(user_input): - return client.chat.completions.create( - messages=[ - { - "role": "user", - "content": user_input, - } - ], - model="gpt-3.5-turbo", + def create_response(input): + return client.responses.create( + model="gpt-4o", + instructions="You are a coding assistant that talks like a pirate.", + input=input, ) - create_chat_completion - """).as(CreateChatCompletionFunction.class); - ChatCompletion chatCompletion = createChatCompletion.apply(userInput); - for (Choice choice : chatCompletion.choices()) { - System.out.println(choice.message().content()); - } + create_response + """).as(CreateResponseFunction.class); + Response response = createResponseFunction.apply(input); + System.out.println(response.output_text()); } catch (PolyglotException e) { throw new RuntimeException("Failed to run Python code. Did you set the OPENAI_API_KEY environment variable?", e); } } @FunctionalInterface - public interface CreateChatCompletionFunction { - ChatCompletion apply(String choice); - } - - public interface ChatCompletion { - List choices(); - } - - public interface Choice { - ChatCompletionMessage message(); + public interface CreateResponseFunction { + Response apply(String choice); } - public interface ChatCompletionMessage { - String content(); + public interface Response { + String output_text(); } } diff --git a/graalpy/graalpy-scripts-debug-guide/README.md b/graalpy/graalpy-scripts-debug-guide/README.md index 3fa72f29..cc0f1b54 100644 --- a/graalpy/graalpy-scripts-debug-guide/README.md +++ b/graalpy/graalpy-scripts-debug-guide/README.md @@ -87,27 +87,27 @@ Add the required dependencies for GraalPy in the `` section of the org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.tools dap-tool - 24.2.2 + 25.0.0 ``` `build.gradle.kts` ```kotlin dependencies { - implementation("org.graalvm.polyglot:python:24.2.2") // ① - implementation("org.graalvm.polyglot:polyglot:24.2.2") // ③ - implementation("org.graalvm.tools:dap-tool:24.2.2") // ④ + implementation("org.graalvm.polyglot:python:25.0.0") // ① + implementation("org.graalvm.polyglot:polyglot:25.0.0") // ③ + implementation("org.graalvm.tools:dap-tool:25.0.0") // ④ } ``` diff --git a/graalpy/graalpy-scripts-debug-guide/build.gradle.kts b/graalpy/graalpy-scripts-debug-guide/build.gradle.kts index a8c5ae78..cb4f5280 100644 --- a/graalpy/graalpy-scripts-debug-guide/build.gradle.kts +++ b/graalpy/graalpy-scripts-debug-guide/build.gradle.kts @@ -14,9 +14,9 @@ repositories { } dependencies { - implementation("org.graalvm.polyglot:python:24.2.2") // ① - implementation("org.graalvm.polyglot:polyglot:24.2.2") // ③ - implementation("org.graalvm.tools:dap-tool:24.2.2") // ④ + implementation("org.graalvm.polyglot:python:25.0.0") // ① + implementation("org.graalvm.polyglot:polyglot:25.0.0") // ③ + implementation("org.graalvm.tools:dap-tool:25.0.0") // ④ } application { diff --git a/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.properties index 0aaefbca..2a84e188 100644 --- a/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-scripts-debug-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-scripts-debug-guide/gradlew b/graalpy/graalpy-scripts-debug-guide/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-scripts-debug-guide/gradlew +++ b/graalpy/graalpy-scripts-debug-guide/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-scripts-debug-guide/gradlew.bat b/graalpy/graalpy-scripts-debug-guide/gradlew.bat index 9d21a218..db3a6ac2 100644 --- a/graalpy/graalpy-scripts-debug-guide/gradlew.bat +++ b/graalpy/graalpy-scripts-debug-guide/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-scripts-debug-guide/pom.xml b/graalpy/graalpy-scripts-debug-guide/pom.xml index a8030a32..eb4e1447 100644 --- a/graalpy/graalpy-scripts-debug-guide/pom.xml +++ b/graalpy/graalpy-scripts-debug-guide/pom.xml @@ -19,18 +19,18 @@ org.graalvm.polyglot python - 24.2.2 + 25.0.0 pom org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.tools dap-tool - 24.2.2 + 25.0.0 diff --git a/graalpy/graalpy-spring-boot-guide/README.md b/graalpy/graalpy-spring-boot-guide/README.md index d3a0506e..d6511eb2 100644 --- a/graalpy/graalpy-spring-boot-guide/README.md +++ b/graalpy/graalpy-spring-boot-guide/README.md @@ -64,13 +64,13 @@ dependencies automatically. org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 ``` @@ -93,7 +93,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vader-sentiment==3.2.1.1 @@ -113,7 +113,7 @@ Add the `graalpy-maven-plugin` configuration into the plugins section of the POM `build.gradle` ``` plugins { - id 'org.graalvm.python' version '24.2.2' + id 'org.graalvm.python' version '25.0.0' // ... ``` diff --git a/graalpy/graalpy-spring-boot-guide/build.gradle b/graalpy/graalpy-spring-boot-guide/build.gradle index 2dc67472..aae36332 100644 --- a/graalpy/graalpy-spring-boot-guide/build.gradle +++ b/graalpy/graalpy-spring-boot-guide/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.graalvm.python' version '24.2.2' + id 'org.graalvm.python' version '25.0.0' // ... id 'java' id 'org.springframework.boot' version '3.3.5' @@ -19,7 +19,7 @@ version = '0.0.1-SNAPSHOT' java { toolchain { - languageVersion = JavaLanguageVersion.of(17) + languageVersion = JavaLanguageVersion.of(21) } } diff --git a/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.properties index df97d72b..2a84e188 100644 --- a/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-spring-boot-guide/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-spring-boot-guide/gradlew b/graalpy/graalpy-spring-boot-guide/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-spring-boot-guide/gradlew +++ b/graalpy/graalpy-spring-boot-guide/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-spring-boot-guide/gradlew.bat b/graalpy/graalpy-spring-boot-guide/gradlew.bat index 9b42019c..5eed7ee8 100644 --- a/graalpy/graalpy-spring-boot-guide/gradlew.bat +++ b/graalpy/graalpy-spring-boot-guide/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-spring-boot-guide/pom.xml b/graalpy/graalpy-spring-boot-guide/pom.xml index 6a30a360..6c3df482 100644 --- a/graalpy/graalpy-spring-boot-guide/pom.xml +++ b/graalpy/graalpy-spring-boot-guide/pom.xml @@ -32,13 +32,13 @@ org.graalvm.python python - 24.2.2 + 25.0.0 pom org.graalvm.python python-embedding - 24.2.2 + 25.0.0 @@ -63,7 +63,7 @@ org.graalvm.python graalpy-maven-plugin - 24.2.2 + 25.0.0 vader-sentiment==3.2.1.1 diff --git a/graalpy/graalpy-spring-boot-pygal-charts/README.md b/graalpy/graalpy-spring-boot-pygal-charts/README.md index dbadadfe..f3d0ea15 100644 --- a/graalpy/graalpy-spring-boot-pygal-charts/README.md +++ b/graalpy/graalpy-spring-boot-pygal-charts/README.md @@ -5,11 +5,11 @@ In particular, this demo shows four different approaches to interact with Pygal ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application diff --git a/graalpy/graalpy-spring-boot-pygal-charts/pom.xml b/graalpy/graalpy-spring-boot-pygal-charts/pom.xml index cc212546..8e09df22 100644 --- a/graalpy/graalpy-spring-boot-pygal-charts/pom.xml +++ b/graalpy/graalpy-spring-boot-pygal-charts/pom.xml @@ -27,7 +27,7 @@ - 24.2.2 + 25.0.0 21 diff --git a/graalpy/graalpy-starter/README.md b/graalpy/graalpy-starter/README.md index 11b7b84d..8af87abc 100644 --- a/graalpy/graalpy-starter/README.md +++ b/graalpy/graalpy-starter/README.md @@ -4,11 +4,11 @@ A minimal Java application that embeds Python code with GraalPy. ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application Using Maven diff --git a/graalpy/graalpy-starter/build.gradle.kts b/graalpy/graalpy-starter/build.gradle.kts index 986d532d..49ee0183 100644 --- a/graalpy/graalpy-starter/build.gradle.kts +++ b/graalpy/graalpy-starter/build.gradle.kts @@ -9,8 +9,8 @@ repositories { } dependencies { - implementation("org.graalvm.polyglot:polyglot:24.2.2") - implementation("org.graalvm.polyglot:python:24.2.2") + implementation("org.graalvm.polyglot:polyglot:25.0.0") + implementation("org.graalvm.polyglot:python:25.0.0") // Use JUnit Jupiter for testing. testImplementation("org.junit.jupiter:junit-jupiter:5.11.0") diff --git a/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.jar b/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.jar and b/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.properties b/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.properties index 0aaefbca..2a84e188 100644 --- a/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.properties +++ b/graalpy/graalpy-starter/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalpy/graalpy-starter/gradlew b/graalpy/graalpy-starter/gradlew index f5feea6d..ef07e016 100755 --- a/graalpy/graalpy-starter/gradlew +++ b/graalpy/graalpy-starter/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalpy/graalpy-starter/gradlew.bat b/graalpy/graalpy-starter/gradlew.bat index 9d21a218..db3a6ac2 100644 --- a/graalpy/graalpy-starter/gradlew.bat +++ b/graalpy/graalpy-starter/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalpy/graalpy-starter/pom.xml b/graalpy/graalpy-starter/pom.xml index 772dd769..5b6a515c 100644 --- a/graalpy/graalpy-starter/pom.xml +++ b/graalpy/graalpy-starter/pom.xml @@ -11,7 +11,7 @@ https://www.example.com - 24.2.2 + 25.0.0 UTF-8 21 diff --git a/graalwasm/graalwasm-embed-c-code-guide/README.md b/graalwasm/graalwasm-embed-c-code-guide/README.md index d6b62d9e..f865c7ab 100644 --- a/graalwasm/graalwasm-embed-c-code-guide/README.md +++ b/graalwasm/graalwasm-embed-c-code-guide/README.md @@ -33,7 +33,7 @@ Add the following set of dependencies to the `` section of your pr org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 ``` @@ -43,7 +43,7 @@ Add the following set of dependencies to the `` section of your pr org.graalvm.polyglot wasm - 24.2.2 + 25.0.0 pom @@ -60,9 +60,8 @@ Put the following C program in _src/main/c/floyd.c_: ```c #include -void floyd() { +void floyd(int rows) { int number = 1; - int rows = 10; for (int i = 1; i <= rows; i++) { for (int j = 1; j <= i; j++) { printf("%d ", number); @@ -73,9 +72,10 @@ void floyd() { } int main() { - floyd(); + floyd(10); return 0; } + ``` Note that `floyd` is defined as a separate function and can be exported. @@ -154,23 +154,28 @@ import org.graalvm.polyglot.Value; public class App { public static void main(String[] args) throws IOException { - // Find the WebAssembly module resource - URL wasmFile = App.class.getResource("floyd.wasm"); - - // Setup context - Context.Builder contextBuilder = Context.newBuilder("wasm").option("wasm.Builtins", "wasi_snapshot_preview1"); - Source.Builder sourceBuilder = Source.newBuilder("wasm", wasmFile).name("example"); - Source source = sourceBuilder.build(); - Context context = contextBuilder.build(); - - // Evaluate the WebAssembly module - context.eval(source); - - // Execute the floyd function - context.getBindings("wasm").getMember("example").getMember("_initialize").executeVoid(); - Value mainFunction = context.getBindings("wasm").getMember("example").getMember("floyd"); - mainFunction.execute(); - context.close(); + // Find the WebAssembly module resource + URL wasmFile = App.class.getResource("floyd.wasm"); + Source source = Source.newBuilder("wasm", wasmFile).name("example").build(); + + // Create Wasm context + try (Context context = Context.newBuilder("wasm").option("wasm.Builtins", "wasi_snapshot_preview1").build()) { + // Compile and instantiate the module + Value module = context.eval(source); + Value instance = module.newInstance(); + + // Get the exports member from the module instance + Value exports = instance.getMember("exports"); + + // Invoke an exported functions + exports.invokeMember("_initialize"); + exports.invokeMember("floyd", 10); + + // Or if you need to call a function multiple times + Value floyd = exports.getMember("floyd"); + floyd.execute(4); + floyd.execute(8); + } } } ``` @@ -181,7 +186,7 @@ Compile and run this Java application with Maven: ```shell mvw package -mvn exec:java -Dexec.mainClass=com.example.App +mvn exec:exec ``` The expected output should contain the first 10 lines of [Floyd's triangle](https://en.wikipedia.org/wiki/Floyd%27s_triangle), printed using the C function: diff --git a/graalwasm/graalwasm-embed-c-code-guide/pom.xml b/graalwasm/graalwasm-embed-c-code-guide/pom.xml index a7510b84..df135ba5 100644 --- a/graalwasm/graalwasm-embed-c-code-guide/pom.xml +++ b/graalwasm/graalwasm-embed-c-code-guide/pom.xml @@ -13,6 +13,8 @@ UTF-8 21 + --enable-native-access=ALL-UNNAMED + --sun-misc-unsafe-memory-access=allow @@ -31,12 +33,12 @@ org.graalvm.polyglot polyglot - 24.2.2 + 25.0.0 org.graalvm.polyglot wasm - 24.2.2 + 25.0.0 pom @@ -95,13 +97,23 @@ maven-project-info-reports-plugin 3.6.1 + + exec-maven-plugin + 1.2.1 + + + org.apache.maven.plugins + maven-surefire-plugin + + ${truffle.jvm.arg1} ${truffle.jvm.arg2} + + org.codehaus.mojo exec-maven-plugin - 1.2.1 create-output-directory @@ -129,7 +141,14 @@ - com.example.App + java + + -classpath + + ${truffle.jvm.arg1} + ${truffle.jvm.arg2} + com.example.App + diff --git a/graalwasm/graalwasm-embed-c-code-guide/src/main/c/floyd.c b/graalwasm/graalwasm-embed-c-code-guide/src/main/c/floyd.c index 45709de8..a2e4e363 100644 --- a/graalwasm/graalwasm-embed-c-code-guide/src/main/c/floyd.c +++ b/graalwasm/graalwasm-embed-c-code-guide/src/main/c/floyd.c @@ -1,18 +1,17 @@ - #include +#include - void floyd() { - int number = 1; - int rows = 10; - for (int i = 1; i <= rows; i++) { - for (int j = 1; j <= i; j++) { - printf("%d ", number); - ++number; - } - printf(".\n"); - } - } +void floyd(int rows) { + int number = 1; + for (int i = 1; i <= rows; i++) { + for (int j = 1; j <= i; j++) { + printf("%d ", number); + ++number; + } + printf(".\n"); + } +} - int main() { - floyd(); - return 0; - } +int main() { + floyd(10); + return 0; +} diff --git a/graalwasm/graalwasm-embed-c-code-guide/src/main/java/com/example/App.java b/graalwasm/graalwasm-embed-c-code-guide/src/main/java/com/example/App.java index 5398b4f3..76909b22 100644 --- a/graalwasm/graalwasm-embed-c-code-guide/src/main/java/com/example/App.java +++ b/graalwasm/graalwasm-embed-c-code-guide/src/main/java/com/example/App.java @@ -17,20 +17,25 @@ public class App { public static void main(String[] args) throws IOException { // Find the WebAssembly module resource URL wasmFile = App.class.getResource("floyd.wasm"); + Source source = Source.newBuilder("wasm", wasmFile).name("example").build(); - // Setup context - Context.Builder contextBuilder = Context.newBuilder("wasm").option("wasm.Builtins", "wasi_snapshot_preview1"); - Source.Builder sourceBuilder = Source.newBuilder("wasm", wasmFile).name("example"); - Source source = sourceBuilder.build(); - Context context = contextBuilder.build(); + // Create Wasm context + try (Context context = Context.newBuilder("wasm").option("wasm.Builtins", "wasi_snapshot_preview1").build()) { + // Compile and instantiate the module + Value module = context.eval(source); + Value instance = module.newInstance(); - // Evaluate the WebAssembly module - context.eval(source); + // Get the exports member from the module instance + Value exports = instance.getMember("exports"); - // Execute the floyd function - context.getBindings("wasm").getMember("example").getMember("_initialize").executeVoid(); - Value mainFunction = context.getBindings("wasm").getMember("example").getMember("floyd"); - mainFunction.execute(); - context.close(); + // Invoke an exported functions + exports.invokeMember("_initialize"); + exports.invokeMember("floyd", 10); + + // Or if you need to call a function multiple times + Value floyd = exports.getMember("floyd"); + floyd.execute(4); + floyd.execute(8); + } } } diff --git a/graalwasm/graalwasm-embed-go-code-guide/README.md b/graalwasm/graalwasm-embed-go-code-guide/README.md index cf87fef2..532a5bbf 100644 --- a/graalwasm/graalwasm-embed-go-code-guide/README.md +++ b/graalwasm/graalwasm-embed-go-code-guide/README.md @@ -52,7 +52,7 @@ Be sure to add a `graal.languages.version` property with the version of GraalWas ```xml - 24.2.2 + 25.0.0 ``` diff --git a/graalwasm/graalwasm-embed-go-code-guide/pom.xml b/graalwasm/graalwasm-embed-go-code-guide/pom.xml index 3efba851..22d411b6 100644 --- a/graalwasm/graalwasm-embed-go-code-guide/pom.xml +++ b/graalwasm/graalwasm-embed-go-code-guide/pom.xml @@ -11,7 +11,7 @@ https://www.example.com - 24.2.2 + 25.0.0 21 UTF-8 --enable-native-access=ALL-UNNAMED diff --git a/graalwasm/graalwasm-embed-rust-code-guide/README.md b/graalwasm/graalwasm-embed-rust-code-guide/README.md index f9e57faa..0a58794e 100644 --- a/graalwasm/graalwasm-embed-rust-code-guide/README.md +++ b/graalwasm/graalwasm-embed-rust-code-guide/README.md @@ -51,7 +51,7 @@ Be sure to add a `graal.languages.version` property with the version of GraalWas ```xml - 24.2.2 + 25.0.0 ``` diff --git a/graalwasm/graalwasm-embed-rust-code-guide/pom.xml b/graalwasm/graalwasm-embed-rust-code-guide/pom.xml index 486148e8..53a159d2 100644 --- a/graalwasm/graalwasm-embed-rust-code-guide/pom.xml +++ b/graalwasm/graalwasm-embed-rust-code-guide/pom.xml @@ -10,7 +10,7 @@ demo - 24.2.2 + 25.0.0 21 UTF-8 --enable-native-access=ALL-UNNAMED diff --git a/graalwasm/graalwasm-micronaut-photon/README.md b/graalwasm/graalwasm-micronaut-photon/README.md index 0af31d9a..7ac2b6fa 100644 --- a/graalwasm/graalwasm-micronaut-photon/README.md +++ b/graalwasm/graalwasm-micronaut-photon/README.md @@ -5,11 +5,11 @@ The demo also uses GraalJS to access the Photon module through the WebAssembly J ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application diff --git a/graalwasm/graalwasm-micronaut-photon/pom.xml b/graalwasm/graalwasm-micronaut-photon/pom.xml index ca074e31..1bd9963a 100644 --- a/graalwasm/graalwasm-micronaut-photon/pom.xml +++ b/graalwasm/graalwasm-micronaut-photon/pom.xml @@ -13,7 +13,7 @@ 4.8.2 - 24.2.2 + 25.0.0 jar 24 24 diff --git a/graalwasm/graalwasm-spring-boot-photon/README.md b/graalwasm/graalwasm-spring-boot-photon/README.md index 02442c34..b32799c4 100644 --- a/graalwasm/graalwasm-spring-boot-photon/README.md +++ b/graalwasm/graalwasm-spring-boot-photon/README.md @@ -5,11 +5,11 @@ The demo also uses GraalJS to access the Photon module through the WebAssembly J ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application diff --git a/graalwasm/graalwasm-spring-boot-photon/pom.xml b/graalwasm/graalwasm-spring-boot-photon/pom.xml index 5a9dd1d2..c14f6df1 100644 --- a/graalwasm/graalwasm-spring-boot-photon/pom.xml +++ b/graalwasm/graalwasm-spring-boot-photon/pom.xml @@ -27,7 +27,7 @@ - 24.2.2 + 25.0.0 21 diff --git a/graalwasm/graalwasm-starter/README.md b/graalwasm/graalwasm-starter/README.md index f9251e3c..9d200541 100644 --- a/graalwasm/graalwasm-starter/README.md +++ b/graalwasm/graalwasm-starter/README.md @@ -4,11 +4,11 @@ A minimal Java application that embeds a WebAssembly module with GraalWasm. ## Preparation -Install GraalVM for JDK 24 and set the value of `JAVA_HOME` accordingly. +Install GraalVM 25 and set the value of `JAVA_HOME` accordingly. We recommend using [SDKMAN!](https://sdkman.io/). (For other download options, see [GraalVM Downloads](https://www.graalvm.org/downloads/).) ```bash -sdk install java 24.0.2-graal +sdk install java 25-graal ``` ## Run the Application Using Maven @@ -22,7 +22,7 @@ To build and test the demo, run: To execute the main method, run: ```bash -./mvnw exec:java +./mvnw exec:exec ``` ## Run the Application Using Gradle diff --git a/graalwasm/graalwasm-starter/build.gradle.kts b/graalwasm/graalwasm-starter/build.gradle.kts index 05a6bddc..b893cf95 100644 --- a/graalwasm/graalwasm-starter/build.gradle.kts +++ b/graalwasm/graalwasm-starter/build.gradle.kts @@ -9,8 +9,8 @@ repositories { } dependencies { - implementation("org.graalvm.polyglot:polyglot:24.2.2") - implementation("org.graalvm.polyglot:wasm:24.2.2") + implementation("org.graalvm.polyglot:polyglot:25.0.0") + implementation("org.graalvm.polyglot:wasm:25.0.0") // Use JUnit Jupiter for testing. testImplementation("org.junit.jupiter:junit-jupiter:5.11.0") @@ -23,7 +23,14 @@ application { mainClass = "com.example.App" } +val truffleJvmArgs = listOf("--enable-native-access=ALL-UNNAMED", "--sun-misc-unsafe-memory-access=allow") + +tasks.named("run") { + jvmArgs = truffleJvmArgs +} + tasks.named("test") { + jvmArgs = truffleJvmArgs // Use JUnit Platform for unit tests. useJUnitPlatform() } diff --git a/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.jar b/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.jar index a4b76b95..8bdaf60c 100644 Binary files a/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.jar and b/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.jar differ diff --git a/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.properties b/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.properties index 0aaefbca..2a84e188 100644 --- a/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.properties +++ b/graalwasm/graalwasm-starter/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/graalwasm/graalwasm-starter/gradlew b/graalwasm/graalwasm-starter/gradlew index f5feea6d..ef07e016 100755 --- a/graalwasm/graalwasm-starter/gradlew +++ b/graalwasm/graalwasm-starter/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/graalwasm/graalwasm-starter/gradlew.bat b/graalwasm/graalwasm-starter/gradlew.bat index 9d21a218..db3a6ac2 100644 --- a/graalwasm/graalwasm-starter/gradlew.bat +++ b/graalwasm/graalwasm-starter/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/graalwasm/graalwasm-starter/pom.xml b/graalwasm/graalwasm-starter/pom.xml index d9dd741f..721b5bb5 100644 --- a/graalwasm/graalwasm-starter/pom.xml +++ b/graalwasm/graalwasm-starter/pom.xml @@ -1,116 +1,145 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - com.example - demo - 1.0-SNAPSHOT + com.example + demo + 1.0-SNAPSHOT - demo - https://www.example.com + demo + https://www.example.com - - UTF-8 - 17 - + + UTF-8 + 17 + --enable-native-access=ALL-UNNAMED + --sun-misc-unsafe-memory-access=allow + - - - - org.junit - junit-bom - 5.11.0 - pom - import - - - + + + + org.junit + junit-bom + 5.11.0 + pom + import + + + - - - org.graalvm.polyglot - polyglot - 24.2.2 - - - org.graalvm.polyglot - wasm - 24.2.2 - pom - + + + org.graalvm.polyglot + polyglot + 25.0.0 + + + org.graalvm.polyglot + wasm + 25.0.0 + pom + - - org.junit.jupiter - junit-jupiter-api - test - - - - org.junit.jupiter - junit-jupiter-params - test - - + + org.junit.jupiter + junit-jupiter-api + test + + + + org.junit.jupiter + junit-jupiter-params + test + + - - - - - - maven-clean-plugin - 3.4.0 - - - - maven-resources-plugin - 3.3.1 - - - maven-compiler-plugin - 3.13.0 - - - maven-surefire-plugin - 3.3.0 - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - - - java - - - - - com.example.App - - - - maven-jar-plugin - 3.4.2 - - - maven-install-plugin - 3.1.2 - - - maven-deploy-plugin - 3.1.2 - - - - maven-site-plugin - 3.12.1 - - - maven-project-info-reports-plugin - 3.6.1 - - - - + + + + + + maven-clean-plugin + 3.4.0 + + + + maven-resources-plugin + 3.3.1 + + + maven-compiler-plugin + 3.13.0 + + + maven-surefire-plugin + 3.3.0 + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + + + java + + + + + com.example.App + + + + maven-jar-plugin + 3.4.2 + + + maven-install-plugin + 3.1.2 + + + maven-deploy-plugin + 3.1.2 + + + + maven-site-plugin + 3.12.1 + + + maven-project-info-reports-plugin + 3.6.1 + + + exec-maven-plugin + 1.2.1 + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + ${truffle.jvm.arg1} ${truffle.jvm.arg2} + + + + org.codehaus.mojo + exec-maven-plugin + + java + + -classpath + + ${truffle.jvm.arg1} + ${truffle.jvm.arg2} + com.example.App + + + + + diff --git a/graalwasm/graalwasm-starter/src/main/java/com/example/App.java b/graalwasm/graalwasm-starter/src/main/java/com/example/App.java index 7eaac2dd..2121b7a1 100644 --- a/graalwasm/graalwasm-starter/src/main/java/com/example/App.java +++ b/graalwasm/graalwasm-starter/src/main/java/com/example/App.java @@ -18,9 +18,9 @@ public class App { public static void main(String[] args) throws IOException { try (Context context = Context.create()) { URL wasmFile = App.class.getResource("add-two.wasm"); - String moduleName = "main"; - context.eval(Source.newBuilder("wasm", wasmFile).name(moduleName).build()); - Value addTwo = context.getBindings("wasm").getMember(moduleName).getMember("addTwo"); + Value mainModule = context.eval(Source.newBuilder("wasm", wasmFile).build()); + Value mainInstance = mainModule.newInstance(); + Value addTwo = mainInstance.getMember("exports").getMember("addTwo"); System.out.println("addTwo(40, 2) = " + addTwo.execute(40, 2)); } }