# Phase 12 × Nyash ABI 統合戦略 ## 🎯 核心的発見 Phase 12(Nyashスクリプトプラグイン)とNyash ABI(多言語ブリッジ)は、**同じ統一インターフェースの内側と外側**だった! ## 🏗️ 統合アーキテクチャ ``` 外部言語(Python/JS/C++/Rust等) ↓ ┌─────────────────────────────────┐ │ Nyash ABI (C境界) │ ← 3×u64構造体 │ NyashFunc統一呼び出し規約 │ ├─────────────────────────────────┤ │ 統一レジストリ・ディスパッチャ │ ├─────────────────────────────────┤ │ BoxInterface (Rust内部) │ ← trait実装 │ invoke/get_methods/init/drop │ ├─────────────┬─────────────────┤ │ Nyashスクリプト │ ネイティブ │ │ プラグイン │ プラグイン │ └────────────┴─────────────────┘ ``` ## 🔧 実装フェーズ ### Phase 1: 基盤統合(1-2週間) - BoxInterfaceにNyashFunc変換レイヤー追加 - NyashValue(enum)とNyashValue(struct)の相互変換 - method_idをmetadataフィールドに統合 ### Phase 2: export box拡張(2-3週間) ```nyash export box MyPlugin { // 以下を自動生成: // 1. BoxInterface実装 // 2. NyashFunc extern "C"関数 // 3. 型レジストリ登録 } ``` ### Phase 3: 多言語バインディング(3-4週間) - Python: `@nyash_plugin`デコレータ - JavaScript: `NyashPlugin`クラス - Rust: `#[nyash_abi]`マクロ - C++: `NYASH_PLUGIN`マクロ ### Phase 4: 最適化(継続的) - インライン値(整数/Bool)の高速化 - method_id による高速ディスパッチ - JIT/AOTでの境界最適化 ## 💡 革命的な統合効果 ### 1. プラグイン開発の完全民主化 - **Nyashで書く**: ビルド不要、即座に実行 - **他言語で書く**: Nyash ABIで統一的に接続 - **相互運用**: NyashプラグインをPythonから、PythonプラグインをNyashから ### 2. エコシステムの爆発的拡大 ``` 従来: Rust/C++開発者のみ → 狭いエコシステム 統合後: 全言語の開発者 → 巨大エコシステム ``` ### 3. 実装の簡潔性 - MIR変更最小(ExternCallのまま) - 既存プラグイン後方互換(トランポリン自動生成) - 段階的移行(nyash.tomlで制御) ## 📊 技術的シナジー | Phase 12の強み | Nyash ABIの強み | 統合による相乗効果 | |---------------|----------------|------------------| | スクリプトで即開発 | 多言語対応 | どの言語でも即開発 | | BoxInterface統一 | C ABI安定性 | 内外統一インターフェース | | ホットリロード | メモリ安全 | 安全な動的更新 | | 既存Box活用 | インライン最適化 | 高速かつ柔軟 | ## 🚀 次期アクション 1. **仕様統合**: BoxInterfaceとNyashFuncの正確なマッピング定義 2. **プロトタイプ**: 1つの既存プラグインで両方式を実装 3. **ベンチマーク**: 性能影響の測定(特にインライン値) 4. **ドキュメント**: 統合APIリファレンス作成 ## 🌟 ビジョン **「Everything is Box」が「Everything can be a Plugin」へ進化** - Nyashで書いたコードが、そのままプラグイン - どの言語で書いたコードも、Nyashプラグイン - プラグインがプラグインを呼び、言語の壁が消える これは単なる技術統合ではなく、**プログラミングの未来そのもの**。 --- *Phase 12とNyash ABIの統合により、史上最も開かれたプラグインエコシステムが誕生する。*