✅ llvmlite統一Call基盤革命達成 - mir_call.py: delegate→真の統一実装(6種Callee完全対応) - Global/Method/Constructor/Closure/Value/Extern統一処理 - 実際のLLVMハーネス動作確認(モックルート完全回避) ✅ 環境変数体系完全整理 - CLAUDE.md: モックルート回避設定完全文書化 - 複雑な環境変数組み合わせの成功パターン確立 ✅ Phase 15.5ドキュメント体系確立 - 実装状況追跡システム構築 - Week 1→2移行準備完了 🎯 Week 2開始準備: JSON出力統一→mir_json_emit.rs実装へ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
102 lines
3.7 KiB
Markdown
102 lines
3.7 KiB
Markdown
# Phase 15.5: JSON v0中心化・統一Call基盤革命
|
||
|
||
**セルフホスティング前の基盤アーキテクチャ大改革**
|
||
|
||
## 🎯 概要
|
||
|
||
Phase 15(セルフホスティング)の前段階として、Nyashの実行基盤を根本的に見直し、将来のRust離脱・多言語実装を見据えた堅牢な基盤を構築する。
|
||
|
||
### 🔥 核心目標 - 3つの統一革命
|
||
1. **🏗️ MIR命令生成統一** - Builder側でemit_unified_call()統一
|
||
2. **⚙️ Callee処理統一** - 全実行器で6種類Callee対応
|
||
3. **📋 JSON出力統一** - 統一Call形式での交換フォーマット確立
|
||
|
||
**最終目標**: 4実行器 × 3統一 = **完全統一Call基盤**でセルフホスティング成功
|
||
|
||
## 🚨 なぜPhase 15.5が必要か
|
||
|
||
### 現在の問題
|
||
- **言語依存**: Rust MIRに過度に依存
|
||
- **実行器分散**: 4つの実行器でCall処理がバラバラ
|
||
- **JSON混在**: 入力用v0と出力用が統一されていない
|
||
- **将来リスク**: Rust離脱時に全面書き直しが必要
|
||
|
||
### ChatGPT戦略提案の核心
|
||
> "MIR型=正、JSON=境界" の役割分担を保ちつつ、段階的にJSON v0中心化へ移行
|
||
|
||
## 📋 Phase構成
|
||
|
||
### [Phase A: JSON出力統一](./migration-phases.md#📋-phase-a-json出力統一今すぐ実装)
|
||
- `mir_json_emit`で統一Call対応
|
||
- `json_out:v1`スキーマ導入
|
||
- 後方互換性維持
|
||
|
||
### [Phase B: JSON中心化移行](./migration-phases.md#📋-phase-b-json中心化移行次段階)
|
||
- MIR ModuleをJSON v0ラッパー化
|
||
- HIR/名前解決情報のJSON化
|
||
- 型安全性維持
|
||
|
||
### [Phase C: 完全JSON化](./migration-phases.md#📋-phase-c-完全json化最終段階)
|
||
- Rust MIR廃止準備
|
||
- プリンター等もJSON経由
|
||
- 多言語実装基盤完成
|
||
|
||
## 🔗 関連ドキュメント
|
||
|
||
### 📊 現在の進捗
|
||
- **[実装状況追跡](./implementation-status.md)** - リアルタイム進捗管理
|
||
- **[段階移行計画](./migration-phases.md)** - 詳細実装ロードマップ
|
||
|
||
### 🛡️ 戦略・設計
|
||
- **[JSON v0中心化戦略](./json-v0-centralization.md)** - アーキテクチャ設計の核心
|
||
- **[リスク分析と対策](./risk-analysis.md)** - 潜在的リスクと軽減戦略
|
||
|
||
### 既存Phase連携
|
||
- [Phase 15: セルフホスティング](../phase-15/README.md)
|
||
- [MIR Call統一マスタープラン](../phase-15/mir-call-unification-master-plan.md)
|
||
|
||
## 📊 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セルフホスティング前提条件 |