GraalVM 20.0: Neues Major Release bringt Updates und Verbesserungen für Java, Node.js und Python

Dominik Mohilo

© Shutterstock / Gorlov Alexander

Oracle macht auch in Bezug auf die GraalVM der neuen Vorhersehbarkeit alle Ehre: Pünktlichst zum angegebenen Termin veröffentlichte das GraalVM-Team die neue Major-Version der virtuellen Maschine veröffentlicht. An Bord sind wieder zahlreiche Verbesserungen für die unterstützten Programmiersprachen.

GraalVM ist Oracles Antwort auf die sich ständig verändernde Landschaft der Software-Entwicklung. Seit Version 19 ist die virtuellen Maschine für polyglotte Anwendungen produktionsreif und kann in Projekten bedenkenlos eingesetzt werden.

GraalVM 20.0: Das ist neu

Java und Microsoft, das ist eine lange Geschichte. Dennoch sind die beiden Welten einander nicht (mehr) so fremd, wie das einst der Fall gewesen sein mochte. Und natürlich ist Microsofts Betriebssystem Windows ein Faktor, mit dem auch Oracle kalkulieren muss. Kein Wunder also, dass es die GraalVM auch für Windows gibt. Die im letzten Jahr eingeführten Builds für Windows bleiben allerdings nach wie vor im experimentellen Stadium. Neu ist, dass die Windows-Versionen nun auch die gu Utility enthalten, mit der sich Komponenten installieren lassen.

Im Bereich Java wurde auf eine aktuelle Version des OpenJDKs (11.0.6 und 1.8.0_242) aktualisiert, auf denen die GraalVM Community Editions nun basieren. Die Enterprise-Versionen setzen auf Oracle Java 1.8.0_241 und 11.0.6. Zudem wurde die GraalVM EE mit der Option -Dgraal.TuneInlinerExploration=0 ausgestattet, womit der Compiler individuell eingestellt werden kann: Entweder bessere Startzeit oder bessere Performance bei großer Last.

JavaScript & Native Images

In Sachen Native Images wurde – einmal mehr – besonders die Unterstützung unter Windows verbessert. In der Enterprise Edition der GraalVM (unabhängig vom OS) können sie zudem einen auf G1 basierenden Garbage Collector enthalten. Bessere Latenzen und weniger „stop-the-world“-Pausen sollen damit einhergehen.

Besonders Entwickler, die JavaScript einsetzen, können sich über neue Funktionen bzw. Optionen freuen: Neben dem Update auf Node.js 12.15 ist es nun möglich, npm-kompatible CommonJS-Module aus reinem JavaScript zu laden. Dies funktioniert via js.commonjs-require-Option. Mit der Option js.load-from-classpath können Dateien unter Verwendung der classpath: Pseudo-URLs geladen werden.

Python, R & Co.

Python-Entwicklern wird die verbesserte Jython-Kompatibilität zugutekommen. Diese beruht auf der Implementierung einer Syntax (from JavaType import *), mit der alle statischen Teile einer Java-Klasse importiert werden können. Wer path/to/jarfile.jar!path/inside/jar zum sys.path hinzufügt, kann sogar Python-Code aus einer JAR-Datei importieren.

LLVM 9.0.0 ist nun die Basis für die LLVM-Toolchain der GraalVM, mit der nun auf llvm-ar, llvm-nm, llvm-objcopy, llvm-objdump, llvm-ranlib, llvm-readelf, llvm-readobj und llvm-strip zugegriffen werden kann. In Bezug auf die Programmiersprache R wird unter Linux nun übrigens Version 5 der libgfortran benötigt. Auch für Ruby gab es ein Update: Support für Version 2.6.5 ist nun verfügbar und über 100 Kompatibilitäts- und Bug-Fixes wurden durchgeführt.

Zu guter Letzt sei noch erwähnt, dass eine technische Preview der Implementierung des Language Server Protocols für alle GraalVM-Sprachen hinzugefügt wurde. Das beinhaltet auch die Unterstützung für VSCode-Erweiterungen der GraalVM.

Weitere Informationen zu GraalVM 20.0 gibt es in den Release Notes.

Neue Roadmap bis ins Jahr 2021

Die Roadmap sieht ein Major Release alle drei Monate vor (GraalVM 20, 20.1, 20.2 etc.), gefolgt von einem Patch Release (GraalVM 20.0.1, 20.1.1 etc.). Zusätzlich wird es vom letzten Major (also 19.3, 20.3 etc.) für ein volles Jahr sogenannte LTS-Patches geben, die dann als Version x.3.1 bis x.3.4 parallel zu den gewöhnlichen Patch-Releases der aktuellen Version veröffentlicht werden. Dieses Bild stellt die Sachlage etwas übersichtlicher dar:

Quelle: GraalVM / © 2018, 2019, Oracle and/or ist affiliates.

Doch nicht nur die Struktur des neuen Release-Zyklus’ ist definiert, sogar die exakten Daten können bereits im Kalender markiert werden:

Version Datum
19.2 20. August 2019
19.2.1 15. Oktober 2019
19.3 19. November 2019
19.3.1 14. Januar 2020
20.0 18. Februar 2020
19.3.2 14. April 2020
20.1 19. Mai 2020
19.3.3 14. Juli 2020
20.2 18. August 2020
19.3.4 20. Oktober 2020
20.3 17. November 2020
20.3.1 19. Januar 2021
21.0 16. Februar 2021
20.3.2 20. April 2021
21.1 18. Mai 2021
20.3.3 20. Juli 2021
21.2 17. August 2021
20.3.4 19. Oktober 2021
21.3 16. November 2021

Wer genau aufgepasst hat, hat natürlich gesehen, dass alle diese Daten Dienstage sind. Dienstag wird also zum GraalVM-Tag. Weitere Informationen zur neuen Schedule gibt es auf der GraalVM-Projektseite unter dem Menüpunkt Version Roadmap.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

2
Hinterlasse einen Kommentar

avatar
4000
1 Kommentar Themen
1 Themen Antworten
0 Follower
 
Kommentar, auf das am meisten reagiert wurde
Beliebtestes Kommentar Thema
2 Kommentatoren
EntwicklerSandmann Letzte Kommentartoren
  Subscribe  
Benachrichtige mich zu:
Sandmann
Gast
Sandmann

Null Kommentare auf diesen Artikel für die Version 20.x für GraalVM zwischen Februar und Juli 2020. Signalisiert das möglicherweise die Bedeutung der Beliebtheit von GraalVM?

Entwickler
Gast
Entwickler

Signalisiert es nicht! Graal ist seit Einführung von Quarkus im Unternehmen täglich bei uns im Einsatz. Dennoch gibt es keinen Grund für einen Kommentar.