ビルドはMaven(mvn clean verify)で行い、jpython.shでREPLまたはスクリプト実行が可能 V8版(detroit-js)との技術的差異
V8版はJNI(Java Native Interface)でC++ブリッジを構築するのに対し、Python版はFFM API(Project Panama / java.lang.foreign)を採用 V8版がC++の複雑なコールバック連携のためJNIを選んだのに対し、Python版はC言語APIであるPython C APIとのフラットな関数呼び出しにFFM APIが適合 jextractによるバインディング自動生成(Python_h.*)がFFM API採用の大きな動機
共通事項
両版ともJEP 472(JDK 24)への対応として--enable-native-access=org.openjdk.engine.pythonを起動スクリプトに明示指定 JPMSモジュールとして構成され、最小権限でのネイティブアクセス許可を実現 GraalVMのPolyglot APIとは異なり、本物のネイティブエンジンをJNI/FFMでJVMに横付けするアプローチ