Phase 26-H 完了内容: ✅ JoinIR 型定義実装(src/mir/join_ir.rs) ✅ MIR → JoinIR 自動変換実装(lower_min_loop_to_joinir) ✅ 自動変換テスト実装(mir_joinir_min_auto_lowering) ✅ PHI/Loop箱 → JoinIR 移行対応表追加(loopform_ssot.md) ドキュメント更新: - Phase 27 JoinIR タスク計画追加 - Phase 26-H タスク完了記録 - 各種 README 更新(進捗反映) - CURRENT_TASK.md 更新 コミット統計: $(git status --short | wc -l) files changed 次のステップ: Phase 27 一般化 MIR → JoinIR 変換
Phase 15.5: JSON v0中心化・統一Call基盤革命
セルフホスティング前の基盤アーキテクチャ大改革
🎯 概要
Phase 15(セルフホスティング)の前段階として、Nyashの実行基盤を根本的に見直し、将来のRust離脱・多言語実装を見据えた堅牢な基盤を構築する。
🔥 核心目標 - 3つの統一革命
- 🏗️ MIR命令生成統一 - Builder側でemit_unified_call()統一
- ⚙️ Callee処理統一 - 全実行器で6種類Callee対応
- 📋 JSON出力統一 - 統一Call形式での交換フォーマット確立
最終目標: 4実行器 × 3統一 = 完全統一Call基盤でセルフホスティング成功
🚨 なぜPhase 15.5が必要か
現在の問題
- 言語依存: Rust MIRに過度に依存
- 実行器分散: 4つの実行器でCall処理がバラバラ
- JSON混在: 入力用v0と出力用が統一されていない
- 将来リスク: Rust離脱時に全面書き直しが必要
ChatGPT戦略提案の核心
"MIR型=正、JSON=境界" の役割分担を保ちつつ、段階的にJSON v0中心化へ移行
📋 Phase構成
Phase A: JSON出力統一
mir_json_emitで統一Call対応json_out:v1スキーマ導入- 後方互換性維持
Phase B: JSON中心化移行
- MIR ModuleをJSON v0ラッパー化
- HIR/名前解決情報のJSON化
- 型安全性維持
Phase C: 完全JSON化
- Rust MIR廃止準備
- プリンター等もJSON経由
- 多言語実装基盤完成
🔗 関連ドキュメント
📊 現在の進捗
🛡️ 戦略・設計
- JSON v0中心化戦略 - アーキテクチャ設計の核心
- リスク分析と対策 - 潜在的リスクと軽減戦略
既存Phase連携
📊 Phase 15との関係
Phase 15.5 (基盤革命) → Phase 15 (セルフホスティング)
↓ ↓
JSON v0基盤確立 Rust→Nyash移行
統一Call完成 80k→20k行削減
Phase 15.5はPhase 15成功の前提条件である。
🎯 成功定義
Phase A完了条件 - 修正版
- MIR Builder: emit_unified_call()で全Call生成 ✅
- VM実行器: Callee処理完全対応 ✅
- Python LLVM: llvmlite内部Callee統一 🔄 要対応
- JSON出力: 統一Call v1形式 ⏳
- 環境変数: NYASH_MIR_UNIFIED_CALL=1で全統一 🔄
Phase B完了条件
- JSON→MIRリーダーの薄化
- HIR情報のJSON化
- 型安全性とパフォーマンス維持
Phase C完了条件
- MIR Module廃止準備完了
- 多言語実装の技術実証
- セルフホスティング基盤完成
⚠️ 重要注意事項
急がない原則
- 一気にJSON化しない - 型喪失・性能劣化のリスク
- 既存機能を壊さない - 段階移行で安全性確保
- テスト駆動 - 各段階で完全な動作確認
撤退戦略
各Phaseで前段階に戻れる設計を維持する。
更新: 2025-09-24 責任者: Claude Code + ChatGPT戦略 関連Issue: Phase 15セルフホスティング前提条件