Python 言語のコンパイラである Nuitka 2.0 のリリース

Nuitka 2.0 プロジェクトのリリースが利用可能です。このプロジェクトは、Python スクリプトを C 表現に変換するためのコンパイラーを開発します。これは、CPython との互換性を最大限に高めるために libpython を使用して実行可能ファイルにコンパイルできます (オブジェクト管理にはネイティブ CPython ツールを使用します)。 Python 2.6、2.7、3.3 ~ 3.11 の現在のリリースとの完全な互換性を提供します。 CPython と比較して、コンパイルされたスクリプトは pystone テストで 335% のパフォーマンス向上を示しています。 プロジェクト コードは、Apache ライセンスに基づいて配布されます。

新しいバージョンの変更点には次のようなものがあります。

  • パッケージ構成で変数を使用する機能が追加されました。これにより、コンパイル時にインストールされたパッケージの値をクエリし、それらの値を使用してバックエンドを定義できるようになります。構成内の変数のサポートにより、以前はプラグインの接続が必要だった多くのタスクを標準的な方法で解決できるようになります。
  • 各パッケージの構成に影響を与えるユーザー定義パラメーターのサポートが追加されました。新しい get_parameter 関数を使用してパラメーターを読み取り、モジュールの動作を選択するために使用できます (たとえば、Numba JIT または Torch JIT を無効にするパラメーターを設定できます)。
  • 構成で定義されているが、onefile モードでビルドする場合は実行可能ファイルとは別に指定する必要があるデータ ファイル テンプレートを指定するオプション「--include-onefile-external-data」を追加しました。
  • GCC で CFI (制御フロー整合性) 保護モードを設定するための「--cf-protection」オプションを追加しました。これは、通常の実行順序 (制御フロー) の違反をブロックします。
  • プラグイン yaml ファイルについては、整合性チェックのためのチェックサムを作成する機能が実装されており、将来的には実行時検証を組織化するために使用する予定です。
  • アクションでは、複数のオプションを行で区切って指定できます (新しい行が区切り文字として使用されます)。例: include-data-dir: | a=bc=d
  • ループ タイプの分析が実装されました。これは、将来、選択的な最適化を実装するために使用されます。
  • 非共有変数およびエスケープ変数の処理を高速化するための最適化が追加されました。
  • アンチブロート プラグインの機能が拡張され、streamlit、torch、knetworkx、distributed、skimage、bitsandbytes、tf_keras、pip、networkx、pywt ライブラリ (基本的にはバインディング) を使用するときにパケット数を削減するために使用できるようになりました。 pytest、IPython、nose、triton は除外され、dask になります)。

出所: オープンネット.ru

コメントを追加します