# Phase 20.14 — 脱Rust最終段階:フロントエンド完全統合 ## 🎯 目的 Phase 20.13で確立したScript-built EXE基盤を活用し、**Rust依存の最終的削減**を実現する。 ### 具体的目標 1. **Runner/Loader/VMフロントエンドをHakoruneスクリプトEXEで完全置換** 2. **Rustカーネルを最小限(C‑ABIレイヤーのみ)に縮小** 3. **Single EXE デプロイメントの完成** 4. **Hakorune Native実行環境の確立** --- ## 📋 現状分析 (Phase 20.13 からの移行) ### Phase 20.13 の成果(現状確定) - ✅ **Script-built EXEインフラ(ゲート)**: runner_front / loader_front / vm_front(script 経路) - ✅ **OK/NOOP/FAIL の短文契約** と採用(adopt)ロジック(Runner=CliGroups、Loader=ENV、VM=stdout) - ✅ **Strictモード(開発者向け)**: 未知キーの Fail‑Fast(runner 既定、loader/vm は HAKO_FRONT_STRICT=1) - ✅ **One Binary 方針の確立**: 将来は内蔵AOTへ集約、現状はゲートで切替(script↔lang) ### Phase 20.14 での発展(提案・段階導入) - 🔥 **Rust層の段階的削減**(フロントエンド中心。カーネルは維持) - 🔥 **Lang内蔵(AOT)フロントの導入**: 既定OFFゲートで順次切替(script→lang) - 🔥 **Single EXE 体験を保ったままの移行**(外部置換は開発用途に限定) --- ## 🏗️ アーキテクチャ設計 ### 最終目標アーキテクチャ(方針) ``` ┌─────────────────────────────────────┐ │ Hakorune EXE (Native) │ │ ┌─────────────┬─────────────────┐ │ │ │ Front-end │ Kernel │ │ │ │ (Hakorune) │ (C-ABI) │ │ │ │ ┌─────────┐ │ ┌─────────────┐ │ │ │ │ │ Runner │ │ │ Memory │ │ │ │ │ │ Loader │ │ │ FFI │ │ │ │ │ │ VM │ │ │ Diagnostics│ │ │ │ │ │ Linker │ │ │ OS Interface│ │ │ │ │ └─────────┘ │ └─────────────┘ │ │ │ └─────────────┴─────────────────┘ │ └─────────────────────────────────────┘ ``` ### Phase遷移マップ | Phase | Rust依存度 | Hakorune化 | 状態 | |------|-----------|-----------|------| | 20.12 | 85% | Frontendスクリプト化 | ✅完了 | | 20.13 | 50% | Frontend EXE化 | ✅完了 | | **20.14** | **低減** | **Frontend統合を段階導入** | 🎯提案 | | 20.15 | 5% | カーネル最小化 | 予定 | --- ## 📅 実行計画 (4週間) ### Week 1: Frontend統合強化 - **P0**: Runner_front実装強化 (Phase 20.13継承) - **P1**: Loader_frontポリシー拡充 - **P2**: VM_front軽量化最適化 - **P3**: 統合テストインフラ構築 ### Week 2: Rust層削減第一段階(提案・既定OFF) - **P0**: Parserレイヤーの移行検討(既定OFFのゲートで試験。既存挙動は維持) - **P1**: MIR Builder依存削減 - **P2**: Plugin Manager移行 - **P3**: エラーハンドリング統合 ### Week 3: Native実行環境確立 - **P0**: C‑ABIカーネル整備 - **P1**: Memory Manager統合 - **P2**: FFI Binding最適化 - **P3**: OS Interface抽象化 ### Week 4: Single EXE完成 - **P0**: Full Integration Testing - **P1**: Performance Validation - **P2**: Deployment Pipeline - **P3**: Documentation Complete --- ## 🔧 技術仕様 ### Frontend EXE 仕様(概念・.hako) ```hako // runner_front.hako - 統合エントリーポイント(概念スケッチ) static box RunnerFront { config: ConfigBox policy: PolicyBox execute(args: ArrayBox) { // Phase 20.13から継承・強化 local mode = me.policy.detect_mode(args) return me.dispatch(mode, args) } } ``` ### C‑ABI カーネル仕様(草案・提案) ```c // hakorune_kernel.h - 最小限のCインターフェース typedef struct { void* memory_base; void* ffi_table; void* diagnostics; } hakorune_kernel_t; // 4つの核関数のみ hakorune_kernel_t* hakorune_init(); int hakorune_execute(hakorune_kernel_t*, const char* script); void* hakorune_alloc(hakorune_kernel_t*, size_t size); void hakorune_cleanup(hakorune_kernel_t*); ``` --- ## 🎯 成功基準(Phase 20.14) ### 機能的成功 - ✅ **Frontend EXE群がすべてHakoruneで実装** - ✅ **Rust依存がC‑ABIカーネルのみ (target <10,000 LOC)** - ✅ **Single EXEで完結 (外部DLL不要)** ### 性能的成功 - ✅ **Phase 20.12 性能維持 (±10%)** - ✅ **起動時間 < 100ms (Cold Start)** - ✅ **メモリ使用量 < 50MB (Base Execution)** ### 品質的成功 - ✅ **Quick smokes 100% PASS** - ✅ **Integration tests 95%+ PASS** - ✅ **Zero critical bugs in production** --- ## 🔍 リスク管理 ### 主要リスク(現状の制約を考慮) 1. **Performance Regression**: Frontend EXE化のオーバーヘッド 2. **Compatibility Issues**: 既存スクリプトとの互換性 3. **Debugging Complexity**: 多層化のデバッグ困難 ### 緩和策 1. **性能**: リグレッションテスト + 最適化バッファ 2. **互換性**: 後方互換レイヤー + 段階的移行 3. **デバッグ**: 統合デバッグパイプライン + 詳細ログ --- ## 📚 関連ドキュメント ### 親フェーズ - [Phase 20.13 README](../phase-20.13/README.md) - Script-built EXE基盤 - [Phase 20.12b README](../phase-20.12b/README.md) - スクリプト化基盤 ### 技術資料 - [Front-end Overview Guide](../../../guides/tools/front-exe-overview.md) - [C-ABI Kernel Specification](../../../reference/c-abi-kernel.md) - [Performance Benchmarks](../../../development/performance/phase-20-benchmarks.md) --- ## 🚀 開始手順 ### 環境準備(現行ゲート) ```bash # フロント(script)経路の確認(開発用) SMOKES_ENABLE_FRONT_EXE=1 tools/smokes/v2/run.sh --profile quick --filter 'front_.*_vm\.sh$' # Lang内蔵(AOT)ゲートの有効化(現行はプレースホルダ挙動) export HAKO_RUNNER_USE_LANG_EXE=1 export HAKO_LOADER_USE_LANG_EXE=1 export HAKO_VM_USE_LANG_EXE=1 ``` ### エントリー実行(例) ```bash # ランナーを lang 内蔵frontに切替して通常実行(標準的な .hako ファイル) HAKO_RUNNER_USE_LANG_EXE=1 ./target/release/hakorune examples/hello.hako # Script front と連携(OKペイロード注入) HAKO_RUNNER_USE_SCRIPT_EXE=1 HAKO_RUNNER_FRONT_FORCE=ok \ HAKO_RUNNER_FRONT_PAYLOAD='{"stdout":"adopt","backend":"vm"}' \ ./target/release/hakorune examples/hello.hako ``` --- ## 📚 関連ドキュメント ### 📋 移行計画 - [TRANSITION_PLAN.md](TRANSITION_PLAN.md) - Phase 20.13からの移行詳細(本書は提案/ドラフト。ゲート配下で段階導入) ### 📊 詳細分析 - [RUST_MINIMIZATION_ANALYSIS.md](RUST_MINIMIZATION_ANALYSIS.md) - 統計的分析と削減ポテンシャル ### 🎯 今後の展開 - **Phase 20.15**: Core削減強化 (75%削減目標) → `../phase-20.15/` - **Phase 20.16**: 究極的最小化 (93%削減目標) → `../phase-20.16/` - **Phase 20.17**: Full Self‑Hosting(Spec/ABI Freeze v1) → `../phase-20.17/` --- **開発開始**: 2025-10-27 **完了予定**: 2025-11-24 **担当**: Claude/Human協調開発