GraalVM 21.3 Released
Written by Nikos Vaggalis   
Tuesday, 23 November 2021

GraalVM, the runtime that compiles Java bytecode into native self-contained executables and capable of running programs in different languages other than Java, has reached version 21.3.


Foremostly it comes with support for Java 17, as such it makes available all new features of the language. Further, from now on GraalVM Community distributions will be based on OpenJDK 11 and 17 only, hence OpenJDK version has been deprecated. This affects GraalVM Enterprise too that is based on the corresponding Oracle JDKs.

This version brings several compiler optimizations that boost performance, such as the Strip Mining optimization that converts uncounted loops to counted and the Enhanced Automated Vectorization which leverages the latest SIMD instruction capabilities available on the target hardware platform.
We've seen how SIMD's can quadruple performance in cases like SimdJSON.

There were also optimizations on the Native Image end:

  • Improved Native Image configuration

  • Improved gathering of the reflection metadata by the native-image builder

  • Reduced image size as well as image build time. This is especially beneficial for large applications like those based on Spring Boot, and come on top of the performance enhancements you get out of the box by compiling Spring Applications to Native Images with Spring Native using the GraalVM native-image compiler;instant startup, instant peak performance and reduced memory consumption, since the native Spring applications are deployed as a standalone executable (docker image) without including a JVM installation.

The Polyglot Runtime end, under which you can write polyglot programms (like calling JavaScript from within a Java application) in JavaScript, Ruby, R, Python, and the native languages that use LLVM (the so called “Truffle” languages, which are the languages which interpreters are implemented with the Truffle framework), was also retouched. Some of those changes are :

  • Java
    Added Java 17 guest and host support

  • JavaScript
    Updated Node. js to version 14. 17. 6 and implemented the Error Cause proposal. It is available behind the experimental option --js. error-cause.

  • Ruby
    TRegex is now used by default, which provides large speedups for matching regular expressions.

  • Python
    Implemented a binary compatible backend for HPy 0. 0. 3, which allows HPy packages to run unmodified on CPython and GraalVM Python. This is part of an ongoing effort to make more packages available to users without them having to compile them for GraalPython specifically.

  • R
    Upgraded from PCRE to PCRE2 version 10.37.

  • LLVM Runtime
    Updated the LLVM toolchain for compiling C/C++ to version 12.0.1.

  • WebAssembly
    Improved internal implementation of GraalVM WebAssembly to make JS-WebAssembly Interface API more compliant.

Finally on the tool support end, a number of refactoring's were added to the VS Code GraalVM Extension Pack for Java as well as to the GraalVM Tools for Micronaut Extension.

GraalVM comes in two versions. The Enterprise edition is free for evaluation and development with additional performance, scalability and security over the community edition, while the Community is free for all purposes and runs any program that runs on GraalVM Enterprise.


More Information

GraalVM 21.3 release notes 

Related Articles

Compile Spring Applications To Native Images With Spring Native



To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


AWS Lambda Upgraded To .NET8 Runtime

An upgrade of AWS Lambda to the .NET version 8 runtime
brings major improvements to the platform.

Insights From AI Index 2024 Report

Published this week, the latest Stanford HAI AI Index report tracks worldwide trends in AI. A mix of its new research and findings from many other sources, it provides a wide ranging look at how  [ ... ]

More News

raspberry pi books



or email your comment to:

Last Updated ( Tuesday, 23 November 2021 )