339 lines
9.4 KiB
Markdown
339 lines
9.4 KiB
Markdown
# Phase 15.77 - 凍結EXE確定フェーズ
|
||
|
||
**期間**: 2025-11-09 - 2025-12-20(6週間)
|
||
**状態**: 🔜 Phase 15.76完了後開始
|
||
|
||
---
|
||
|
||
## 🎯 このフェーズで実現すること
|
||
|
||
**凍結EXE(hako-frozen-v1.exe)確定 + Rust層最小化**
|
||
|
||
1. **凍結EXE作成**: hako-frozen-v1.exe ビルド・タグ付け・配布
|
||
2. **Rust層最小化**: 99,406行 → 100-200行(VM実行エンジンのみ)
|
||
3. **単一パーサ体制**: Hakoruneパーサーのみ開発(Rust凍結)
|
||
4. **安全な試行錯誤**: いつでも凍結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実行エンジンのみ)
|
||
```
|
||
|
||
#### 段階的削減計画
|
||
```rust
|
||
// 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)
|
||
|
||
#### 成果物
|
||
```bash
|
||
./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)
|
||
|
||
#### 期待結果
|
||
```bash
|
||
# デフォルト: 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フォールバック維持
|
||
|
||
---
|
||
|
||
## 📚 関連リソース
|
||
|
||
### 前フェーズ
|
||
- [Phase 15.76 - extern_c & Frozen Toolchain](../phase-15.76/)
|
||
- [Phase 15.75 - 脱Rust大作戦](../phase-15.75/)
|
||
|
||
### 論文資料
|
||
- [Rapid Self-Hosting Paper](../../../../private/papers-active/rapid-selfhost-ai-collaboration/)
|
||
- [Frozen Toolchain Pattern Evidence](../../../../private/papers-active/rapid-selfhost-ai-collaboration/03_DATA_ANALYSIS.md)
|
||
|
||
### 業界標準パターン
|
||
- **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週間
|