GraalVM 19.2.0 bietet API-Verbesserungen für den mehrsprachigen Einsatz

Die auf weitgehende Sprachunabhängigkeit ausgelegte Virtual Machine eröffnet neue Optionen für die polyglotte Konfiguration über das SDK und die Truffle-API.

In Pocket speichern vorlesen Druckansicht 124 Kommentare lesen
GraalVM 19.2.0 bietet API-Verbesserungen für den mehrsprachigen Einsatz
Lesezeit: 2 Min.

Nachdem seit Mai auch das erste offiziell produktionsreife Release der Community Edition von Oracles GraalVM vorliegt, hat das Team hinter der auf den Einsatz verschiedener Programmiersprachen zugeschnittenen Virtual Machine kürzlich das Feature Release GraalVM 19.2.0 nachgelegt. Neben einigen Stabilitäts- sowie Performanceverbesserungen bietet das Release aber auch wichtige neue Funktionen – darunter ein Update des SDK und der Truffle-API, das erweiterte Konfigurationsmöglichkeiten für den mehrsprachigen Einsatz der VM verspricht.

Der neue PolyglotAccess.newBuilder() erlaubt eine feiner abgestimmte Konfiguration der Zugriffskontrolle von polyglotten Bindings und bei sprachübergreifenden Zugriffen. Diese Funktion ist vor allem dann bedeutend, wenn die GraalVM innerhalb des Oracle RDBMS ausgeführt werden soll. Liegt beispielsweise ein Wert TruffleObject vor, so muss nicht nur die Programmiersprache, sondern auch der Typ dieses Objekts bestimmt werden. Darüber hinaus unterstützen die polyglotten APIs von GraalVM 19.2.0 nun Werte für Datum, Zeit, Zeitzone und Dauer und mit der neuen Klasse Context.Builder.timeZone(ZoneId) lässt sich die Standardzeitzone im mehrsprachigen Kontext konfigurieren.

Die erwähnten Neuerungen im SDK und der Truffle-API kommen allesamt der JavaScript-Komponenten zugute. Entwicklern stehen zudem die aus dem TC39 Proposal hervorgehenden Numeric Separators zur Verfügung, sobald der ECMAScript-2020-Modus mit --js.ecmascript-version=2020 aktiviert ist. Das GraalVM-Team hat auch die ICU-Daten (International Components for Unicode) nun direkt in die JS-Executable integriert. Bisher war für jede Sprache eine separate Datei in <Graalvm_home>/jre/languages/js/icu4j/icudt mit den Informationen zur Formatierung von Datum, Uhrzeit und Zahlen erforderlich.

GraalVM 19.2.0 enthält außerdem die noch als experimentell eingestufte Möglichkeit, mit der LLVM-Toolchain native Programme (beispielsweise C oder C++) in Bitcode zu kompilieren. In die neue Version sind auch eine Reihe von Neurungen für Ruby, R und Python eingeflossen. Nähere Details sowie eine Zusammenfassung aller Änderungen finden sich in den Release Notes sowie auf den Projektseiten bei GitHub.

Siehe hierzu auf heise Developer:

(map)