# Phase 22 実装ロードマップ ## 前提条件 - [ ] Phase 15 LLVM Rust実装の完成(ChatGPT5作業中) - [ ] LLVMバックエンドでの基本的なEXE生成確認 - [ ] MIR 13命令セットの安定 ## Phase 0: MVP実装(2週間) ### Week 1: C++グルー層 - [ ] 最小C++ラッパー作成(10関数以内) ```cpp llvm_init() llvm_context_create/free() llvm_module_from_ir() llvm_verify_module() llvm_write_object() llvm_get_error() ``` - [ ] ビルドシステム整備(CMake/Makefile) - [ ] 基本的なエラーハンドリング ### Week 2: Nyash実装とテスト - [ ] LLVMTextGeneratorBox実装 - MIR → LLVM IR テキスト変換 - 最小限:main関数、return文のみ - [ ] エンドツーエンドテスト ```bash echo 'print(42)' > test.hako ./nyash phase22-compiler.hako test.hako ``` - [ ] Rust版との出力比較 ## Phase 1: 基本機能実装(1ヶ月) ### Week 3-4: MIR命令カバレッジ - [ ] 算術演算(BinOp, UnaryOp) - [ ] 制御フロー(Branch, Jump) - [ ] 関数呼び出し(Call) - [ ] Box操作(BoxCall基本) ### Week 5-6: バッチBuilder化 - [ ] バイナリエンコーディング設計 - [ ] `llvm_build_batch()` API実装 - [ ] Nyash側エンコーダー実装 - [ ] パフォーマンス測定 ## Phase 2: 完全移行(1ヶ月) ### Week 7-8: 高度な機能 - [ ] Phi命令サポート - [ ] ExternCall完全実装 - [ ] 文字列・配列操作 - [ ] プラグインサポート ### Week 9-10: 最適化と検証 - [ ] 全テストスイート通過 - [ ] パフォーマンスチューニング - [ ] メモリ使用量最適化 - [ ] ドキュメント整備 ## 成功指標 ### 必須要件 - [ ] `dep_tree_min_string.hako` のコンパイル成功 - [ ] 基本的なプラグインテスト通過 - [ ] Rust版と同一のオブジェクトファイル生成 ### パフォーマンス目標 - [ ] コンパイル時間: Rust版の2倍以内 - [ ] メモリ使用量: 100MB以内 - [ ] コード行数: 200行以内 ### 品質目標 - [ ] エラーメッセージの明確性 - [ ] デバッグ情報の充実 - [ ] 拡張性の確保 ## リスクと対策 ### 技術的リスク 1. **FFI境界のオーバーヘッド** - 対策: バッチ化で呼び出し回数削減 2. **LLVM APIの複雑性** - 対策: テキストIRから段階的に移行 3. **デバッグの困難さ** - 対策: 充実したロギングとIRダンプ ### スケジュールリスク - Phase 15完了の遅延 → 並行して設計・プロトタイプ作成 ## 長期ビジョン ### Phase 22.5: 自己コンパイル ```nyash // NyashコンパイラでNyashコンパイラをコンパイル! local compiler = new NyashCompiler() compiler.compile("phase22-compiler.hako", "nyash-compiler.exe") ``` ### Phase 23: 完全セルフホスティング - Rust依存の完全排除 - NyashだけでNyash開発環境構築 - 究極の「Everything is Box」実現 --- > 「難しいけど、夢があるにゃ!」