Files
hakorune/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md

100 lines
3.9 KiB
Markdown
Raw Normal View History

# Phase 12 × Nyash ABI 統合戦略
## 🎯 核心的発見
Phase 12Nyashスクリプトプラグインと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変換レイヤー追加
- NyashValueenumとNyashValuestructの相互変換
- 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の統合により、史上最も開かれたプラグインエコシステムが誕生する。*