Port is_consuming_inst (regex.ha:553-555), delete_thread (ha:547-551) and add_thread (ha:557-587) per the tranche-B scope (drew §9b). D12 chained-|| spells the multi-type is (parity task #13); D9 index loops replace the &.. ranges (#11); the dedup-scan bound reads .len, not the len() builtin (FB1, #41 — len(*p) loads the data pointer as the length). add_thread's capture/rep_counter dup is loud-bounded per the rob-ratified ruling: every ww route into the dup is blocked at HEAD (#35 spread source, #34 element source, #7 element let-copy), and fold-2a compile() cannot emit inst_groupstart/inst_repeat, so both parent slices are provably empty in every reachable program; the verbatim dup lands with the group/repeat fold (#3). run_thread (B4) stays out: its loop condition passes the 56B inst by value from a slice-element source, gated on the #38b extension (#40, in flight). Fixture cases 15-17 drive the three fns directly (package regex): all-10-kind consuming table, delete at middle/last/0-to-empty, dedup suppress/strict-</matched-guard + inheritance + zeroed headers. Byte-cmp on the regenerated combined holds the FC0-only baseline; both drivers run the fixture green.
19 KiB
19 KiB