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

35 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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=1`dev/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 ベンチ中央値が既定レンジ内。