Files
hakorune/docs/development/roadmap/phases/00_MASTER_ROADMAP.md
Moe Charm da96bcb906 📚 Phase 12.5 最適化戦略 & Phase 15 セルフホスティング計画
Phase 12.5: MIR15最適化戦略 - コンパイラ丸投げ作戦
- optimization-strategy.txt: 詳細戦略(MIR側は軽量、コンパイラに丸投げ)
- implementation-examples.md: 具体的な実装例
- debug-safety-comparison.md: 現在のDebugBox vs ChatGPT5提案の比較分析

Phase 15: Nyashセルフホスティング - 究極の目標
- self-hosting-plan.txt: 内蔵Craneliftによる実現計画
- technical-details.md: CompilerBox設計とブートストラップ手順
- README.md: セルフホスティングのビジョン

重要な知見:
- LLVM統合完了済み(Phase 11)だが依存が重すぎる
- Craneliftが現実的な選択肢(3-5MB vs LLVM 50-100MB)
- 「コンパイラもBox、すべてがBox」の夢へ

MASTERロードマップ更新済み
2025-09-02 05:11:10 +09:00

10 KiB
Raw Blame History

🚀 Nyash開発マスタープラン

Status: Active Development
Last Updated: 2025-08-26
Purpose: Claude×Copilot×ChatGPT協調開発の総合ロードマップ

📍 現在位置

  • 現在フェーズ: Phase 10.5b ネイティブビルド基盤の固めMIR→VM→AOTの足固め
  • 次フェーズ: Phase 10.5c Handle-First PluginInvokePython統合の実装着手
  • 備考: 旧10.1系10.1c/dは「PythonをNyashで動かすフェーズ」の設計資料Archived。順番を入れ替え、先にネイティブビルド基盤を完成させています。

🗺️ フェーズ概要

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 🔄進行中 MIR Core-15確定・プラグイン統一 phase-12/
12.5 📅予定 MIR15最適化戦略 phase-12.5/
15 🌟将来 セルフホスティングNyashコンパイラ 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.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最適化

実装ステップ:

  1. Phase 10.1: Proof of Concept2週間
  2. Phase 10.2: 基本実装4週間
  3. Phase 10.3: 非同期の扱い(最小)
  4. Phase 10.4: GC切り替え可能ランタイム2-3ヶ月
  5. Phase 10.5: セルフホスティング(並行実装)

🔧 Phase 11: LLVM統合・AOT実装完了 - 依存重い)

Summary:

  • LLVM IRへの変換実装完了
  • AOTAhead-of-Timeコンパイル動作確認
  • ネイティブ実行ファイル生成成功

得られた知見:

  • 依存関係が重い: LLVM自体のビルド時間・サイズが巨大
  • 動作は確認: 技術的には成功、実用性に課題
  • Cranelift回帰: 軽量な代替として再評価

📐 Phase 11.8: MIR整理Core-15→Core-13

Summary:

  • ArrayGet/ArraySet → BoxCall統合
  • PluginInvoke → BoxCall統合
  • 最終的にCore-13を目指す

詳細: phase-11.8_mir_cleanup/


🎯 Phase 12: MIR Core-15確定・プラグイン統一進行中

Summary:

  • MIR Core-1514の最終確定
  • プラグインシステムの3層統一
  • Nyash ABI設計

3層プラグインシステム:

  1. Nyashスクリプトプラグイン.nyash
  2. C ABIプラグイン高速・安定
  3. Nyash ABIプラグイン将来拡張

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表現として最適なアプローチは
  • エスケープ解析によるスタック化判定は?

📊 進捗管理・コミュニケーション

🤝 協調開発ルール

  • 大きな変更前にはdocs/CURRENT_TASK.mdで情報共有
  • ベンチマーク機能は最優先で維持
  • 競合発生時は機能優先度で解決

品質保証

  • 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 JITPhase 10: VM比2×以上の高速化
  • 📅 非同期ネイティブ実装: async/await完全対応
  • 📅 インタープリター併用: 開発・本番両対応

📞 連絡・相談方法

技術的相談や進捗報告は、以下の方法でお気軽にどうぞ:

  1. 📝 GitHub Issues・Pull Request
  2. 📋 docs/CURRENT_TASK.md コメント
  3. 🤖 AI大会議 (重要な技術決定)
  4. 💬 コミットメッセージでの進捗共有

どんな小さなことでも相談大歓迎です! 一緒に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フォルダに集約)