Paul Krill
Editor at Large

GraalVM compilers may be coming to Java

news
Dec 14, 20222 mins
Development Libraries and FrameworksJavaProgramming Languages

Project Galahad would contribute Java-related GraalVM technologies to the OpenJDK Community for possible incubation in Java, starting with GraalVM’s JIT and AOT compiler tech.

Plans are moving forward to more closely coordinate the development of standard Java with that of GraalVM, a high-performance JDK (Java Development Kit) developed by Oracle.

A mainline release of Java could get GraalVM Java technology for incubation, under an Oracle-led OpenJDK proposal dubbed Project Galahad. Project Galahad calls for an initial focus on contributing the latest version of the GraalVM JIT (just-in-time) compiler and integrating it as an alternative to the existing JIT compiler of Java’s HotSpot VM. Subsequent steps will bring GraalVM’s AOT (ahead-of-time) compilation to make the new JIT compiler available instantly on JVM start and avoid interference with application heap usage and execution profiling. 

Oracle in October agreed to contribute GraalVM Community Edition code to the OpenJDK community to more closely align its development of Graal technologies with the development Java itself. The move was intended to remove obstacles including differences in release schedules, features, and development processes.

GraalVM is a high-performance JDK distribution written for Java and other JVM languages. It also includes runtimes for JavaScript, Python, and other languages, allowing the mixing of multiple languages in a single application. Its Native Image support enables the ahead-of-time compilation of Java code into to a native standalone executable or a native shared library. However, Project Galahad will not involve merging the Graal bytecode-to-machine code compiler and the javac source-to-bytecode compiler.

GraalVM Native Image technology will be contributed as a general AOT technology for Java applications, as part of Project Galahad. Project Galahad will pay close attention to Project Leyden, an effort to improve Java startup times, and track the Project Leyden specification as it evolves.

Project Galahad would start with a clone of the current JDK mainline release, JDK 20, and track mainline releases going forward. The plans call for incrementally merging the Java-related GraalVM technologies from the Graal repository into the JDK 20 clone. This might include side repositories for experimentation. Project Galahad will be delivered over time in a series of Java enhancement proposals that likely will span multiple feature releases.

JDK 20, currently in a rampdown phase, is due in March.