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.


Amazon Previews Q, Its AI-Powered Assistant

Amazon has announced Q, a generative artificial intelligence powered assistant that can be tailored to the data in a specific organization.

PhpStorm Updated For PHP 8.3

The latest version of PhpStorm, the IDE for PHP and web development from JetBrains, has been updated to support the new features of PHP 8.3, due to be released later this week. 

More News




or email your comment to:

Last Updated ( Tuesday, 23 November 2021 )