Replaced jvmci suite dependency with dependency on a JVMCI JDK

Doug Simon doug.simon at oracle.com
Thu Jun 16 19:12:41 UTC 2016


The time has arrived to treat JVMCI as a frozen API. This will be the case anyway once JDK 9 is released. As such, we have removed[1] the dependency from graal-core to the jvmci suite and instead graal-core now requires JAVA_HOME to be a JVMCI enabled JDK. For JDK 9, an EA build[2] should be available within the next month that contains the remaining JVMCI API changes. For JDK 8, we will provide binaries on OTN[3]. Until the OTN binaries are available, you can build your own as follows:

hg clone http://hg.openjdk.java.net/graal/graal-jvmci-8
cd graal-jvmci-8
mx --java-home /path/to/jdk8u92 build
export JAVA_HOME=$(mx --java-home /path/to/jdk8u92 jdkhome)

For both JDK 8 and JDK 9, a JVMCI binary enables JVMCI for hosted use as well as replacing C2 as the top-tier compiler. The -server option enables the former usage and adding -XX:+UseJVMCICompiler (additionally) enables the latter. To disable JVMCI altogether, you can specify -XX:-EnableJVMCI. From an mx perspective, the --vm and --vmbuild options have disappeared along with the jvmci suite. Note that these options changes are only related to JVMCI itself - the graal-core suite will add additional options to configure Graal as the JVMCI compiler. Of most interest is the -Djvmci.class.path.append system property which is used by the graal-core JDK (i.e., selected by `--jdk jvmci` or by having graal-core as the primary suite) to communicate the Graal jars to the VM. This allows Graal to run on the JVMCI JDK without modifying the JDK directory.

-Doug

[1] https://github.com/graalvm/graal-core/commit/92ab54c0f5ae640b2f7850cd43ef9b9a9b7b4718
[2] https://jdk9.java.net/download/
[3] http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html



More information about the graal-dev mailing list