Files
hakorune/docs/private/roadmap/phases/phase-20.12/PLAN.md

1.8 KiB
Raw Blame History

Plan — Phase 20.12 (AOT/VM Optimization)

ステップ

  1. AOT 前処理AotPrepBox

    • JSON 正規化(冗長キー削除・定型化)
    • 安全な定数畳み込みconst/binop/ret の単一ブロックのみ)— inplace 置換へ拡張
    • リンクフラグ生成OS別既定・-no-pie/-Wl,--whole-archive 等)
    • ゲート: HAKO_AOT_PREP=1, HAKO_AOT_PREP_LANG=1dev/quick 既定ON。CI/integration は OFF から段階移行。
  2. VM ホットパスVMHotPathBox

    • メソッドマップの事前構築・キャッシュ
    • ハンドル/Box の再利用・割付の抑制
    • 成果の可視化短文ログ、既定OFF
    • ゲート: HAKO_VM_FAST_PATH=1
  3. ベンチ & スモーク整備

    • EXE: 単純ループ・関数呼び出し・配列走査C 基準 0.60.8× 目標)
      • subtract ベースラインret0 EXE+ 固定N net 推定
      • inprocess ベンチwarmup→計測のみを代表に
    • VM : 同等のマイクロベンチPython 基準 ±20% 目標)
    • 既存スモークの緑維持SKIPポリシーは不変
  4. ドキュメント

    • getting-started.md: AOT レシピの dist 形状手順を補強
    • c-abi-aot.md: 最適化ゲートと観測方法(短文)
    • env-variables.md: HAKO_AOT_PREP, HAKO_AOT_PREP_LANG の既定と昇格条件を明記

運用BoxFirst

  • 最適化は箱でカプセル化戻せる・観測できる・FailFast
  • 入口は AotBox を維持、内部実装はゲートで選択(構造の一貫性)

デフォルト化の受け入れ条件AOT 前処理)

  • dev/quick: 代表スモークemit-exe MIR 保存、固定N 代表ベンチ)緑、短文安定。
  • integration-core: VM/LLVM parity 維持、AOT ベンチ中央値が既定レンジ内。