「GraalVM 21.1」が公開、Java16を実験的にサポート

 多言語対応の仮想マシン「GraalVM」の開発コミュニティは4月21日、最新安定版となる「GraalVM 21.1」を公開した。Java 16の実験的サポートなどが特徴となる。

 GraalVMは米Oracleが開発する汎用の仮想マシン。JavaScript、Python、Ruby、Rで作成されたアプリケーション、それにJava、Scala、Clojure、KotlinなどJVMベース、C/C++などのLLVMベースの言語を動かすことができる。Community EditionとEnterprise Editionがある。1月に公開されたGraalVM 12系の最初のポイントリリース。

 プラットフォームは、Entertprise EditionはOpenJDK 1.8.0_291/1.0.11に、Community EditionはOpenJDK version 1.8.0_292/11.0.11となった。JDK16ベースのバイナリを実験的に導入した。最新のOpenJDKの機能とGraalVMコンパイラの最新機能を含むもので、テストと評価目的に利用できる。macOSでは、Community EditionでOpenJDK 8ベースのビルドがサポート対象外となった(Enterprise Editionは継続してサポートする)。Linux AArch64アーキテクチャは、GraalVMコンパイラ、guツールなどのサポートが加わったが、本バージョンでも実験的扱いのままとなっている。

 多言語ランタイムでは、バージョン20.3で実験導入した多層コンパイルが、デフォルトで有効となった。これによりASTインタープリタTruffleが多言語向けに2層コンパイルを行うため、ほとんどの言語でのウォームアップを改善できるとしている。多層コンパイルの柔軟性のため、コンパイル閾値を設定するフラグも実験導入した。

 言語別でも強化が加わっている。バージョン21で導入したTruffleフレームワークのJava仮想マシンとなるJava on Truffleでは、Java Debug Wire Protocol(JDWP)サポートを強化し、命令が有効になると性能が落ちる問題などを改善した。シグナルハンドラのサポートも加わった。Ruby 2.7のサポートを強化し、C拡張のサポートも改善した。JavaScriptではNode.jsのサポートを14.16.1にアップデートした。PythonではJSSLのサポートが加わった。また、avaサブクラスのサポートを強化し、Jython migrationパスを改善するAPIも加わった。

 このほか、ネイティブイメージ、ツールなどでも多数の強化が加わっている。

GraalVM
https://www.graalvm.org