GraalVM 21.2 bringt Neuerungen fĂĽr native Images und den Compiler mit
Oracle hat GraalVM 21.2 veröffentlicht. Neue Features gibt es für Native Image, den Compiler und zusätzliche Programmiersprachen wie JavaScript und Python.
GraalVM ist in Version 21.2 erschienen. Die von Oracle entwickelte virtuelle Maschine soll eine Alternative zur JVM (Java Virtual Machine) bieten und das AusfĂĽhren von Anwendungen beschleunigen, die nicht nur auf Java, sondern auch auf anderen Programmiersprachen basieren. GraalVM liegt als Open-Source-Community-Edition auf Basis von OpenJDK sowie als Enterprise-Version auf Basis von Oracle JDK vor.
Native Image, Truffle und Compiler
GraalVM 21.2 entfernt automatisch nicht benötigte Security-Provider in Native Image, das dem Ahead-of-Time-Kompilieren von Java-Code zu einer ausführbaren Datei dient. Damit gelten Optionen wie --enable-all-security-services
als deprecated und sollen in Zukunft wegfallen. Falls das automatische Entfernen nicht gewünscht sein sollte, lässt sich die Option durch -H:-EnableSecurityServicesFeature
deaktivieren.
Der Compiler wartet in beiden Editionen mit Neuerungen im Umgang mit Loops auf. Die Enterprise-Edition bietet unter anderem eine überarbeitete Loop-Limit-Analyse, während die Community-Edition von der neuen Funktion Speculative Guard Movement Gebrauch machen kann. Sie soll zu einer Verbesserung von Workloads beitragen, indem sie prüft, ob beispielsweise eine Array-Grenzenprüfung außerhalb des Loops besser aufgehoben wäre. Das Truffle Framework, eine Open-Source-Bibliothek zur Implementierung verschiedener Programmiersprachen in GraalVM, hat in Version 21.2 ebenfalls neue Features erhalten. Sie sollen der Warm-up-Zeit der Runtime und somit den Workloads zugute kommen.
Updates fĂĽr JavaScript und Python
GraalVM nutzt bei seiner JavaScript-Implementierung auch Sprachfeatures, die noch den Status ECMAScript Proposal haben. Dazu zählt das Operator-Overloading zum Überladen des Verhaltens von Operatoren in JavaScript-Klassen. Da es sich noch um eine frühe Phase des Features handelt, ist es nicht standardmäßig aktiviert. Die experimentelle Option lässt sich mit dieser Codezeile aktivieren:
js --experimental-options --js.operator-overloading
Die reine Python-Version ist _pickle
gewichen, um die Serialisierung von Objekten zu beschleunigen. Zudem sind für Python ebenso wie für die WebAssembly Runtime Kompatibilitätsverbesserungen und Bug Fixes erfolgt. Updates gibt es auch für Ruby, LLVM, Java on Truffle sowie FastR, die GraalVM-basierte Implementierung der Programmiersprache R.
Weitere Neuerungen
In GraalVM 21.2 gelten Linux-AArch64-CPU-Builds als unterstützt und bringen somit zusätzliche Features wie die Ruby Runtime und Java on Truffle mit. GraalVM-Builds auf Basis von Oracle JDK 16 und OpenJDK 16 gelten zwar weiterhin als experimentell, aber unterstützen nun die Runtimes für Ruby, Python und WebAssembly.
Zudem haben nicht nur die Features ein Update erhalten, sondern auch die Dokumentation erstrahlt im neuen Gewand. Es ist in umstrukturierter Form im GitHub-Repository zu finden.
GraalVM 21.2 ist in den Versionen Community und Enterprise fĂĽr Windows, Linux und macOS zum Download verfĂĽgbar. Die Highlights der neuen Version fĂĽhrt Oleg Ĺ elajev, Developer Advocate fĂĽr GraalVM bei Oracle Labs, in einem Medium-Blogeintrag auf.
(mai)