Files
hakorune/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md
Moe Charm 53d88157aa Phase 12: 統一TypeBox ABI実装開始 - ChatGPT5による極小コアABI基盤構築
- 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>
2025-09-03 05:04:56 +09:00

3.9 KiB
Raw Blame 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週間

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の統合により、史上最も開かれたプラグインエコシステムが誕生する。