|Operating system||Linux and macOS|
|Platform||Java Virtual Machine|
|Type||Java dynamic compiler and runtime|
|License||Community Edition: GPLv2 Enterprise Edition: Trialware|
GraalVM is an extension of the Java virtual machine to support more languages and execution modes. The Graal project includes a new high performance Java compiler, itself called Graal, which can be used in a just-in-time configuration on the HotSpot VM, or in an ahead-of-time configuration on the SubstrateVM.
One objective of Graal is to improve the performance of Java virtual machine-based languages to match the performance of native languages. Another goal, dubbed "Project Metropolis" or "Java-on-Java", is to implement a substitute for the substantial use of C++ within HotSpot. A third goal is to allow freeform mixing of code from any programming language in a single program, billed as "polyglot applications".
The Truffle framework was released under GPL version 2 with the classpath exception to encourage use of the framework for projects which do not want to be bound by the viral, copyleft nature of the GPL, while the Graal compiler remains under GPLv2 only.
In September 2016, Oracle detailed plans to add ahead-of-time compilation to the OpenJDK using the Graal compiler for Java 9. This proposal, tracked by the JEP 295: Ahead-of-Time Compilation, was included in Java 9.
- "Announcing GraalVM: Run Programs Faster Anywhere". Oracle Corporation. Retrieved 2018-04-22.
- "GraalVM FAQ". Retrieved 2018-04-25.
- "graal/README.md". Retrieved 2018-04-25.
- "Graal Java compiler would enable high-quality code, efficient memory use". JavaWorld. 2012-02-14. Retrieved 2013-08-23.
The effort would explore implementing a dynamic compiler that can be used in a native JVM such as HotSpot or a metacircular JVM such as Maxine. On its project site, Oracle describes the Maxine VM as a next-generation platform written in Java, compatible with modern Java IDEs and the standard Java Development Kit, and featuring a modular architecture
- "Graal : Oracle championing cause for Graal to be part of OpenJDK". jaxenter.com. 2012-02-15. Retrieved 2013-08-23.
- "Why GraalVM". Retrieved 2018-04-25.
- "Graal : Un compilateur dynamique pour Java". lemondeinformatique.fr. 2012-02-13. Retrieved 2013-08-23.
- John Rose. "Call for discussion: New Project: Metropolis". Retrieved 2018-04-25.
- "Reference Manual for Polyglot Applications". Retrieved 2018-04-25.
- "Truffle: A Self-Optimizing Runtime System" (PDF). Oracle Corporation. Retrieved 2013-08-23.
- "Truffle served in a Holy Graal: Graal and Truffle for polyglot language interpretation on the JVM". 2017-12-05. Retrieved 2018-04-25.
- "License". Oracle Corporation. 2013-08-03. Retrieved 2013-08-23.
- "Ahead-of-Time (AOT) Compilation May Come to OpenJDK HotSpot in Java 9". InfoQ.com. 2016-10-01. Retrieved 2016-10-06.
AOT brings about a new tool called ‘jaotc' which uses Graal as the backend (to generate code)
- Vladimir Kozlov (2016-09-14). "JDK-8166089: Ahead-of-Time Compilation". Oracle Corporation. Retrieved 2016-10-06.
Compile an application's Java classes to native code prior to launching the virtual machine.
- Vladimir Kozlov (2016-10-13). "JEP 295: Ahead-of-Time Compilation". Oracle Corporation. Retrieved 2016-10-13.
Compile Java classes to native code prior to launching the virtual machine.
- Vladimir Kozlov (2017-10-20). "JEP 317: Experimental Java-Based JIT Compiler". Oracle Corporation. Retrieved 2018-01-21.
JEP 317: Experimental Java-Based JIT Compiler
|This programming-tool-related article is a stub. You can help Wikipedia by expanding it.|