Gate‑C(Core) OOB strict fail‑fast; String VM handler normalization; JSON lint Stage‑B root fixes via scanner field boxing and BinOp operand slotify; docs + smokes update
This commit is contained in:
@ -56,6 +56,7 @@ Quick profile opt‑in switches (smokes)
|
||||
- `SMOKES_ENABLE_LOOP_COMPARE=1` — Direct↔Bridge parity for loops (sum/break/continue/nested/mixed)
|
||||
- `SMOKES_ENABLE_LOOP_BRIDGE=1` — Bridge(JSON v0) loop canaries (quiet; last numeric extraction)
|
||||
- `SMOKES_ENABLE_STAGEB_OOB=1` — Stage‑B OOB observation (array/map)
|
||||
- `SMOKES_ENABLE_OOB_STRICT=1` — Gate‑C(Core) strict OOB fail‑fast canary (`gate_c_oob_strict_fail_vm.sh`)
|
||||
- `SMOKES_ENABLE_LLVM_SELF_PARAM=1` — LLVM instruction boxes self‑param builder tests (const/binop/compare/branch/jump/ret)
|
||||
|
||||
Deprecations
|
||||
@ -77,6 +78,12 @@ Diagnostics (stable tags)
|
||||
- `[core/mir_call] unsupported callee type: Closure`
|
||||
- Gate‑C Direct では、リーダー/検証レイヤの診断をそのまま用いる(例: `unsupported callee type (expected Extern): ModuleFunction`)。
|
||||
|
||||
Strict OOB policy (Gate‑C)
|
||||
- Enable `HAKO_OOB_STRICT=1` (alias: `NYASH_OOB_STRICT`) to tag Array OOB as stable strings
|
||||
(`[oob/array/get]…`, `[oob/array/set]…`).
|
||||
- With `HAKO_OOB_STRICT_FAIL=1` (alias: `NYASH_OOB_STRICT_FAIL`), Gate‑C(Core) exits non‑zero
|
||||
if any OOB was observed during execution (no need to parse stdout in tests).
|
||||
|
||||
Exit code differences
|
||||
- Core: 数値=rc(OS仕様により 0–255 に丸められる。例: 777 → rc=9)、エラーは非0
|
||||
- Direct: 数値出力のみ(rc=0)、エラーは非0
|
||||
|
||||
Reference in New Issue
Block a user