Files
hakorune/docs/private/roadmap/phases/00_MASTER_ROADMAP.md

19 KiB
Raw Blame History

🚀 Hakorune開発マスタープラン

Status: Active Development Last Updated: 2025-10-06 Purpose: Claude×Copilot×ChatGPT×Gemini協調開発の総合ロードマップ

📍 現在位置

  • 現在フェーズ: Phase 19 - @enum/@match Macros (Choice A'')
  • 進捗: Day 1/14 完了 (7%) → Day 2 進行中 🔄
  • 期間: 2-3 weeks (9-14 days)
  • 次フェーズ: Phase 19 完了 → Mini-VM Migration (with @match)
  • 備考: Pattern matching for selfhost compiler ("ガチガチ大作戦")

最新完了: Day 1 - @enum Parser Extension (2025-10-08)


🗺️ フェーズ概要

完了済みフェーズPhase 1-14

Phase 状態 概要 詳細リンク
1-7 完了 言語設計・パーサー・基本機能実装 -
8.4 完了 AST→MIR Lowering完全実装 phase_8_4_ast_mir_lowering.md
8.5 完了 MIRダイエット35→26→15命令 phase_8_5_mir_35_to_26_reduction.md
8.6 完了 VM性能改善0.9倍→2倍以上 phase_8_6_vm_performance_improvement.md
9 完了 プラグインシステム基盤 phase-9/
9.75g-0 完了 BID-FFI Plugin System Phase-9.75g-0-BID-FFI-Developer-Guide.md
10 📋計画 Cranelift JIT主経路、将来検討 phase_10_cranelift_jit_backend.md
11 完了 LLVM統合・AOT実装 phase-11/
11.8 📋計画 MIR整理Core-15→Core-13 phase-11.8_mir_cleanup/
12 完了 TypeBox統合ABI phase-12/
13 📋計画 Hakoruneブラウザー革命 phase-13/
14 📋計画 パッケージング・CI改善 phase-14/

🔥 Phase 15系: セルフホスティング実現(進行中)

Phase 15: セルフホスティング基盤

  • 概要: Hakoruneコンパイラ・Hakorune VM実装の総合計画
  • 詳細: phase-15/

Phase 15.5: JSON v0中心化・統一Call基盤革命 (2025-09 完了)

  • 概要: セルフホスティング前の基盤アーキテクチャ大改革
  • 成果:
    • Core Box統一
    • MIR命令安定化
    • LLVM PHI安定化
    • 型変換統一化
  • 詳細: phase-15.5/README.md

🔥 Phase 15.7: セルフホスティング実現への道筋 - Hakoruneコンパイラ完成計画 (進行中)

  • 期間: 2025-09-28 ~ 2025-10-20予想
  • 進捗: 85-90%完成残り10-15%、1-2週間
  • 目標: Hakorune言語で Hakorune をコンパイル・実行する
  • 詳細: phase-15.7/README.md

First GoalM1 — Bootstrap

  • Hakorune コンパイラーapps/selfhost-compiler/compiler.hakoを Hakorune でビルドし、LLVM で EXE 化
  • 受け入れ: build_llvm.sh で EXE 生成 → -- --min-json 実行で JSON ヘッダ非空
  • スモーク: selfhost_bootstrap_llvm.shquick/selfhost、既定SKIP

完了済み85-90%:

  • P2-A/B/CUsing解決系完全実装
    • UsingResolverBox実装1日で完了、見積もり7日 → 85%短縮!
    • NamespaceBox実装1日で完了、見積もり5日 → 80%短縮!
    • Pipeline V2統合1日で完了、見積もり3日 → 67%短縮!
  • SignatureVerifier/MethodRegistry品質強化
  • Hakorune VM基盤InstructionScannerBox/OpHandlersBox/ProgramStateBox等
  • FlowRunner/JsonProgramBox
  • Pipeline V2基礎実装
  • Quick smokes 常緑172/172 PASS
  • TimerBox実装完了
  • Hakorune VM への改名完了Mini-VM → Hakorune VM

残り10-15%1-2週間:

  • 🔥 Hakorune VM命令拡張最後の砦
    • newbox2日・最重要今ココ!
    • boxcall2日・最重要
    • phi2日
    • load/store2日
    • externcall1日
  • 🔲 セルフホストループE2E1週間

教訓Lessons Learned:

  1. Box-First設計の威力: 新機能追加が予想の9倍速
  2. 見積もりの精度: 初期見積もりは慎重すぎた
  3. 並行開発の難しさ: 実際は順次開発が正解
  4. 品質ファーストの重要性: 計画外の成果が大きい

Phase 15.8: LLVM→WASM実装 (2025-10-01~10-22 完了)

  • 概要: MIR16命令をWASMに変換、ブラウザ/エッジ環境で実行可能に
  • 成果: WebAssembly完全対応
  • 詳細: phase-15.8/README.md

Phase 15.9: VmConfig集約化 (2025-10-05 完了)

  • 概要: 環境変数42ファイル散在→1箇所集約
  • 成果: パフォーマンス向上、管理性改善
  • コミット: f1874b3b

Phase 15.10: Legacy Code大掃除 (2025-10-05 完了)

  • 概要: 2大ファイル→8小ファイル分割
  • 成果: デッドコード470行削除、純削減400行
  • コミット: 43679766, f6cbbf48, f1f3b83e
  • 詳細: legacy.rs分割calls:617行 + boxes:518行

Phase 15.11: StringHelpers共通ライブラリ箱化 (2025-10-05 完了)

  • 概要: セルフホストコード重複削減
  • 成果: 14ファイル統合で335行純削減
  • 詳細:
    • Phase 15.11: 319行削減 (380削除 - 61追加)
    • Phase 15.11.1: 15行削減 (22削除 - 7追加) - ChatGPT協力
    • 合計削減: 335行
    • 重複削除: 7種類のヘルパー関数を統合
  • コミット: 6ba6b026 (本体), d07f3af3 (追加統合), 0de80fa6 (docs)

📋 Phase 15.12候補: index_of_from統一

  • 概要: index_of_from → CfgNavigatorBox統合
  • 見込み: 60-100行削減
  • 詳細: docs/development/proposals/ideas/improvements/phase-15-12-index-of-from-consolidation.md

🌟 Phase 16-20系: マクロシステム(計画・一部完了)

Phase 16: マクロ革命Rust実装版 (2025-09-19 完了、バグあり)

  • 状態: Rust実装完了、バグ発見により暫定対応中
  • 成果:
    • AST Pattern Matching実装
    • Quote/Unquote実装
    • Match式構文実装
    • @derive(Equals, ToString)実装
    • @test ランナー実装
  • 問題: フル機能にバグあり
  • 暫定対応: .hakoで単純置き換えマクロ実装中(apps/macros/
  • 詳細: phase-16-macro-revolution/README.md

🔥 Phase 19: @enum/@match Macros (Choice A'') (2025-10-08~ 進行中)

  • 状態: 進行中Day 1 → Day 2 🔄
  • 進捗: Day 1/14 (7% complete)
  • 期間: 2-3 weeks (9-14 days)
  • 戦略: Macro-Only Approach (NO VariantBox Core)
  • 目標: Pattern matching for selfhost compiler
  • Day 1 完了内容 (2025-10-08):
    • TokenType::AT 追加(@ 文字認識)
    • AST拡張EnumVariant struct + ASTNode::EnumDeclaration
    • enum_parser.rs 実装150行
    • パーサー統合完了
    • テスト実行成功(@enum Result/Option パース成功)
  • Day 2 予定 (2025-10-09):
    • 🔄 enum_expander.rs 作成
    • 🔄 EnumDeclaration → Box 変換実装
    • 🔄 静的コンストラクタ生成
    • 🔄 ヘルパーメソッド生成is_/as_
  • 成果目標:
    • @enum macro implementation (Week 1)
    • @match macro implementation (Week 2-3)
    • Option/Result @enum version
    • 3-5 Mini-VM files migrated to @match
  • Out of Scope: VariantBox Core, EnumSchemaBox, SymbolBox (→ Phase 20+)
  • 詳細: phase-19-enum-match/README.md
  • ユーザー意図: "ガチガチ大作戦" - 中途半端half-baked回避

📋 Phase 20: Advanced Enum Features (Post-Selfhost)

  • 状態: 計画中Phase 19 完了後)
  • 目的: VariantBox Core + 高度な enum 機能実装

Phase 20.X: VariantBox + enum/match 完全実装 (18-27人日)

  • Phase 20.6: VariantBox Core3-5人日← Phase 19 から延期
  • Phase 20.7: @enum マクロ拡張VariantBox 版5-7人日
  • Phase 20.8: @match マクロ拡張高度パターン7-10人日
  • Phase 20.9: Option/Result 移行3-5人日

延期された機能Phase 19 から):

  • VariantBox Core 実装
  • EnumSchemaBox
  • SymbolBoxタグ最適化
  • コンパイル時網羅性チェック
  • 高度パターン(ガード、リテラル、ネスト)

Phase 20.0-20.5: マクロフル機能Hakorune実装版

  • 状態: 計画中(セルフホスティング完了後に開始)
  • 目的: Phase 16のRust実装をHakoruneでセルフホスト実装に書き直す
  • 優先機能:
    1. @derive(Equals, ToString) - 最も便利
    2. @test ランナー - セルフホストコードのテスト自動化
    3. AST Pattern Matching - 複雑なマクロ基盤
    4. Quote/Unquote - テンプレート生成
  • 詳細: phase-20-macro-full-features/README.md
  • 移行ガイド: phase-20-macro-full-features/MIGRATION.md

Phase 20 内優先順位:

Phase 20.0-20.3マクロ基盤derivetest← 🔴 P1最優先
    ↓
Phase 20.6-20.9VariantBox← 🟢 P2推奨
    ↓
Phase 20.4-20.5Pattern/Quote← 🟡 P3必要時
    ↓
Python統合Plan B← 🔵 P4長期計画

🌟 Phase 17以降将来計画

Phase 状態 概要 詳細リンク
17 🧪計画中 LoopForm SelfHostingHakorune VM phase-17-loopform-selfhost/
17+ 💡候補 Rust所有権統合オプショナル rust-ownership-fusion
22 💡構想 Hakorune LLVM Compiler phase-22/README.md

🎯 Hakorune実行モード併用戦略

🌟 インタープリター+コンパイラ併用の価値

実行モード使い分け

開発時: Rust VMデバッグ・即時実行
本番時: Rust VMPythonのように実用的
        OR
        WASM/AOT性能要求時
配布時: AOT native最高性能
Web時:  WASMブラウザ対応

インタープリターの強み

  • 即時実行: コンパイル不要で高速開発
  • デバッグ容易: 実行時情報の完全把握
  • 非同期完全対応: Rust async/awaitで真の並行処理
  • 動的性: 実行時評価・REPL対応
  • 十分な性能: 多くのユースケースで実用的Pythonが証明

🚀 Phase 15.7詳細: セルフホスティング実現への道筋

🎯 Phase 15.7の真の目的

「Hakorune で Hakorune をコンパイルする」完全なセルフホスティングの実現

🔄 セルフホストループの具体的4ステップ

┌──────────────────────────────────────┐
│ Step 1: .hako ソース解析             │
│    ↓                                  │
│ Step 2: MIR JSON生成コンパイラ   │
│    ↓                                  │
│ Step 3: MIR JSON実行Hakorune VM  │
│    ↓                                  │
│ Step 4: 出力検証(パリティテスト)    │
└──────────────────────────────────────┘

📅 推奨実装順序

Week 1-2: Hakoruneコンパイラ MVP完成P2優先 完了!

  • Day 1-2: branch/jump最小生成
  • Day 3: LocalSSA.ensure_cond最終化
  • Day 4-7: UsingResolverBox実装
  • Day 8-10: NamespaceBox実装
  • Day 11-14: Pipeline V2統合using解決

Week 3: Hakorune VM命令拡張最優先 🔥 今ココ!

  • Day 1-2: newbox実装Box生成
  • Day 3-4: boxcall + phi 並行実装
  • Day 5-6: load/store + externcall 並行実装
  • Day 7: 統合テスト・スモークテスト

Week 4: セルフホストループE2E

  • Day 1-2: .hakoソース→MIR JSON生成確認
  • Day 3-4: MIR JSON→Hakorune VM実行確認
  • Day 5-6: パリティテストRust VM vs Hakorune VM
  • Day 7: ブートストラップ達成!🎉

📊 実装優先度マトリックス2025-10-06更新

項目 優先度 ステータス 理由 見積 実績 担当領域
branch/jump生成 🔴 P2 完了 制御フロー必須 2日 2日 コンパイラ
LocalSSA.ensure_cond 🔴 P2 完了 条件分岐安定化 1日 1日 コンパイラ
UsingResolverBox実装 🔴 P2-A 完了 using解決の核心 1週間 1日 コンパイラ
NamespaceBox実装 🔴 P2-B 完了 名前空間解決 5日 1日 コンパイラ
Pipeline V2統合using 🔴 P2-C 完了 using→MIR変換 3日 1日 コンパイラ
SignatureVerifier - 完了 計画外追加 - 1日 コンパイラ
MethodRegistry拡大 - 完了 計画外追加 - 1日 コンパイラ
JsonCursorBox採用 - 完了 計画外追加 - 1日 共通
Hakorune VM改名 - 完了 ブランディング統一 - 1日 Hakorune VM
Hakorune VM newbox実装 🟡 P1-A 🔥最優先 Box生成最重要 2日 未着手 Hakorune VM
Hakorune VM boxcall実装 🟡 P1-B 🔥未着手 メソッド呼び出し 2日 未着手 Hakorune VM
Hakorune VM phi実装 🟡 P1-C 📝計画 SSA合流 2日 未着手 Hakorune VM
Hakorune VM load/store実装 🟡 P1-D 📝計画 メモリアクセス 2日 未着手 Hakorune VM
Hakorune VM externcall実装 🟡 P1-E 📝計画 print等外部呼び出し 1日 未着手 Hakorune VM
match式完全対応 🟡 P1-F 📝計画 頻繁に使用 2日 未着手 コンパイラ
Hakorune VM unaryop/typeop 🟢 P3-A 📝計画 単項演算・型操作 2日 未着手 Hakorune VM
最適化パス 🟢 P3-B 📝計画 性能向上 1週間 未着手 コンパイラ
エラーハンドリング 🟢 P3-C 📝計画 UX向上 3日 未着手 コンパイラ

凡例:

  • 🔴 P2: 最優先(セルフホスティング必須)
  • 🟡 P1: 高優先度(基本機能実装)
  • 🟢 P3: 中優先度改善・UX向上
  • 完了 / 🔥最優先 / 🔥未着手 / 📝計画 / 予想より早い達成

達成状況:

  • P2系完全達成コンパイラー側using解決・品質強化
  • 🔥 P1系が最優先Hakorune VM命令拡張残り10-15%

🎯 達成基準(明確な終了条件)

Phase 15.7完了 = 以下すべて満たす:

  1. UsingResolverBox/NamespaceBox動作
  2. Hakorune VM 14命令すべて実装
  3. .hakoソース→MIR JSON→Hakorune VM実行成功
  4. c0Rustコンパイラ→c1Hakoruneコンパイラ動作
  5. c1→c1'(自己コンパイル)成功
  6. Quick smokes 全PASS維持

📊 Phase 15系の全体進捗

Phase 15系全体進捗: ████████████░ 85-90%完成

完了済み:
✅ Phase 15: セルフホスティング基盤設計
✅ Phase 15.5: JSON v0中心化・統一Call基盤革命
✅ Phase 15.8: LLVM→WASM実装
✅ Phase 15.9: VmConfig集約化
✅ Phase 15.10: Legacy Code大掃除
✅ Phase 15.11: StringHelpers共通ライブラリ箱化
🔥 Phase 15.7: セルフホスティング実現85-90%、残り1-2週間

次のステップ:
1. Hakorune VM命令拡張newbox/boxcall/phi/load/store/externcall
2. セルフホストループE2E検証
3. ブートストラップ達成!🎉

🏗️ 重要な設計原則

🧱 Box-First原則: 「箱理論」で足場を積む

Hakoruneは「Everything is Box」。実装・最適化・検証のすべてを「箱」で分離・固定し、いつでも戻せる足場を積み木のように重ねる。

実践テンプレート(開発時の合言葉)

  • 「箱にする」: 設定・状態・橋渡しはBox化例: JitConfigBox, HandleRegistry
  • 「境界を作る」: 変換は境界1箇所でVMValue↔JitValue, Handle↔Arc
  • 「戻せる」: フラグ・feature・env/Boxで切替。panic→フォールバック経路を常設
  • 「見える化」: ダンプ/JSON/DOTで可視化、回帰テストを最小構成で先に入れる
  • 「Fail-Fast」: エラーは隠さず即座に失敗。フォールバックより明示的エラー

🏗️ Everything is Box

  • すべての値がBoxStringBox, IntegerBox, BoolBox等
  • ユーザー定義Box: box ClassName { field1: TypeBox field2: TypeBox }
  • MIR凍結セット: 16命令で全機能実現

🎓 重要な教訓Lessons Learned

Phase 15.7からの学び

  1. Box-First設計の威力

    • 新機能追加が予想の9倍速で完了
    • UsingResolver/Namespace実装は1日ずつで完了見積もり18日 → 実績2日
    • Pipeline V2の強固な設計が成功の鍵
  2. 見積もりの精度

    • 初期見積もりは慎重すぎた
    • コンパイラー側: 見積もり18日 → 実績2日
    • 基盤の成熟度を過小評価していた
  3. 並行開発の難しさ

    • 実際は順次開発が正解
    • Using解決がモジュールシステムの基盤
    • コンパイラー完成 → Hakorune VM拡張の順が合理的
  4. 品質ファーストの重要性

    • 計画外の成果が大きい
    • SignatureVerifier/MethodRegistry/JsonCursorBox
    • Fail-Fast文化の確立が開発速度を加速

📞 連絡・相談方法

技術的相談や進捗報告は、以下の方法でお気軽にどうぞ:

  1. 📝 GitHub Issues・Pull Request
  2. 📋 docs/CURRENT_TASK.md コメント
  3. 🤖 AI大会議 (重要な技術決定)
  4. 💬 コミットメッセージでの進捗共有

どんな小さなことでも相談大歓迎です! 一緒にHakoruneを最高の言語にしていきましょう🚀


最終更新: 2025-10-06 (Phase 15.7進捗反映・名前統一) 作成者: Claude (全面書き直し・Phase 15系統合)

🎯 重要な変更点

  • Phase 15系全面追加15.5/15.7/15.8/15.9/15.10/15.11
  • 🔄 現在位置更新Phase 12 → Phase 15.7
  • 📊 進捗率明確化85-90%完成、残り10-15%
  • 🎯 セルフホスティング予定明確化
  • 📚 教訓・Lessons Learned追加
  • 🏗️ Box-First原則明記