## 🔥 TypeBox ABI革命(セルフホスティング実現) - Nyash ABIをC実装TypeBoxで提供する画期的設計 - Gemini/Codexの深い考察を反映した詳細仕様書作成 - 16バイトアライメント、セレクターキャッシング、弱参照等の具体実装案 - Rust依存を完全排除し、セルフホスティングへの明確な道筋を確立 ## 🎯 JIT制御フロー根本修正(ChatGPT5の25分長考の成果) - ブロック挿入点の明確化: switch_to_block()で各ブロックemit開始時に切替 - シール戦略の簡潔化: br/jump直後のseal撤廃、最終シールに一本化 - PHI最小経路実装: ブロック引数の事前プリスキャン、後付けPHI問題解決 - Cranelift制約対応: 開始済みブロックへのappend禁止を正しく実装 ## 📚 ドキュメント更新 - Phase 12全体のセルフホスティング対応更新 - NYASH-ABI-C-IMPLEMENTATION.md: 実装仕様書作成 - gemini-codex-deep-thoughts.md: AI専門家の考察アーカイブ - 各種README/TASKS更新でセルフホスティング要件追加 ## ✅ テスト結果 - mir-branch-ret: OK (Result: 1) - mir-phi-min: OK (Result: 10) - mir-branch-multi: OK (Result: 1) 「Everything is Box」の究極形態:ABIすらBoxとして扱う革命的設計! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
12 KiB
12 KiB
🚀 Nyash開発マスタープラン
Status: Active Development
Last Updated: 2025-09-02
Purpose: Claude×Copilot×ChatGPT×Gemini×Codex協調開発の総合ロードマップ
📍 現在位置
- 現在フェーズ: Phase 12 TypeBox統合ABI・セルフホスティング準備
- 最新成果: 🔥 Nyash ABIをC実装TypeBoxで提供 - Rust依存排除への道!
- 次フェーズ: Phase 12.0.5 Nyash ABI C実装開始
- 備考: GeminiとCodexの深い考察により、セルフホスティングへの明確な道筋が見えました。
🗺️ フェーズ概要
| Phase | 状態 | 概要 | 詳細リンク |
|---|---|---|---|
| 8.4 | ✅完了 | AST→MIR Lowering完全実装 | phase_8_4_ast_mir_lowering.md |
| 8.5 | ✅完了 | MIRダイエット(35→26→15命令) | phase_8_5_mir_35_to_26_reduction.md |
| 8.6 | 🔄進行中 | VM性能改善(0.9倍→2倍以上) | phase_8_6_vm_performance_improvement.md |
| 9 | 📅予定 | JIT実装 | phase-9/ |
| 9.75g-0 | ✅完了 | BID-FFI Plugin System | Phase-9.75g-0-BID-FFI-Developer-Guide.md |
| 9.8 | 📅予定 | BIDレジストリ + 自動コード生成 | phase_9_8_bid_registry_and_codegen.md |
| 10 | 📅予定 | Cranelift JIT(主経路) | phase_10_cranelift_jit_backend.md |
| 11 | ✅完了 | LLVM統合・AOT実装(依存重い) | phase-11/ |
| 11.8 | 📅予定 | MIR整理(Core-15→Core-13) | phase-11.8_mir_cleanup/ |
| 12 | 🔄進行中 | TypeBox統合ABI・セルフホスティング準備 | phase-12/ |
| 12.5 | 📅予定 | MIR15最適化戦略 | phase-12.5/ |
| 15 | 🌟実現可能 | セルフホスティング(C実装ABI経由) | phase-15/ |
🎯 Nyash実行モード併用戦略
🌟 インタープリター+コンパイラ併用の価値
実行モード使い分け
開発時: インタープリター(デバッグ・即時実行・非同期フル対応)
本番時: インタープリター(Pythonのように実用的)
OR
WASM/AOT(性能要求時)
配布時: AOT native(最高性能)
Web時: WASM(ブラウザ対応)
インタープリターの強み
- 即時実行: コンパイル不要で高速開発
- デバッグ容易: 実行時情報の完全把握
- 非同期完全対応: Rust async/awaitで真の並行処理
- 動的性: 実行時評価・REPL対応
- 十分な性能: 多くのユースケースで実用的(Pythonが証明)
📊 Phase別詳細
🚨 Phase 8.6: VM性能改善 - 最優先課題(進行中)
Summary:
- 緊急問題: VMがインタープリターより0.9倍遅い(性能回帰!)
- 目標: 2倍以上高速化でVM実行を実用レベルに引き上げ
- 担当: Copilot主導(GitHub Issue #112)
技術的課題:
# 現状のベンチマーク結果
Interpreter: 110.10ms (ベースライン)
VM: 119.80ms (0.9倍 - 遅い...)
Target: 55.00ms (2倍高速化目標)
推定原因と対策:
- デバッグ出力過多:
println!による性能劣化 - HashMap操作重い: ValueId → VM値の変換コスト
- 命令ディスパッチ非効率: switch文ベースディスパッチ
🎊 Phase 9.75g-0: BID-FFI Plugin System - 完全完了! ✅
革命的成果: NyashがプラグインでBox型を動的拡張可能に!
// これが現実になった!
local file = new FileBox() // プラグイン提供
local db = new PostgreSQLBox() // 将来: プラグイン提供
local gpu = new CudaBox() // 将来: プラグイン提供
References:
- Phase-9.75g-0-BID-FFI-Developer-Guide.md
- tools/plugin-tester/ (プラグイン診断ツール)
📦 Phase 9.8: BIDレジストリ + 自動コード生成ツール
Summary:
- Phase 9.75g-0完了により準備完了
- BID→各ターゲットのスタブ生成自動化
革命的価値:
# 🎯 1つのプラグインが4バックエンド全対応!
nyash bid gen --target wasm bid.yaml # WASM用import生成
nyash bid gen --target vm bid.yaml # VM用関数テーブル生成
nyash bid gen --target llvm bid.yaml # AOT用declare生成(LLVM実装時)
🏆 Phase 10: Cranelift JIT(主経路)
Summary:
- MIR→VMを維持しつつ、ホットパスをCraneliftでJIT化
- 目標: VM比2倍以上の高速化
- LLVM AOTは設計資産は維持しつつ、Phase 11以降に検討
- 🌟 NEW: GC切り替え可能ランタイム(世界初の柔軟なメモリ管理)
Start Gate(着手前の必須完了):
- ✅ MIRダイエット(15命令)整合完了
- ✅ VM統計:
--vm-statsでホット関数抽出可能 - 🔄 Proof of Concept: MIR→CLIFの最小Lower
- ❓ BoxCall/Array/MapのJIT最適化
実装ステップ:
- Phase 10.1: Proof of Concept(2週間)
- Phase 10.2: 基本実装(4週間)
- Phase 10.3: 非同期の扱い(最小)
- Phase 10.4: GC切り替え可能ランタイム(2-3ヶ月)
- Phase 10.5: セルフホスティング(並行実装)
🔧 Phase 11: LLVM統合・AOT実装(完了 - 依存重い)
Summary:
- ✅ LLVM IRへの変換実装完了
- ✅ AOT(Ahead-of-Time)コンパイル動作確認
- ✅ ネイティブ実行ファイル生成成功
得られた知見:
- 依存関係が重い: LLVM自体のビルド時間・サイズが巨大
- 動作は確認: 技術的には成功、実用性に課題
- Cranelift回帰: 軽量な代替として再評価
📐 Phase 11.8: MIR整理(Core-15→Core-13)
Summary:
- ArrayGet/ArraySet → BoxCall統合
- PluginInvoke → BoxCall統合
- 最終的にCore-13を目指す
🎯 Phase 12: TypeBox統合ABI・セルフホスティング準備(進行中)
Summary:
- TypeBox革命:型情報もBoxとして扱う統一設計
- C ABI + Nyash ABI完全統合
- 🔥 Nyash ABIのC実装でRust依存排除!
革命的成果:
- TypeBox:プラグイン間Box生成を可能に
- 統合ABI:C/Nyash ABIをシームレス統合
- セルフホスティング:C実装ABIで実現可能!
AI専門家の評価:
- Gemini:「技術的妥当性が高く、哲学とも合致した極めて優れた設計」
- Codex:「16バイトアライメント、セレクターキャッシング等の具体案」
⚡ Phase 12.5: MIR15最適化戦略 - コンパイラ丸投げ作戦
Summary:
- 「CPU(コンパイラ)に丸投げできるところは丸投げ」
- MIR15の美しさ(15命令)を保ちながら実用的性能達成
- 自前最適化は最小限、成熟したコンパイラ技術を活用
最適化境界線:
- MIR側: カノニカル化・軽量最適化のみ
- コンパイラ側: ループ最適化・SIMD・レジスタ割当等
ヒントシステム:
- 命令は増やさずメタデータでヒント付与
- pure/readonly/noalias/likely等の属性
- Cコンパイラ/Cranelift/LLVMへ機械的マップ
詳細: phase-12.5/
🧠 AI大会議から得られた技術的知見
Gemini先生の助言
- ✅ エスケープ解析・ボックス化解除が性能の鍵
- ✅ wasmtime compileは短期的に実用的
- ✅ WASM実行は確実に高速(13.5倍実証済み)
- 🔄 Cranelift → LLVM段階的アプローチ
codex先生の助言
- ✅ MIR前倒し実装推奨(全バックエンドが恩恵)
- ✅ wasmtime互換性管理が重要
- ✅ CPU差異対応 (baseline/v3二段ビルド)
- ✅ 起動時間・割当削減・配布体験がKPI
Claude統合分析
- ✅ 実用価値最大化: WASM+AOTで十分な競争力
- ✅ 開発効率: Cranelift JITの恩恵限定的
- ✅ Everything is Box最適化が差別化の核心
- ✅ 時間効率: 2-3ヶ月節約でLLVM集中投資
💡 協調開発への具体的お願い
🔧 Phase 8.6 VM性能改善(最優先)
- ❓ 命令ディスパッチのボトルネック特定方法は?
- ❓ HashMap操作の最適化戦略は?
- ❓ デバッグ出力削除による性能改善測定は?
- ❓ Direct threading実装の現実的アプローチは?
🚀 長期戦略相談
- ❓ インタープリターとコンパイラの互換性保証は?
- ❓ MIR→LLVM IR変換の基本的な実装戦略は?
- ❓ Box型のLLVM表現として最適なアプローチは?
- ❓ エスケープ解析によるスタック化判定は?
🌟 Phase 15: セルフホスティング(実現可能!)
革命的発見: Nyash ABIをC実装TypeBoxで提供することで、Rust依存を排除!
実現への道筋(明確化)
- Phase 12.0.5: Nyash ABI C Shim実装(Rust FFI経由)
- Phase 13: C実装の完全化(基本型・参照カウント)
- Phase 14: NyashでABI再実装(AOTでC ABI公開)
- Phase 15: Nyashコンパイラ自身をNyashで実装!
技術的革新
- TypeBox哲学: ABIすらBoxとして扱う究極の統一
- C ABI基盤: 最も安定した普遍的インターフェース
- 段階的移行: 既存Rust実装との共存期間を確保
📊 進捗管理・コミュニケーション
🤝 協調開発ルール
- ✅ 大きな変更前にはdocs/CURRENT_TASK.mdで情報共有
- ✅ ベンチマーク機能は最優先で維持
- ✅ 競合発生時は機能優先度で解決
- ✅ AI専門家(Gemini/Codex)の深い考察を活用
品質保証
- ✅ cargo check でビルドエラーなし
- ✅ 既存ベンチマークが regression なし
- ✅ 新機能のドキュメント整備
- ✅ テストケース追加・CI通過
🎯 期待される成果
達成済み
- 🏆 RefNew/RefGet/RefSet WASM完全動作
- 🏆 MIR命令削減完了(35→26→15命令、Phase 8.5)
- 🏆 Phase 9.75g-0 BID-FFI Plugin System完全完了
- 🏆 警告削減100%達成(Phase 9.75j)
進行中・予定
- 🔄 VM性能改善進行中(Phase 8.6)- GitHub Issue #112
- 📅 Cranelift JIT(Phase 10): VM比2×以上の高速化
- 📅 非同期ネイティブ実装: async/await完全対応
- 📅 インタープリター併用: 開発・本番両対応
📞 連絡・相談方法
技術的相談や進捗報告は、以下の方法でお気軽にどうぞ:
- 📝 GitHub Issues・Pull Request
- 📋 docs/CURRENT_TASK.md コメント
- 🤖 AI大会議 (重要な技術決定)
- 💬 コミットメッセージでの進捗共有
どんな小さなことでも相談大歓迎です! 一緒にNyashを最高の言語にしていきましょう🚀
最終更新: 2025-08-26 (copilot_issues.txt統合・Markdown化)
作成者: Claude (ファイル統合・構造整理)
🎯 重要な変更点
- ✅ Phase 9.75g-0 BID-FFI Plugin System完全完了
- 🔄 Phase 8.6 VM性能改善を最優先 (進行中)
- 📦 Phase 9.8 BIDレジストリ (Phase 8.6完了後の次期重点)
- 🔍 Phase 10 Cranelift JIT (主経路として確定)
- 🌟 統一ロードマップ化 (phasesフォルダに集約)