オラクル社
GraalVM
- Node.js 12.10.0 との互換性が保証されています。
- 非標準のグローバル プロパティと関数はデフォルトで無効になっています。
global (globalThis に置き換えられ、js.global-property が返されるように設定)、パフォーマンス (js.performance)、print および printErr (js.print); - ECMAScript 2020 モード (「-js.ecmascript-version=2020」) で使用できる、Promise.allSettled および Nullish Coalescing プロポーザルを実装しました。
- 依存関係 ICU4J を 64.2 に、ASM を 7.1 に更新しました。
- スタブ gc.{enable,disable,isenabled} を追加し、charmap_build、sys.hexversion、および _lzma を実装しました。
- Python 3.7.8 標準ライブラリを更新しました。
- NumPy 1.16.4 および Pandas 0.25.0 のサポートを追加しました。
- timeit サポートを追加しました。
- socket.socket は、「graalpython -m http.server」を実行して、暗号化されていない (TLS なしの) http リソースをロードできる状態になりました。
- pandas.DataFrame オブジェクトの表示に関する問題を修正しました。
bytes.startswith のタプルの処理が正しくありません。
イテレータの構造化代入と辞書の dict.__contains__ の使用。 - ast.PyCF_ONLY_AST のサポートが追加されました。
許可された pytest が機能することを確認します。 - 追加した
サポート PEP 498 (リテラル内の文字列補間); -
実装済み 「--python.EmulateJython」フラグは、通常の Python インポート構文を使用して JVM クラスをインポートし、Python コードから JVM 例外をキャッチします。 - パーサーのパフォーマンスの向上、例外キャッシュ、
JVM コードから Python オブジェクトにアクセスします。 Python コードとネイティブ拡張機能のパフォーマンス テストの結果が向上しました (llvm 上でネイティブ拡張機能を実行すると、ビットコード llvm が JIT コンパイルのために GraalVM に渡されることを意味します)。
- ネイティブ拡張機能をコンパイルするには、組み込みの LLVM ツールキットが使用され、ネイティブ コードとビットコードの両方が作成されます。 これは、より多くのネイティブ拡張機能がすぐにコンパイルできるようになり、リンクの問題のほとんどが解消されることを意味します。
- TruffleRuby にネイティブ拡張機能をインストールするための個別の LLVM インストール。
- TruffleRuby に C++ 拡張機能をインストールする場合、libc++ および libc++abi をインストールする必要がなくなりました。
- ライセンスは最近の JRuby と同じ EPL 2.0/GPL 2.0/LGPL 2.1 に更新されました。
- オプションの引数のサポートを GC.stat に追加しました。
- ラッパーを使用して Kernel#load メソッドを実装し、:chdir を使用して Kernel#spawn を実装しました。
- rb_str_drop_bytes を追加しました。これは、OpenSSL が使用するため優れています。
- Rails 6 の新しいレールに必要なプリインストールされた gem の拡張機能が含まれています。
- ネイティブ拡張をコンパイルするには、MRI と同様にフラグが使用されます。
- パフォーマンスの最適化が行われ、メモリ消費量が削減されました。
- R 3.6.1 との互換性が保証されています。
- LLVM に基づいてネイティブ拡張機能を実行するための予備サポートが追加されました。 ネイティブ R パッケージを構築する場合、FastR は GraalVM の組み込み LLVM ツールを使用するように構成されます。 結果のバイナリ ファイルには、ネイティブ コードと LLVM ビットコードの両方が含まれます。
プリインストールされたパッケージもこの方法で構築されます。
FastR はデフォルトでネイティブ拡張コードをロードして実行しますが、「--R.BackEnd=llvm」オプションを指定して起動するとビットコードが使用されます。 「--R.BackEndLLVM=pkg1,pkg2」を指定することで、一部の R パッケージに対して LLVM バックエンドを選択的に使用できます。 パッケージのインストールで問題が発生した場合は、fastr.setToolchain("native") を呼び出すか、$FASTR_HOME/etc/Makeconf ファイルを手動で編集することで、すべてを元に戻すことができます。 - このリリースでは、FastR は GCC ランタイム ライブラリなしで出荷されます。
- メモリリークを修正しました。
- 大きなベクトル (>1GB) を扱うときの問題を修正しました。
- grepRaw を実装しましたが、fixed=T のみに適用されます。
出所: オープンネット.ru