Files
hakorune/docs/development/roadmap/phases/00_MASTER_ROADMAP.md
Moe Charm 11506cee3b Phase 11-12: LLVM backend initial, semantics layer, plugin unification
Major changes:
- LLVM backend initial implementation (compiler.rs, llvm mode)
- Semantics layer integration in interpreter (operators.rs)
- Phase 12 plugin architecture revision (3-layer system)
- Builtin box removal preparation
- MIR instruction set documentation (26→Core-15 migration)
- Cross-backend testing infrastructure
- Await/nowait syntax support

New features:
- LLVM AOT compilation support (--backend llvm)
- Semantics layer for interpreter→VM flow
- Tri-backend smoke tests
- Plugin-only registry mode

Bug fixes:
- Interpreter plugin box arithmetic operations
- Branch test returns incorrect values

Documentation:
- Phase 12 README.md updated with new plugin architecture
- Removed obsolete NYIR proposals
- Added LLVM test programs documentation

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 23:44:34 +09:00

8.3 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研究段階 後段検討

🎯 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: セルフホスティング(並行実装)

🧠 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フォルダに集約)