2026/04/06 3:33
オープンJDK:パナマ (OpenJDK: Panama)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
(欠落していた点を含む):**
Summary
Project Panama は、JNI のレガシーを置き換えることを目的とした JVM イニシアチブであり、ネイティブ関数呼び出し、直接メモリアクセス、およびベクトル API サポートを純粋な Java 内で完全に提供します。これには、ネイティブ呼び出し、データレイアウト、ネイティブメタデータ、jextract ツール、ライブラリ API、インタープリター・フック、クラス/メソッド解決フック、ネイティブワークロード向けの JIT 最適化、安全ラッパー、および統合が難しいネイティブライブラリに関する探索的作業といったコアコンポーネントが定義されています。取り組みは Hotspot Group によりスポンサーされ、
panama-dev と jextract-dev のメーリングリストを通じて調整されています。設計文書には、フォーリンメモリアクセス、関数サポート、初期問題領域、および Foreign Function & Memory API および Vector API を公式化する JEP 424/426 が含まれています。「Project Panama: say goodbye to JNI!」「The Vector API in JDK 17」などの公開トークがその進化を示しています。アクティブな GitHub リポジトリ(panama、panama‑vector、jextract)は現在の作業をホストし、レガシーリポジトリは保管されますが拡張は行われません。今後の開発ではツールの洗練、安全チェックの拡充、およびネイティブ指向の JIT 最適化の強化が進められ、Java 開発者が JNI のボイラープレートやセキュリティリスクなしに C ライブラリをより安全かつ効率的に統合できるようになります。本文
プロジェクト・パナマ:JVMとネイティブコードの相互接続
Java 仮想マシン(JVM)と、明確に定義されているが「外国語」(非 Java)API との結びつきを改善し、充実させることを目的としています。これには、C プログラマによく使われる多くのインタフェースも含まれます。
そのためにプロジェクト・パナマは、以下のほぼすべてのコンポーネントを備える予定です:
- JVM からネイティブ関数呼び出し
- JVM または JVM ヒープ内でのネイティブデータアクセス
- JVM ヒープにおける新しいデータレイアウト
- JVM 用のネイティブメタデータ定義
- ヘッダファイル API 抽出ツール(jextract)
- ネイティブライブラリ管理 API
- ネイティブ志向のインタプリタとランタイム「フック」
- クラス・メソッド解決フック
- ネイティブ志向の JIT 最適化
- 安全性を確保するためのツールやラッパー挟み込み
- 統合が難しいネイティブライブラリとの探索的作業
コミュニティ
このプロジェクトは Hotspot Group がスポンサーです。
メーリングリスト & ニュース
– Foreign Function & Memory API、Vector APIpanama-dev
– jextract ツールjextract-dev
最新のパナマ開発情報は Inside.java でご確認ください。
デザインドキュメント
- パナマ外国メモリアクセス
- パナマ外国関数サポート
- パナマ(一般)
- jextract 使用例
- 初期問題領域の概要:VM の「峡谷」
JEPs
- Foreign Function & Memory API: JEP‑424
- Vector API: JEP‑426
講演
- Project Panama: say goodbye to JNI!
- The Vector API in JDK 17
- ByteBuffers are dead, long live ByteBuffers!
- Deconstructing Panama
- Vector API
- Panama: a foreign policy for Java
リポジトリ構成
プロジェクト・パナマは、最終的に JDK に統合されるためのコンポーネントを育成することを目的としています。現在、以下のリポジトリで積極的に開発が進められています:
- Panama – 外国メモリアクセスと外国関数呼び出しをサポート
- Panama vector support – JVM イントリンシックを通じて Java でのベクトル化を追加
- jextract – ネイティブライブラリヘッダから自動的に Java バインディングを生成するツール
レガシー パナマ リポジトリもここにはありますが、今後は作業を継続しない見込みです。そのため、このリポジトリは使用せず(将来的には読み取り専用として明示的にマークする予定)おくことを推奨します。