feat(phase21.5): MirBuilder optimization prep + crate EXE infrastructure
Phase 21.5 optimization readiness - C-level performance target: - MirBuilder: JsonFrag purify toggle (HAKO_MIR_BUILDER_JSONFRAG_PURIFY=1) - Normalizer: extended f64 canonicalization + dedupe improvements - loop_opts_adapter: JsonFrag path refinement for crate EXE compatibility Infrastructure improvements: - provider_registry: add diagnostics + ring-1 providers (array/console/map/path) - mir_interpreter: add normalization/purify feature gates - tools/selfhost_exe_stageb.sh: new end-to-end Stage-B→crate EXE pipeline - tools/perf/microbench.sh: performance measurement tooling Smoke tests (phase2100): - Extend timeout 15s→120s for heavy crate EXE builds - Add stageb_loop_jsonfrag_crate_exe_canary_vm.sh (target test) - Add s3_backend_selector_crate_exe_vm_parity_return42_canary_vm.sh Documentation: - ENV_VARS.md: add Phase 21.5 optimization toggles - README updates: clarify crate backend strategy - phase215-optimization.md: new optimization roadmap This commit sets the stage for Phase 21.5 critical optimization: achieving C-level performance to decide hakorune's future viability.
This commit is contained in:
@ -206,3 +206,17 @@ VM/AOT fast-path toggles (bench/dev only)
|
||||
- Enables AOT lowering tweaks in ny-llvmc (opt-in, benches only):
|
||||
- StringBox.length/size lowered to extern helper returning i64 (no boxing)
|
||||
- Default OFF. Guarded in ny-llvmc; legacy lowering remains default.
|
||||
|
||||
MirBuilder toggles (trace and JsonFrag)
|
||||
- `HAKO_MIR_BUILDER_TRACE=0|1` (default: 0)
|
||||
- When 1, emits concise builder tags like `[mirbuilder/internal/*]` from Hako lowers. Errors remain visible regardless; this flag controls informational tags.
|
||||
- `HAKO_MIR_BUILDER_LOOP_JSONFRAG=0|1` (default: 0)
|
||||
- Enable JsonFrag minimal MIR assembly in loop adapters/lowers (structure observation only).
|
||||
- `HAKO_MIR_BUILDER_JSONFRAG_NORMALIZE=0|1` (default: 0)
|
||||
- Normalize JsonFrag output for stable canaries (const grouping, phi placement, numeric canonicalization).
|
||||
- `HAKO_MIR_BUILDER_LOOP_RETURN=string|map` (default: string)
|
||||
- Controls the return type of the loop adapter JsonFrag path. `string` returns MIR(JSON) text; `map` returns a `MapBox` like `{ mir: <string> }`.
|
||||
|
||||
Provider diagnostics
|
||||
- `HAKO_PROVIDER_TRACE=0|1` (default: 0)
|
||||
- When 1, forces provider selection tags like `[provider/select:FileBox ring=1 src=static]` to appear even under `NYASH_JSON_ONLY=1`.
|
||||
|
||||
Reference in New Issue
Block a user