Jump to content

GraalVM: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m update
Update last preview version and date
Line 5: Line 5:
| caption =
| caption =
| developer = [[Oracle Corporation]]
| developer = [[Oracle Corporation]]
| latest preview version = 1.0 RC7<ref>{{cite web
| latest preview version = 1.0 RC12<ref>{{cite web
| url=https://blogs.oracle.com/developers/announcing-graalvm
| url=https://blogs.oracle.com/developers/announcing-graalvm
| publisher=[[Oracle Corporation]]
| publisher=[[Oracle Corporation]]
| title=Announcing GraalVM: Run Programs Faster Anywhere
| title=Announcing GraalVM: Run Programs Faster Anywhere
| accessdate=2018-04-22}}</ref><ref>https://github.com/oracle/graal/releases</ref><ref>http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html</ref>
| accessdate=2018-04-22}}</ref><ref>https://github.com/oracle/graal/releases</ref><ref>http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html</ref>
| latest preview date = {{Start date and age|2018|10|02|df=yes}}
| latest preview date = {{Start date and age|2019|02|04|df=yes}}
| operating system = [[Linux]] and [[macOS]]<ref>https://www.graalvm.org/downloads/</ref>
| operating system = [[Linux]] and [[macOS]]<ref>https://www.graalvm.org/downloads/</ref>
| platform = [[Java Virtual Machine]]
| platform = [[Java Virtual Machine]]

Revision as of 13:18, 10 February 2019

Graal
Developer(s)Oracle Corporation
Preview release
1.0 RC12[1][2][3] / 4 February 2019; 5 years ago (2019-02-04)
Repository
Written inJava
Operating systemLinux and macOS[4]
PlatformJava Virtual Machine
TypeJava dynamic compiler and runtime
LicenseCommunity Edition: GPLv2[5][6] Enterprise Edition: Trialware
Websitewww.graalvm.org

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,[7][8] 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.[9][10] Another goal, dubbed "Project Metropolis" or "Java-on-Java", is to implement a substitute for the substantial use of C++ within HotSpot.[11] A third goal is to allow freeform mixing of code from any programming language in a single program, billed as "polyglot applications".[9][12]

Truffle

In association with GraalVM, Oracle developed a language abstract syntax tree interpreter called Truffle which would allow it to implement languages on top of the Graal framework.[13][14]

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.[15]

Ahead-of-Time Compilation

In September 2016, Oracle detailed plans to add ahead-of-time compilation to the OpenJDK using the Graal compiler for Java 9.[16][17] This proposal, tracked by the JEP 295: Ahead-of-Time Compilation, was included in Java 9.[18]

The experimental use of Graal as a just-in-time compiler was added for the Linux x64 platform for Java 10.[19]

See also

References

  1. ^ "Announcing GraalVM: Run Programs Faster Anywhere". Oracle Corporation. Retrieved 2018-04-22.
  2. ^ https://github.com/oracle/graal/releases
  3. ^ http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html
  4. ^ https://www.graalvm.org/downloads/
  5. ^ "GraalVM FAQ". Retrieved 2018-04-25.
  6. ^ "graal/README.md". Retrieved 2018-04-25.
  7. ^ "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
  8. ^ "Graal : Oracle championing cause for Graal to be part of OpenJDK". jaxenter.com. 2012-02-15. Retrieved 2013-08-23.
  9. ^ a b "Why GraalVM". Retrieved 2018-04-25.
  10. ^ "Graal : Un compilateur dynamique pour Java". lemondeinformatique.fr. 2012-02-13. Retrieved 2013-08-23.
  11. ^ John Rose. "Call for discussion: New Project: Metropolis". Retrieved 2018-04-25.
  12. ^ "Reference Manual for Polyglot Applications". Retrieved 2018-04-25.
  13. ^ "Truffle: A Self-Optimizing Runtime System" (PDF). Oracle Corporation. Retrieved 2013-08-23.
  14. ^ "Truffle served in a Holy Graal: Graal and Truffle for polyglot language interpretation on the JVM". 2017-12-05. Retrieved 2018-04-25.
  15. ^ "License". Oracle Corporation. 2013-08-03. Retrieved 2013-08-23.
  16. ^ "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)
  17. ^ 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.
  18. ^ 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.
  19. ^ 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