diff --git a/.github/workflows/espresso-jshell.yml b/.github/workflows/archive-espresso-jshell.yml similarity index 54% rename from .github/workflows/espresso-jshell.yml rename to .github/workflows/archive-espresso-jshell.yml index 05ade954d..4ab85bf03 100644 --- a/.github/workflows/espresso-jshell.yml +++ b/.github/workflows/archive-espresso-jshell.yml @@ -1,21 +1,19 @@ -name: espresso-jshell +name: archive/espresso-jshell on: push: paths: - - 'espresso-jshell/**' - - '.github/workflows/espresso-jshell.yml' + - 'archive/espresso-jshell/**' + - '.github/workflows/archive-espresso-jshell.yml' pull_request: paths: - - 'espresso-jshell/**' - - '.github/workflows/espresso-jshell.yml' - schedule: - - cron: "0 0 1 * *" # run every month + - 'archive/espresso-jshell/**' + - '.github/workflows/archive-espresso-jshell.yml' workflow_dispatch: permissions: contents: read jobs: run: - name: Run 'espresso-jshell' + name: Run 'archive/espresso-jshell' runs-on: ubuntu-latest timeout-minutes: 20 steps: @@ -26,8 +24,8 @@ jobs: distribution: 'graalvm' components: 'espresso' github-token: ${{ secrets.GITHUB_TOKEN }} - - name: Run 'espresso-jshell' + - name: Run 'archive/espresso-jshell run: | - cd espresso-jshell + cd archive/espresso-jshell ./build-espresso-jshell.sh - echo "Math.PI" | ./espresso-jshell + echo "Math.PI" | ./espresso-jshell \ No newline at end of file diff --git a/README.md b/README.md index 9c181d178..290fcf538 100644 --- a/README.md +++ b/README.md @@ -115,23 +115,6 @@ cd graalvm-demos -### Java on Truffle (Espresso) - - - - - - - - - - - - - - -
NameDescription
espresso-jshell
espresso-jshell
Demonstrates how to build a native executable of JShell, that executes the dynamically generated bytecode on Espresso
Technologies: Java on Truffle, Native Image, JShell
Reference: Mixing AOT and JIT for Java, Java on Truffle — Going Fully Metacircular
- ### Micronaut diff --git a/espresso-jshell/LICENSE b/archive/espresso-jshell/LICENSE similarity index 100% rename from espresso-jshell/LICENSE rename to archive/espresso-jshell/LICENSE diff --git a/espresso-jshell/README.md b/archive/espresso-jshell/README.md similarity index 89% rename from espresso-jshell/README.md rename to archive/espresso-jshell/README.md index 032ea9809..8a369a5be 100644 --- a/espresso-jshell/README.md +++ b/archive/espresso-jshell/README.md @@ -1,7 +1,7 @@ # Native JShell and Espresso: Mixing AOT and JIT for Java -This demo showcases the integration between [GraalVM Native Image](https://www.graalvm.org/reference-manual/native-image/) and [Java-on-Truffle (Espresso)](https://www.graalvm.org/reference-manual/java-on-truffle/). -It builds a native executable version of `jshell`, that executes the dynamically generated bytecodes on Espresso. This hybrid mode achieves instant startup, beating the vanilla `jshell` in both: time to the first interaction and time to evaluate a simple expression. +This demo showcases the integration between [GraalVM Native Image](https://www.graalvm.org/reference-manual/native-image/) and [Espresso (Java on Truffle)](https://www.graalvm.org/latest/reference-manual/espresso/). +It builds a native executable version of `jshell`, that executes the dynamically generated bytecode on Espresso. This hybrid mode achieves instant startup, beating the vanilla `jshell` in both: time to the first interaction and time to evaluate a simple expression. JShell is a Java read-eval-print loop tool first introduced in Java 9, this demo also allows running `jshell` on Java 8. For further discussions and questions please join our `#espresso` channel on the [GraalVM Slack Community](https://graalvm.slack.com/). @@ -9,12 +9,11 @@ For further discussions and questions please join our `#espresso` channel on the ## Prerequisites - GraalVM for Java 11, 17 or higher -- Native Image support -- Java-on-Truffle (Espresso) support +- Espresso (Java on Truffle) support ## Preparation -1. Download and install the latest GraalVM JDK with Native Image and Java on Truffle (Espresso) components using the [GraalVM JDK Downloader](https://github.com/graalvm/graalvm-jdk-downloader). +1. Download and install the GraalVM JDK with Native Image and Espresso support using the [GraalVM JDK Downloader](https://github.com/graalvm/graalvm-jdk-downloader). ```bash bash <(curl -sL https://get.graalvm.org/jdk) -c 'espresso' ``` @@ -25,10 +24,10 @@ For further discussions and questions please join our `#espresso` channel on the git clone https://github.com/graalvm/graalvm-demos ``` ```bash - cd graalvm-demos/espresso-jshell + cd graalvm-demos/archive/espresso-jshell ``` -## How to Build +## Building Native `jshell` 1. Execute the `build-espresso-jshell.sh` script: ```bash @@ -97,4 +96,4 @@ Since the Java compiler is part of the host code compiled by `native-image`, dyn ### Learn more -Learn more about Java on Truffle on the [GraalVM website](https://www.graalvm.org/latest/reference-manual/java-on-truffle/). +Learn more about mixing JIT and native modes in the [official Espresso documentation](https://www.graalvm.org/latest/reference-manual/espresso/demos/#mixing-aot-and-jit-for-java). \ No newline at end of file diff --git a/espresso-jshell/build-espresso-jshell.sh b/archive/espresso-jshell/build-espresso-jshell.sh similarity index 100% rename from espresso-jshell/build-espresso-jshell.sh rename to archive/espresso-jshell/build-espresso-jshell.sh diff --git a/espresso-jshell/diagram.svg b/archive/espresso-jshell/diagram.svg similarity index 100% rename from espresso-jshell/diagram.svg rename to archive/espresso-jshell/diagram.svg diff --git a/espresso-jshell/jdk.editpad-patch/jdk/editpad/EditPadProvider.java b/archive/espresso-jshell/jdk.editpad-patch/jdk/editpad/EditPadProvider.java similarity index 100% rename from espresso-jshell/jdk.editpad-patch/jdk/editpad/EditPadProvider.java rename to archive/espresso-jshell/jdk.editpad-patch/jdk/editpad/EditPadProvider.java diff --git a/espresso-jshell/jdk.jshell-patch/jdk/jshell/TaskFactory.class b/archive/espresso-jshell/jdk.jshell-patch/jdk/jshell/TaskFactory.class similarity index 100% rename from espresso-jshell/jdk.jshell-patch/jdk/jshell/TaskFactory.class rename to archive/espresso-jshell/jdk.jshell-patch/jdk/jshell/TaskFactory.class diff --git a/espresso-jshell/jshell8.sh b/archive/espresso-jshell/jshell8.sh similarity index 100% rename from espresso-jshell/jshell8.sh rename to archive/espresso-jshell/jshell8.sh diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/DefaultLoaderDelegate.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/DefaultLoaderDelegate.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/DefaultLoaderDelegate.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/DefaultLoaderDelegate.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/DemultiplexInput.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/DemultiplexInput.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/DemultiplexInput.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/DemultiplexInput.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/DirectExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/DirectExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/DirectExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/DirectExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/ExecutionControlForwarder.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/ExecutionControlForwarder.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/ExecutionControlForwarder.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/ExecutionControlForwarder.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/FailOverExecutionControlProvider.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/FailOverExecutionControlProvider.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/FailOverExecutionControlProvider.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/FailOverExecutionControlProvider.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/JdiDefaultExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiDefaultExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/JdiDefaultExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiDefaultExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/JdiEventHandler.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiEventHandler.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/JdiEventHandler.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiEventHandler.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControlProvider.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControlProvider.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControlProvider.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiExecutionControlProvider.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/JdiInitiator.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiInitiator.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/JdiInitiator.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/JdiInitiator.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/LoaderDelegate.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/LoaderDelegate.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/LoaderDelegate.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/LoaderDelegate.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControlProvider.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControlProvider.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControlProvider.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/LocalExecutionControlProvider.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/MultiplexingOutputStream.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/MultiplexingOutputStream.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/MultiplexingOutputStream.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/MultiplexingOutputStream.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/PipeInputStream.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/PipeInputStream.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/PipeInputStream.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/PipeInputStream.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/RemoteCodes.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/RemoteCodes.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/RemoteCodes.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/RemoteCodes.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/RemoteExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/RemoteExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/RemoteExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/RemoteExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/StreamingExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/StreamingExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/StreamingExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/StreamingExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/Util.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/Util.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/Util.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/Util.java diff --git a/espresso-jshell/jshell8/jdk/jshell/execution/package-info.java b/archive/espresso-jshell/jshell8/jdk/jshell/execution/package-info.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/execution/package-info.java rename to archive/espresso-jshell/jshell8/jdk/jshell/execution/package-info.java diff --git a/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControl.java b/archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControl.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControl.java rename to archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControl.java diff --git a/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControlProvider.java b/archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControlProvider.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControlProvider.java rename to archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionControlProvider.java diff --git a/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionEnv.java b/archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionEnv.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/spi/ExecutionEnv.java rename to archive/espresso-jshell/jshell8/jdk/jshell/spi/ExecutionEnv.java diff --git a/espresso-jshell/jshell8/jdk/jshell/spi/SPIResolutionException.java b/archive/espresso-jshell/jshell8/jdk/jshell/spi/SPIResolutionException.java similarity index 100% rename from espresso-jshell/jshell8/jdk/jshell/spi/SPIResolutionException.java rename to archive/espresso-jshell/jshell8/jdk/jshell/spi/SPIResolutionException.java diff --git a/espresso-jshell/reflect-config.json b/archive/espresso-jshell/reflect-config.json similarity index 100% rename from espresso-jshell/reflect-config.json rename to archive/espresso-jshell/reflect-config.json diff --git a/espresso-jshell/resource-config.json b/archive/espresso-jshell/resource-config.json similarity index 100% rename from espresso-jshell/resource-config.json rename to archive/espresso-jshell/resource-config.json diff --git a/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoExecutionControl.java b/archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoExecutionControl.java similarity index 100% rename from espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoExecutionControl.java rename to archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoExecutionControl.java diff --git a/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControl.java b/archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControl.java similarity index 100% rename from espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControl.java rename to archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControl.java diff --git a/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControlProvider.java b/archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControlProvider.java similarity index 100% rename from espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControlProvider.java rename to archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/EspressoLocalExecutionControlProvider.java diff --git a/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/JavaShellLauncher.java b/archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/JavaShellLauncher.java similarity index 100% rename from espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/JavaShellLauncher.java rename to archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/JavaShellLauncher.java diff --git a/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/Lazy.java b/archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/Lazy.java similarity index 100% rename from espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/Lazy.java rename to archive/espresso-jshell/src/main/java/com/oracle/truffle/espresso/jshell/Lazy.java diff --git a/espresso-jshell/src/main/resources/META-INF/services/jdk.jshell.spi.ExecutionControlProvider b/archive/espresso-jshell/src/main/resources/META-INF/services/jdk.jshell.spi.ExecutionControlProvider similarity index 100% rename from espresso-jshell/src/main/resources/META-INF/services/jdk.jshell.spi.ExecutionControlProvider rename to archive/espresso-jshell/src/main/resources/META-INF/services/jdk.jshell.spi.ExecutionControlProvider