Files
hakorune/docs/private/roadmap/phases/phase-20.14/INDEX.md

7.5 KiB
Raw Blame History

Phase 20.14 — 脱Rust最終段階フロントエンド完全統合

🎯 目的

Phase 20.13で確立したScript-built EXE基盤を活用し、Rust依存の最終的削減を実現する。

具体的目標

  1. Runner/Loader/VMフロントエンドをHakoruneスクリプトEXEで完全置換
  2. Rustカーネルを最小限CABIレイヤーのみに縮小
  3. Single EXE デプロイメントの完成
  4. Hakorune Native実行環境の確立

📋 現状分析 (Phase 20.13 からの移行)

Phase 20.13 の成果(現状確定)

  • Script-built EXEインフラゲート: runner_front / loader_front / vm_frontscript 経路)
  • OK/NOOP/FAIL の短文契約 と採用adoptロジックRunner=CliGroups、Loader=ENV、VM=stdout
  • Strictモード開発者向け: 未知キーの FailFastrunner 既定、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: CABIカーネル整備
  • 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

// 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)
    }
}

CABI カーネル仕様(草案・提案)

// 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依存がCABIカーネルのみ (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. デバッグ: 統合デバッグパイプライン + 詳細ログ

📚 関連ドキュメント

親フェーズ

技術資料


🚀 開始手順

環境準備(現行ゲート)

# フロント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

エントリー実行(例)

# ランナーを 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 - Phase 20.13からの移行詳細(本書は提案/ドラフト。ゲート配下で段階導入)

📊 詳細分析

🎯 今後の展開

  • Phase 20.15: Core削減強化 (75%削減目標) → ../phase-20.15/
  • Phase 20.16: 究極的最小化 (93%削減目標) → ../phase-20.16/
  • Phase 20.17: Full SelfHostingSpec/ABI Freeze v1../phase-20.17/

開発開始: 2025-10-27
完了予定: 2025-11-24
担当: Claude/Human協調開発