1cc663f494e255c571d4ddc11783b32420582faf
The exact F2b c1 set (rob next-arc spec + B5 re-rule): node_tuplearg:249, fld_issigned:409, castsrcprim:501/:531, struct_float_class:598, tagged_arg_size:640, tagged_memarg_size:661, type_isnullable:740, nullable_ptr_tag:750, cg_tagged_success_tag:860, cg_variant_is_error:876, cg_tag_for_variant:899, type_istagged:953, type_unwrap:1269 + the widen/ fill funnel entries cg_widen_tagged_store:2456/:2480/:2483, cg_widen_tagged_push:2905, cg_structlit_fill:3195. Raw `->under` in cgen.c 88→69. Riding per re-rule R1: peel-ok-#218 annotations at cg_variant_match/cg_variant_struct_match (citing ken's b5 oracle §4 — chasing those four peels graduates zero v2_struct rows; the real fix is a both-stage NAMED-source arm, task #95) and the :755 peel-ok annotation mirroring ww cgenutil.ww:2758 (probe-cleared,018ef66). :447 untouched (c2's grant). TRAIN INVARIANT: cs-only — zero selfhost/ or lib/ bytes move; w6c_ww/ ww_ww/w6a_ww/w6l_ww bit-identical to thebcd948dbaselines (md5 28ad889042bad8006f1997cbcec94805 / 4e9ca8741f19e1f68219ff799a5e5a14). cs movers bounded to exactly: kb5_targ, kb5_tmem, kb5_wpush, kb5_null, kb5_f32p, kb5_fill2, kb5_tuparg_c; five selfhost mains + the rest of the kb2/kb3/kb4/kb5/kna corpus byte-NEUTRAL both stages. LIVE graduations: kb5_targ (tagged_arg_size sized a 2-level alias union param 0 → wrong arg path, cs silent exit 1) and kb5_tmem (>48B memarg twin) → 0/0 byte-id. Divergence flips to byte-id: wpush/null/f32p. #85 CLOSES as SITE-CLOSURE with ZERO live graduations: type_unwrap's two consumers (:14716/:14907, both tuple-global layout walks that want the chased view) are checker-DEAD on cs for alias tuples (#86 upstream) — correctness there is by-construction, pinned by tupglobal_bound86. DESIGNED DIVERGENCE (re-rule R4, task #100): the :3195 chase flips kb5_fill2 from both-wrong-IDENTICAL-silent (gate-blind, both stages accepted and ran wrong byte-identically) to cs-LOUD / ww-silent-wrong. A loud, disclosed, pinned divergence over a silent miscompile; rejected programs emit no asm so the byte-id gates hold. Dual-cell pin (fill2_bound100): cs experr + ww run-exit-1 both asserted; fill0 both-loud control holds. #100 (the ww twin gate) fires immediately after B5 so the window is one train wide. Oracle corrections at the c1 boundary (ken c1-BOUNDARY ADDENDUM, verified on his independent scratch build; rob ack'd, scope unchanged): C1-CORR-1: kb5_succ does NOT flip here — its residual divergence is exactly three paired return-position tag syntheses, the cgreturn return-route family (:12278/:12318/:12322). Joins c3's graduation set; pinned succ_bound_c3 K_RUN_NOID until then. C1-CORR-2 (corrects re-rule R2): kb5_wstore_a does NOT flip — the ident-lhs N_ASSIGN tagged store gates in the cgexpr INLINE set (B6), never reaching the :2456 funnel; cs byte-neutral here. Pinned wstore_a_bound_b6 K_RUN_NOID; byte-id rides B6. C1-CORR-3 (corrects re-rule R3 + ken FLAG-2): the :249 chase is NOT purely latent — the CAST spelling (kb5_tuparg_c) earned a LIVE cs graduation (cs ok/1 → ok/0, correct tuple-arg classify); ww still runs wrong (task #99). Two-key pin tuparg_cast_bound99: cs-0 earned + ww-1 pinned observed-wrong; byte-id re-pins to full 0/0 when #99's ww fix lands. New 944_alias_cgen_b5_run row table (16 rows, 40 checks): controls signed/wstore/wstore1 byte-NEUTRAL as predicted (kind-keyed tests are the only behavior-visible peels — type.c classifiers already recurse); literal tuparg spellings stay dual-cell bounds (#99/#86). All 944-family suites green; sizelint 0.
wcc/check: #62 typedecl layout is decl-order-INDEPENDENT — demand-resolve forward refs + loud cycle guard (#69)
Description
No description provided
Languages
C
89.4%
Python
7.2%
Makefile
2.3%
Shell
0.8%
Assembly
0.3%