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.
45 lines
1.5 KiB
Plaintext
45 lines
1.5 KiB
Plaintext
// builder_config_box.hako — Centralized env/toggles for MirBuilder
|
|
// Purpose: avoid scattered env.get calls. All HAKO_MIR_BUILDER_* toggles are read here.
|
|
|
|
static box BuilderConfigBox {
|
|
// Generic on/off reader for HAKO_MIR_BUILDER_* flags
|
|
_is_on(key) {
|
|
local v = env.get(key)
|
|
if v == null { return 0 }
|
|
local s = "" + v
|
|
if s == "1" || s == "true" || s == "on" { return 1 }
|
|
return 0
|
|
}
|
|
|
|
// Trace controls
|
|
trace_enabled() { return self._is_on("HAKO_MIR_BUILDER_TRACE") }
|
|
debug_enabled() { return self._is_on("HAKO_MIR_BUILDER_DEBUG") || self._is_on("NYASH_CLI_VERBOSE") }
|
|
|
|
// Registry and internal lowers
|
|
internal_on() {
|
|
local v = env.get("HAKO_MIR_BUILDER_INTERNAL")
|
|
// default ON
|
|
return (v == null) || ("" + v == "1")
|
|
}
|
|
registry_on() {
|
|
local v = env.get("HAKO_MIR_BUILDER_REGISTRY")
|
|
// default ON
|
|
return (v == null) || ("" + v == "1")
|
|
}
|
|
registry_only() { return env.get("HAKO_MIR_BUILDER_REGISTRY_ONLY") }
|
|
|
|
// Loop/JsonFrag related
|
|
loop_jsonfrag_on() { return self._is_on("HAKO_MIR_BUILDER_LOOP_JSONFRAG") }
|
|
jsonfrag_normalize_on() { return self._is_on("HAKO_MIR_BUILDER_JSONFRAG_NORMALIZE") }
|
|
skip_loops_on() { return self._is_on("HAKO_MIR_BUILDER_SKIP_LOOPS") }
|
|
|
|
// Return-mode for loop adapter: "string" (default) | "map"
|
|
loop_adapter_return_mode() {
|
|
local m = env.get("HAKO_MIR_BUILDER_LOOP_RETURN")
|
|
if m == null { return "string" }
|
|
local s = "" + m
|
|
if s == "string" { return "string" }
|
|
return "map"
|
|
}
|
|
}
|