REPL (read–eval–print loop) shell built on top of JavaFX and GraalVM stack, incorporating GraalJS, GraalPython, TruffleRuby and FastR
OTHER License
REPL (read–eval–print loop) shell built ontop of JavaFX stack, GraalJS, GraalPython, TruffleRuby and FastR
Up-to-date GraalVM with GRAALVM_HOME
environment variable set. It can be obtained either in binary form from here for nightly versions or here for stable versions, or built from source (ideally using this script)
native-image
If you are using stable or nightly version of GraalVM you can obtain it using:
gu install native-image
Truffle languages: GraalJS, GraalPython, TruffleRuby, FastR. Any combination of those will work, provided that pom.xml
is edited accordingly.
If you are using stable or nightly version of GraalVM you can obtain them using:
gu install python
gu install ruby
gu install R
If you are building from source you can include them as mx dynamic imports:
cd $GRAAL_SOURCE/vm # Assuming that GRAAL_SOURCE points to right location
export FASTR_CAPTURE_DEPENDENCIES
export FASTR_RELEASE=true
export FASTR_NO_RECOMMENDED=true
export PKG_LDFLAGS_OVERRIDE="-L/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu"
mx --dynamicimports /graal-js,graalpython,truffleruby,fastr,/substratevm build
Various other dependencies (which might or might not be needed): look here
native-image-agent
in order to generate required reflection configuration in JVM mode.
If you are building from source both languages and native-image
can be built using aforementioned script by simply running:
./buildGraal.py --dynamicimports /graal-js,graalpython,truffleruby,fastr,/substratevm
Go to pom.xml
in project root and edit nativeImageArgs
so that languages you have installed are uncommented (with !
removed), and that others are commented out.
So if you only have graalpython
installed, your configuration would look like this:
<nativeImageArgs>
<!--<list>-!-language:js</list>-->
<list>--language:python</list>
<!--<list>-!-language:ruby</list>-->
<!--<list>-!-language:R</list>-->
...
mvn clean javafx:run
(this will generate required reflection configuration - note that native-image-agent
is required)
or if VSCode is used: CTRL+SHIFT+B
/ ⇧⌘B
-> Run JVM
mvn clean javafx:run@debug
or if VSCode is used: install Debugger for Java
extension and then press F5
Platform | Commands |
---|---|
Desktop: | mvn clean client:build client:package client:run |
Android: | mvn -Pandroid clean client:build client:package client:install client:run |
iOS: | mvn -Pios clean client:build client:package client:install client:run |
or if VSCode is used:
CTRL+SHIFT+B
/ ⇧⌘B
-> Build (<platform>)
CTRL+SHIFT+B
/ ⇧⌘B
-> Run (<platform>)