Files
hakorune/docs/private/roadmap/phases/phase-20.5/INDEX_JA.md

10 KiB
Raw Blame History

Phase 20.5 — 索引(日本語版)

脱Rust大作戦: Gate方式による段階的実装

状態: 実行中Gate A 安定化・Gate B 着手) 期間: 6-8週間 (2025-12-21 - 2026-02-中旬)


📚 ドキュメント構造

核心ドキュメント

  1. PLAN.md 実行中の計画書(英語)

    • 5行サマリー / 最小命令セット / DoD
    • Gate A〜EParser→MIR→VM PoC→op_eq→統合
    • テスト/CI/リスク/次ステップ
  2. README.md 全体概要(日本語)

    • フェーズ概要とゴール
    • 週次計画Week 1-6
    • 成功基準とDoD
    • Hakorune VM発見による更新版
  3. HAKORUNE_VM_DISCOVERY.md 重大発見レポート(英語)

    • Hakorune VM完全実装の発見3,413行、22ハンドラー
    • アーキテクチャ解析
    • Phase 20.5戦略の変更36週間→6週間
  4. STRATEGY_RECONCILIATION.md - 戦略比較

    • C Code Generator vs Pure Hakorune Strategy
    • リスク評価、信頼度評価
    • Pure Hakorune戦略採用の理由
  5. PURE_HAKORUNE_ROADMAP.md - 全体ロードマップ

    • Phase 20.5-20.8の計画36週間
    • 6フェーズ構成Phase A-F
    • Golden Testing戦略

🎯 クイックリファレンス5行サマリー

  1. Goal目標: 脱Rust。凍結EXEを土台に自己ホストへ前進。
  2. Strategy戦略: Gate方式Parser→MIR→VM PoC→op_eq→統合
  3. Boundary境界: C-ABI/HostBridgeのみ外部境界。中はEverything is Box。
  4. Proof証明: 決定性JSON正規化、Golden固定点で検証。
  5. Policy方針: 小さく、順序よく、SKIPはWARN、回帰のみFAIL。

📊 Phase 20.5のGate構成進捗

Gate A安定: Parser v1Hakorune製→ Canonical AST JSON
  ├─ DoD: ~10ケース PASS、非決定性ゼロ、キーソート
  ├─ CLI: --dump-ast-json, --emit-ast-json
  └─ Smoke: 9件追加済みquick-selfhost

Gate B進行中: MIR Builder v1最小16命令
  ├─ DoD: 16命令到達可能、ゴールデンJSON一致
  └─ 追加スモークconst+ret, add+ret, eq+branch, lt+branch, binop-mul, compare-ge

補足(安定化トピック — 反映済み)
- Router 表駆動String/Map/Array の最小ルート)を builtin/plugin 双方で共有し、ENV 導線を `env_gate_box` へ集約。
- Plugin strict`HAKO_PLUGIN_POLICY=force`)の FailFast を `env_gate_box::plugin_policy_force()` で単一起点化。
- MIR ビルダーのエントリ Copy 配置を PHI→pin Copy→本体へ固定化usebeforedef 抑止)。
- DCE の used_values() に Method(receiver) を含める経路を単体テストで固定(直線/分岐/ループ)。
- Optimizer で `nyrt.string.*` family を Extern に固定Extern→Method への巻き戻し抑止)。
- quick-selfhost に `mir_builder_binop_mul_vm` / `mir_builder_compare_ge_vm` を追加し、Mul/Ge など残りの命令を網羅。

Gate Cその次: VM Foundations PoC5命令 via HostBridge
  ├─ 命令: const, binop, compare, jump, ret
  ├─ HostBridge経由で実行
  └─ DoD: シンプルなプログラムend-to-end実行

Gate Dその次: op_eq Migration下準備
  ├─ NoOperatorGuard + 8型
  └─ 5-8ゴールデンケース

Gate E最後: Integration & Docs
  ├─ E2E 10ケース PASS
  └─ ドキュメント完備

🎯 主要成果物

1 Parser canonical JSONGate A

  • Hakorune製Parserが決定的AST JSON出力
  • キー辞書順ソート、非決定性排除
  • v1==v2==v3検証の土台

2 MIR Builder v1Gate B

  • 最小16命令サポート
  • MIR JSON正規化
  • Rust MIR Builder vs Hakorune MIR Builder比較

3 VM Foundations PoCGate C

  • 5命令のみconst/binop/compare/jump/ret
  • HostBridge経由で実行
  • Full Hakorune VMselfhost/hakorune-vm/)への橋渡し

4 Full Hakorune VM統合Gate C+

  • 既存実装3,413行、22ハンドラー
  • HostBridge経由で実行可能に
  • Rust VM vs Hakorune VM Golden Testing

🔄 全体フロー

【Phase 20.5実装フロー】

Week 1-2: Gate A/BChatGPT主導
  ├─ Parser canonical JSON実装
  ├─ MIR Builder v1実装
  └─ MirIoBox.normalize()統合

Week 3-4: Gate CChatGPT + Claude協調
  ├─ VM Foundations PoC5命令
  ├─ HostBridge設計・実装
  └─ Full Hakorune VM統合準備

Week 5: Full VM統合両者協調
  ├─ 5命令PoC → 22命令Full VM拡張
  ├─ selfhost/hakorune-vm/ 統合
  └─ HostBridge経由実行確認

Week 6: Gate D/EClaude主導
  ├─ op_eq Migration
  ├─ Golden TestingRust-VM vs Hako-VM
  └─ CLI統合--backend vm-hako

Week 7-8: Integration & Docs
  ├─ E2E 10ケース
  ├─ ドキュメント整備
  └─ CI minimal green

🧪 テスト戦略

テストピラミッド

         /\
        /  \    Level 3: Self-Compilation1テスト、遅い
       /____\   - v1が自分自身をコンパイル → v2
      /      \  - v2が自分自身をコンパイル → v3
     /        \ - 検証: v2 == v3
    /__________\
   /            \ Level 2: 包括的10テスト、中速
  /              \ - if/else、ループ、関数、Box、配列
 /________________\
/                  \ Level 1: スモークテスト43+テスト、高速)
                     - 各MIR命令
                     - 基本パース
                     - JSON正規化

📦 ディレクトリ構造

Phase 20.5計画:
docs/private/roadmap/phases/phase-20.5/
├── INDEX_JA.md                       # ← このファイル(日本語版)
├── INDEX.md                          # 英語版索引
├── README.md                         # Phase概要日本語
├── PLAN.md                           # Gate実行計画英語
├── HAKORUNE_VM_DISCOVERY.md          # VM発見レポート英語
├── STRATEGY_RECONCILIATION.md        # 戦略比較(英語)
└── PURE_HAKORUNE_ROADMAP.md          # 全体ロードマップ(英語)

実装:
selfhost/hakorune-vm/                 # Full Hakorune VM既存
├── hakorune_vm_core.hako             # VM実行ループ
├── instruction_dispatcher.hako       # @match dispatch
├── *_handler.hako                    # 22ハンドラー
└── tests/*.hako                      # 26+テスト

selfhost/shared/mir/
└── mir_io_box.hako                   # MIR JSON I/Otomoaki作

selfhost/shared/json/
└── json_canonical_box.hako           # JSON正規化ChatGPT追加

🎯 成功基準サマリー

技術的基準

  • Gate A: Parser canonical JSON~10ケースPASS
  • Gate B: MIR Builder v116命令到達可能
  • Gate C: VM PoC5命令end-to-end実行
  • Gate C+: Full Hakorune VM統合22ハンドラー
  • Gate D: op_eq Migration5-8ゴールデンPASS
  • Gate E: 統合テストE2E 10ケースPASS

パフォーマンス

  • VM PoC実行時間: 測定可能
  • Full VM性能: Rust VM比≥50%
  • メモリ使用量: < 100MB

品質

  • ドキュメント完備(日本語+英語)
  • コードモジュール性Box-based
  • エッジケース網羅
  • レビュー承認ChatGPT + Claude

📚 関連フェーズ

前フェーズ

次フェーズ

  • Phase 20.6 - Rust完全削除
    • VM executor → Hakorune実装
    • Rustコードベース → 0行
    • Pure Hakorune自己ホスト

💬 開発体制

実装担当

  • tomoaki: Hakorune VM実装完了selfhost/hakorune-vm/、MirIoBox設計
  • ChatGPT: Gate A/B/C実装Parser → MIR Builder → VM PoC
  • Claude: Full VM統合、Golden Testing、ドキュメント整備

レビュー方針

  • 各Week終了時: Self-review + スモークテスト
  • Week 4, 6: Full reviewChatGPT + Claude
  • ブロッキング問題: 即座にエスカレーション

🔗 外部リソース

業界事例

論文


📝 命名規則

Stage命名

  • Stage 1: Rustコンパイラ、凍結EXE (hako-frozen-v1)
  • Stage 2: Hakoruneコンパイラ v1 (bootstrap_v1)
  • Stage 3: Hakoruneコンパイラ v2 (bootstrap_v2)
  • Fixed Point: v2 == v3自己一貫性

ファイル命名

  • テスト出力: test_v1.json, test_v2.json
  • Bootstrap出力: bootstrap_v2.c, bootstrap_v3.c
  • 常にバージョン接尾辞を含める

検証

  • 完全一致比較: diff
  • ハッシュチェック: md5sum
  • 自動化: tools/verify_bootstrap_chain.sh

🌟 重要ポイント

Hakorune VM発見の意義

  • 36週間→6週間に短縮83%削減)
  • 実装完了: 3,413行、22ハンドラー、26+テスト
  • 検証・統合に集中: 実装ではなく、動作確認とGolden Testing

Gate方式の利点

  • 段階的進行: 各Gateは独立してテスト可能
  • ロールバック容易: 問題発生時は前Gateに戻れる
  • 進捗可視化: Gate完了=具体的マイルストーン

Pure Hakorune戦略

  • "Rust=floor, Hakorune=house": Rust最小化HostBridgeのみ
  • 単一実行パス: Hakorune VMのみ
  • 究極のBox理論: VMもBoxで実装

作成日: 2025-10-14 最終更新: 2025-10-14 状態: Gate A実装中 次回レビュー: Week 2終了時Gate B完了後