- TypeBox ABI雛形: メソッドスロット管理システム追加 - Type Registry: Array/Map/StringBoxの基本メソッド定義 - Host API: C ABI逆呼び出しシステム実装 - Phase 12ドキュメント整理: 設計文書統合・アーカイブ化 - MIR Builder: クリーンアップと分離実装完了 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
3.9 KiB
3.9 KiB
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週間)
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活用 | インライン最適化 | 高速かつ柔軟 |
🚀 次期アクション
- 仕様統合: BoxInterfaceとNyashFuncの正確なマッピング定義
- プロトタイプ: 1つの既存プラグインで両方式を実装
- ベンチマーク: 性能影響の測定(特にインライン値)
- ドキュメント: 統合APIリファレンス作成
🌟 ビジョン
「Everything is Box」が「Everything can be a Plugin」へ進化
- Nyashで書いたコードが、そのままプラグイン
- どの言語で書いたコードも、Nyashプラグイン
- プラグインがプラグインを呼び、言語の壁が消える
これは単なる技術統合ではなく、プログラミングの未来そのもの。
Phase 12とNyash ABIの統合により、史上最も開かれたプラグインエコシステムが誕生する。