Auf der Suche nach dem Heiligen...

GraalVM 19.3 bringt Support für JDK 11

Katharina Degenmann

© Shutterstock / Gorlov Alexander

Fast sehnsüchtig wurde dieses Release von der Java-Community erwartet, nun ist es da: GraalVM 19.3. Es ist das erste Long-Term-Support-Release (LTS) und hat einige Features im Gepäck. Neben dem JDK 11-Support bringt die neue Version einige Verbesserungen im Tooling sowie Unterstützung für Python, Ruby, JavaScript, R und LLVM.

Neue Roadmap bis ins Jahr 2021

Während zwischen GraalVM 19 und 19.1 nicht ganz zwei Monate vergingen, betrug der Zeitabstand zwischen 19.1 und Version 19.2 lediglich sechs Wochen. Zwischen der GraalVM 19.2 und GraalVM 19.3, die aktuell erschienen ist, vergingen wieder knapp zwei Monate: ziemlich unübersichtlich. Abhilfe für diese unregelmäßigen Releases soll die mit GraalVM 19.2 gestartete Release Schedule schaffen.

Die neue 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.

GraalVM 19.3: Das ist neu

Obwohl der Dienstag also fortan als der inoffizielle GraalVM-Tag gilt, erschien die aktuelle Version 19.3 am Mittwochabend. Mit an Bord sind dafür aber zahlreiche Neuerungen.

JDK 11

Grund zur Freude haben vor allem diejenige, die auf den Support von JDK 11 hingefiebert haben. Neu in Version 19.3 ist nämlich zum einen der Support von JDK 11 mit GraalVM Enterprise Edition basierend auf Oracles Java 11.0.5. Zum anderen gibt es auch Unterstützung für JDK 11 für die GraalVM Community Edition, diesmal auf der Basis von OpenJDK 11.0.5. Beide stehen auf der GraalVM-Website zum Download bereit.

Da JDK-11-basierte GraalVM-Builds mit Java 11 kompatibel sind, lassen sich damit alle JVM-Sprachanwendungen ausführen, die JDK 11 erfordern (Java, Scala usw.) sowie alle derzeit in GraalVM auf JDK 8 unterstützten „Gastsprachen“. Aufgrund des modularen Aufbaus des Basis-JDKs gibt es im GraalVM-Paket, unter JDK 11, kein $GRAALVM_HOME/jre/-Verzeichnis mehr. Dies hat Auswirkungen auf den Pfad zum Sprachort, so wird $GRAALVM_HOME/jre/languages/js nun beispielsweise zu $GRAALVM_HOME/languages/js):

Quelle: GraalVM

Wer allerdings mit JDK 8 zufrieden war, kann es auch weiterhin mit GraalVM 19.3 nutzen. Denn wie bereits in den Vorgänger-Versionen unterstützt GraalVM 19.3 weiterhin JDK-8-basierte Builds.

Native Image

Neuerungen gibt es auch im Bereich GraalVM Native Image. In GraalVM 19.3 wurde das Native Image so geändert, dass der native Code des JDK statisch verknüpft wird, anstatt den nativen Code manuell zu ersetzen.

Darüber hinaus bietet das GraalVM Native Image nun auch Support für Java-11-Code als Early-Adopter-Technologie. Derzeit unterstützt der native Image Builder (`$GRAALVM_HOME/bin/native-image`) das Java Platform Module System (JPMS) nicht und hat zur Laufzeit keine Modul-Inspektion.

Maven Updates

Zudem wird mit dem neuen Release das GraalVM Native Image mit Maven durch das Native-Image-Maven-Plug-in unterstützt. Das bedeutet, dass ein Benutzer ein Projekt und sein natives Image direkt mit Maven und dem Befehl mvn package erstellen kann.

Eine weitere wichtige Änderung in 19.3 ist der Unterschied in den Maven-Koordinaten für die GraalVM Native Image bezogenen jars. Die Gruppen-ID für die Artefakte ändert sich von com.oracle.substratevm auf org.graalvm.nativeimage.

LLVM Interpreter

In GraalVM 19.3 müssen Clang und andere LLVM-Tools nicht mehr länger installiert werden, um die GraalVM LLVM Runtime zu erstellen. Es wird die mit GraalVM gebündelte LLVM-Toolchain eingesetzt. Zudem ist die LLVM-Toolchain kein experimentelles Feature mehr und wird von anderen Sprachen verwendet.

Weitere Informationen

Daneben führt GraalVM 19.3 nun ein Command Line Tool zur Aufzeichnung und Analyse der Quellcode-Coverage für eine bestimmte Ausführung von Code bei Sprachen ein, die mit dem Truffle Framework implementiert wurden. Aktivieren lässt es sich durch die Option --codecoverage, z.B. js --codecoverage.

Darüber hinaus gibt es nun Unterstützung für funktionale Breakpoints und Speicherwerkzeuge im Chrome Inspector, und auch hinsichtlich weiterer Programmiersprachen wie etwa JavaScript, Python, R und Ruby hat das Release zahlreiche Änderungen zu verzeichnen.

Weitere Informationen zu GraalVM 19.2 gibt es im Blog-Beitrag und in den offiziellen Release Notes.

Geschrieben von
Katharina Degenmann
Katharina Degenmann
Katharina ist hauptberuflich hilfsbereite Online- und Print-Redakteurin sowie Bücher- und Filme-Junkie. Nebenbei ist sie Möchtegern-Schriftstellerin, die heimlich hofft, eines Tages ihr Geld als Kaffee-Testerin zu verdienen. Seit Februar 2018 arbeitet sie als Redakteurin bei der Software & Support Media GmbH, davor hat sie Politikwissenschaft und Philosophie studiert.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: