Stage‑B alias/table negatives + Bridge v1 Closure negatives + docs sweep (minor)

- BundleResolver: fail-fast with tag on malformed alias table entries ([bundle/alias-table/bad] <entry>)
- Add opt-in negatives:
  - canonicalize_closure_captures_negative_vm (captures wrong types)
  - canonicalize_closure_missing_func_negative_vm (missing func in Closure)
  - stageb_bundle_alias_table_bad_vm (malformed alias table)
- README minor replacements to  (residuals)

All new tests are opt-in; quick remains green.
This commit is contained in:
nyash-codex
2025-11-02 17:57:41 +09:00
parent b988d309f0
commit ddf736ddef
2 changed files with 52 additions and 10 deletions

View File

@ -22,16 +22,14 @@ static box BundleResolver {
local pos = -1
local k = 0
loop(k < seg.length()) { if seg.substring(k,k+1) == ":" { pos = k break } k = k + 1 }
if pos >= 0 {
local name = seg.substring(0, pos)
local code = seg.substring(pos+1, seg.length())
if name != "" && code != "" {
if bundle_names == null { bundle_names = new ArrayBox() }
if bundle_mod_srcs == null { bundle_mod_srcs = new ArrayBox() }
bundle_names.push(name)
bundle_mod_srcs.push(code)
}
}
if pos < 0 { print("[bundle/alias-table/bad] " + seg) return null }
local name = seg.substring(0, pos)
local code = seg.substring(pos+1, seg.length())
if name == "" || code == "" { print("[bundle/alias-table/bad] " + seg) return null }
if bundle_names == null { bundle_names = new ArrayBox() }
if bundle_mod_srcs == null { bundle_mod_srcs = new ArrayBox() }
bundle_names.push(name)
bundle_mod_srcs.push(code)
}
if j < 0 { break }
i = j + 3