GraalVM: 1.0-rc2 is here
GraalVM 1.0-rc2 has just been released with both the Community Edition and the Enterprise Edition binaries publicly available for download. Let’s have a look at the most important changes in this release.
Both the Community Edition and the Enterprise Edition binaries are now publicly available for download.
— GraalVM (@graalvm) June 6, 2018
GraalVM 1.0-rc2 highlights
GraalVM for Java developers
According to the release notes, the underlying JDK version has been updated from “1.8.0_161” to “1.8.0_171” and the support for the Java Microbenchmark harness has been improved – GraalVM is now a recognized and supported JVM.
What’s been fixed?
- A StackOverflow exception an improved performance when recursively inlining of
- A compiler error causing incorrect code generation while building the scalac compiler.
Native image generation
GraalVM 1.0-rc2 offers support for building statically linked native images, which means that you can now pass
--static, and if you have static
zlib installed, it generates a standalone executable that won’t require
libc for running.
Speaking of improvements, the team also added Classpath exception to the license of SubstrateVM and the Graal compiler components to make sure all GraalVM code ending up in a native image is subject to this clause.
What’s been fixed?
- The handling of implicit exceptions (
ClassCastException, …): all exceptions now have correct stack traces and can be caught as expected. Previously, implicit exceptions were sometimes not caught by an exception handler within the same method.
- A number of exceptions during the generation of native images that were reported by early adopters. Thank you for the reports on GitHub – keep them coming!
There’s not much to say except for the fact that it has been updated from Node.js 8.9.4 to Node.js to 8.11.1. Although it’s not a breaking change, it brings a lot of improvements, including CVE-listed security fixes.
LLVM interpreter for C/C++ & other native languages
Now that a new API has been added for accessing Java types and instantiating foreign objects from LLVM languages, you can easily call Java code from native programs compiled to the LLVM bitcode.
API changes for GraalVM integrators
Good news! Graal SDK and Truffle are offering API for developers trying to build things on top of GraalVM, language implementations, embedding GraalVM, and so on.
To see the list of changes to the APIs, have a look at the project changelogs:
That’s not all, of course. Check out the release notes here.
Get started with GraalVM
GraalVM gives you enhanced performance for JVM-based applications written in languages such as Java, Scala, Groovy or Kotlin thanks to Graal, a dynamic compiler which improves efficiency and speed of applications. The Graal compiler is also available as an experimental option in JDK 10. However, you should be using it with GraalVM if you want to unlock the latest features and boost performance.
If you want to find out more about GraalVM, you should check out the reference manual. All you have to do is choose your favorite language and go to its page. But before you do that, you should make sure the libraries and modules you use as dependencies work with GraalVM. To do it, please use the GraalVM Language Compatibility tool.