Phase 15.77 - 凍結EXE確定フェーズ
期間: 2025-11-09 - 2025-12-20(6週間) 状態: 🔜 Phase 15.76完了後開始
🎯 このフェーズで実現すること
凍結EXE(hako-frozen-v1.exe)確定 + Rust層最小化
- 凍結EXE作成: hako-frozen-v1.exe ビルド・タグ付け・配布
- Rust層最小化: 99,406行 → 100-200行(VM実行エンジンのみ)
- 単一パーサ体制: Hakoruneパーサーのみ開発(Rust凍結)
- 安全な試行錯誤: いつでも凍結EXEに戻れる基盤確立
💡 このフェーズの位置づけ
Phase 15.76で確立した「背骨」を使って実際に凍結
Phase 15.76(背骨確立)
├── extern_c構文実装 ✅
├── LLVM Backendプラグイン化 ✅
└── AOT導線整備(MIR JSON→.o→EXE)✅
Phase 15.77(凍結実行)← 今ここ
├── 凍結EXE作成・配布
├── Rust層最小化実行
└── 単一パーサ体制確立
Phase 15.78〜(脱Rust加速)
└── Hakoruneパーサー完全実装
🎯 成功基準(DoD)
1️⃣ 凍結EXE確定
ビルド・動作確認
hako-frozen-v1.exeビルド成功(Linux/macOS/Windows)- 170 PASS維持(quick-selfhost)
- AOT導線動作確認(MIR JSON→.o→EXE)
タグ付け・配布
- Git tag作成(
v1.0.0-frozen) - 配布物生成(
hako-frozen-v1-linux-x64.tar.gz等) - README/LICENSE同梱
- SHA256チェックサム生成
配布先
releases/
├── v1.0.0-frozen/
│ ├── hako-frozen-v1-linux-x64.tar.gz
│ ├── hako-frozen-v1-macos-arm64.tar.gz
│ ├── hako-frozen-v1-windows-x64.zip
│ ├── SHA256SUMS.txt
│ └── INSTALL.md
2️⃣ Rust層最小化
目標
現状: 99,406行(Phase 15.75開始時)
↓
削減: 89.5%
↓
目標: 100-200行(VM実行エンジンのみ)
段階的削減計画
// Week 1-2: Parser削除(凍結EXE内のみ残す)
src/front/parser_layer/ ❌ 削除(凍結EXE経由)
src/front/ast/ ❌ 削除(MIR直接生成へ)
// Week 3-4: MIR Builder削除(Hakorune実装へ)
src/backend/mir_builder/ ❌ 削除(Hakorune実装使用)
// 残すもの(100-200行)
src/backend/mir_interpreter/ ✅ 残す(VM実行エンジン)
src/runtime/ffi/ ✅ 残す(extern_c基盤)
src/main.rs ✅ 残す(エントリーポイント)
3️⃣ 単一パーサ体制確立
Hakoruneパーサーをデフォルトへ
apps/selfhost-compiler/をデフォルト呼び出し- Rustパーサーは凍結EXE内のみ(緊急時用)
- スモークテスト全緑(Hakoruneパーサー使用)
2重メンテ回避
Before(Phase 15.76以前):
├── Rustパーサー(開発中)
└── Hakoruneパーサー(開発中)← 2重メンテ地獄
After(Phase 15.77):
├── Rustパーサー(凍結、緊急時のみ)
└── Hakoruneパーサー(開発中)← 単一開発ライン
4️⃣ ドキュメント整備
使用ガイド
docs/guides/frozen-toolchain-usage.md- 凍結EXE使用方法docs/guides/rust-minimization.md- Rust最小化手順INSTALL.md- 配布物インストールガイド
運用マニュアル
- 凍結EXEへの戻り方
- トラブルシューティング
- FAQ(よくある質問)
📊 週次計画(Week 1-6)
Week 1(2025-11-09 - 11-15)凍結EXE作成
目標: hako-frozen-v1.exe ビルド・動作確認
タスク
- Phase 15.76の成果物確認(extern_c/AOT導線)
- ビルド設定整備(Cargo.toml, build.rs)
- クロスコンパイル設定(Linux/macOS/Windows)
- 動作確認(quick-selfhost 170 PASS)
成果物
./hako-frozen-v1 --version
# Hakorune v1.0.0-frozen (2025-11-15)
./hako-frozen-v1 program.hako
# OK (VM実行)
./hako-frozen-v1 --backend llvm program.hako
# OK (LLVM AOT)
Week 2(2025-11-16 - 11-22)タグ付け・配布物生成
目標: Git tag作成・配布物公開
タスク
- Git tag作成(
v1.0.0-frozen) - 配布物生成スクリプト作成
- SHA256チェックサム生成
- INSTALL.md作成
成果物
releases/v1.0.0-frozen/
├── hako-frozen-v1-linux-x64.tar.gz (12MB)
├── hako-frozen-v1-macos-arm64.tar.gz (10MB)
├── hako-frozen-v1-windows-x64.zip (15MB)
├── SHA256SUMS.txt
└── INSTALL.md
Week 3(2025-11-23 - 11-29)Rust Parser削除
目標: Parser削除、凍結EXE経由に切り替え
タスク
src/front/parser_layer/削除準備- 凍結EXE経由のParser呼び出し実装
- AST→MIR直接生成経路確立
- スモークテスト修正(Parser経路変更)
削減予想
Before: 99,406行
After: ~50,000行(Parser削除、約50%削減)
Week 4(2025-11-30 - 12-06)MIR Builder削除準備
目標: MIR Builder Hakorune実装へ移行開始
タスク
apps/selfhost-compiler/mir_builder/検証- Rust MIR Builder削除可能性確認
- ブリッジ層実装(Hakorune→Rust)
- 並行動作確認(Rust/Hakorune両方)
削減予想
Before: ~50,000行
After: ~5,000行(MIR Builder削除、約90%削減)
Week 5(2025-12-07 - 12-13)Hakoruneパーサー移行
目標: Hakoruneパーサーをデフォルトへ
タスク
apps/selfhost-compiler/をデフォルト呼び出し- Rustパーサーを緊急時用に格下げ
- スモークテスト全緑確認(Hakorune使用)
- パフォーマンス計測(Rust vs Hakorune)
期待結果
# デフォルト: Hakoruneパーサー
./hako program.hako # Hakorune経由
# 緊急時: Rustパーサー(凍結EXE内)
./hako --fallback-rust-parser program.hako # Rust経由
Week 6(2025-12-14 - 12-20)ドキュメント・レビュー
目標: ドキュメント整備・統合テスト
タスク
- 凍結EXE使用ガイド作成
- Rust最小化手順書作成
- トラブルシューティングFAQ作成
- 統合テスト(quick-selfhost 全緑)
- ChatGPT/Claudeレビュー
成果物
docs/guides/
├── frozen-toolchain-usage.md # 使用方法
├── rust-minimization.md # 最小化手順
└── frozen-toolchain-faq.md # FAQ
docs/private/roadmap/phases/phase-15.77/
├── README.md # Phase概要
├── MILESTONE.md # ゴールライン
├── RUST_MINIMIZATION_PLAN.md # 最小化計画
└── COMPLETION_REPORT.md # 完了報告
❌ Out of Scope(このフェーズではやらない)
完全なRust削除
- VM実行エンジンは残す(100-200行)
- 理由: VM安定性・パフォーマンス
Hakoruneパーサー完全実装
- 段階的移行(並行動作期間あり)
- 理由: 安全な移行を優先
プロダクション配布
- まだ実験段階(v1.0.0-frozen)
- 理由: Phase 15.78以降で安定化
Windows完全サポート
- Linux/macOS優先
- 理由: 開発環境がLinux/WSL中心
🚀 次のフェーズ(Phase 15.78〜)
Phase 15.78: Hakoruneパーサー完全実装
- 全構文サポート(macro/async/await等)
- Rustパーサーとの完全パリティ
- パフォーマンス最適化
Phase 15.79: 完全な脱Rust
- VM実行エンジンもHakorune実装へ
- Rust層完全削除(0行)
- Pure Hakorune達成
Phase 15.80: プロダクション化
- v2.0.0リリース
- 安定性・セキュリティ監査
- 公式配布開始
⚠️ リスク & 対策
リスク1: 凍結EXEのサイズ
問題: 静的リンクで15MB超の可能性 対策: 動的リンク検討、圧縮配布
リスク2: クロスコンパイル失敗
問題: Windows/macOSビルドが難しい 対策: Linux優先、他環境は次フェーズ
リスク3: Rust削除時の不安定化
問題: 削除作業でテスト失敗増加 対策: 段階的削除、各段階でテスト確認
リスク4: Hakoruneパーサーの未熟
問題: Rustパーサーと完全パリティ未達 対策: 並行動作期間を長く取る、Rustフォールバック維持
📚 関連リソース
前フェーズ
論文資料
業界標準パターン
- Rust: stage0(凍結ツールチェーン)
- Go: Go 1.4 frozen(bootstrap用)
- OCaml: ocamlc frozen(自己ホスト用)
💬 開発体制
実装担当
- ChatGPT: Rust削除・Hakorune実装主導
- Claude: レビュー・ドキュメント整備
- tomoaki: 戦略判断・方向決定
レビュー方針
- 各Week終了時にレビュー
- 170 PASS維持を最優先
- 問題発生時は即座に凍結EXEへロールバック
作成日: 2025-10-14 Phase開始予定: 2025-11-09(Phase 15.76完了後) 想定期間: 6週間