Skip to content

Stop-line repair: dissolve TargetModel.token_class_emit_transforms fn-values into a declared TokenClassEmitTransform coproduct - #9808

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
repair/token-class-emit-transform
Aug 31, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
repair/token-class-emit-transform

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Stop-line repair for obligation 3 (#9710 post-merge qualification): the 13 open identities PH's x86 chain introduced at hop19 all hang off TargetModel.token_class_emit_transforms: Map<Symbol, fn(String) -> String> — a function-valued field in a serialized, compared, emitted carrier. This PR dissolves it into a declared data coproduct, per the model's own render-closure precedent (the rendering is declared rows, not a function value).

MergeAcceptanceCensus evidence (7 points)

1. Consumers — the 13 published identities, all of them. Roster: #9710 comment 5476687306 (sha256 df5d42dad933…). Membership join stated below; this PR targets exactly that set.

2. Causal producer on main: v2.std.compilers.target_model TargetModel.token_class_emit_transforms (fn-valued map field), effective on the board since the hop19 emitted one-line field-type correction (47a5ae2) made the arrow realization chain reach it — NewlyExposedByEarlierRepair, 0/15 rows on parent a6d6c68's 213-row board.

3. Same-identity removal, by identity. xl0b34 validation cycle at exact head 6b06de448a3, identity key (file,line,col,code,message), baseline = xl0b31 landed-main board (173 rows): REMOVED 19, ADDED 6, HEAD 160. The 19 removals = the 13 targeted identities (target_model.rs 317:35, 317:53, 322:38, 322:5 E0277-Debug, 322:5 E0369, 351:34, 718:161, 728:161 + languages_dag.rs 1362:34, 1651:34, 2946:34, 2955:34, 3280:34) + 6 line-relocations of pre-existing untargeted rows (2567→2607, 3967→4007, 642→669, 709:48→736:48, 7185:90→7225:90, 7942→7982 — identical col/code/message, shifted +27/+40 lines by the inserted type declarations). The 6 ADDED rows are exactly those relocation partners, 1:1, no other additions.

4. Repair provenance per removal: producer target_model.token_class_emit_transforms; repair commits 1506d657e53 (coproduct dissolution + producer conversion) and 6b06de448a3 (structural string_replace, removing the interpreter's host-builtin call). PH reruns from hop14 with this PR as the closure provenance; the 6 relocations re-key under a relocation disposition (same identity class, line shift only).

5. No new unadmitted identity. ADDED = the 6 relocation partners only. An intermediate cut (xl0b33) briefly introduced 2 rows at 739:85 from the interpreter calling the host replace builtin; commit 6b06de448a3 removed them by realizing replacement structurally (split-then-join in v2.std.text) — final board carries zero new-class rows.

6. Byte-converged and green at exact head: xl0b34 on 6b06de448a3: byte fixed point at round 1, PATCHBYTES 0 (the repair touches only the v2/dag corpus; no stage0 mirror change), 602/602 lib tests, witness batteries 43/43 + 14/14 + 20/20, and all five CI checks SUCCESS on this head.

7. No unrelated residue — per-file causal justification:

  • std/compilers/target_model.dag — the producer: coproduct + interpreter at the two lookup sites.
  • extdeps/formats/sql_target.dag, sql_create_table_fold.dag, extdeps/languages/gha_workflow_yaml_fold.dag, bash.dag, bash_command_fold.dag, verilog.dag, rust_test_fixtures.dag — the seven producers of fn-valued transform maps feeding the dissolved field; each converted to coproduct rows (compile-broken otherwise). Dead sql_kind_emit_transform (zero consumers) deleted as part of the same dissolution.
  • dag/extdeps/posix/shell_command_language.dag — the POSIX single-quote encoding cited by bash's transform: delimiter/escape become data rows so the encoding stays single-homed (bash's row and posix_single_quote both derive; §3 forbids re-spelling it in the bash row).
  • std/text.dag + test/std_text/carrier_claims_test.dag — string_join/string_replace (structural, no host builtin) required by census point 5, plus the two discriminating tests that are their executing evidence.
  • Nothing from XL-0 residual: nested shared-field refutation lives in the guard, not an unreachable prelude #9803/XL-0N residue: refusals carry the BinOp coproduct, the Nat fork gets a stall row, prose leaves the data plane #9794/T/PH rides along.

arm64/x86 membership reconciliation (manager condition 1)

PH's published x86 13 ⊂ my arm64 introduced-at-hop19 15 exactly, 13/13 at (file,line,col,code) grain. My 2 extra rows (v2_std_integer.rs 1356:25, 1514:23 E0308) are present on the x86 171 board too — the delta is hop-attribution grain (my instrument is a coarse b14-vs-b19 diff spanning burned hops 15–18), not membership. They are text-family, outside this repair's scope, and remain with XL-0T's family.

Merges OUTSIDE the XL-0 hold as the sole census exception per the side-chat ruling.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GXfYKNQTD3VfYyQcnJpxNU

gunbc-ci-auto-heal and others added 2 commits August 31, 2026 10:09
…lared TokenClassEmitTransform coproduct

The Map<Symbol, fn(String) -> String> field carried function values into a
serialized, compared, emitted carrier — the 13 identities opened at hop19
(serde/Debug/PartialEq on dyn Fn, E0308 at every producer construction site)
are that field's unportability surfacing in the mirror. Same dissolution the
render closure field underwent: the rendering is declared rows, not a
function value.

- target_model.dag: TokenClassEmitTransform = EmitSpellingIdentity |
  EmitSpellingConstant | EmitSpellingWrap | EmitSpellingQuote{escapes};
  apply_emit_spelling_transform interprets the coproduct at the two lookup
  sites; escapes apply in list order.
- POSIX single-quote encoding stays single-homed: delimiter and escape
  encoding become data rows in extdeps.posix.shell_command_language;
  posix_single_quote and bash's transform row both derive from them.
- Producers converted to rows: sql_target, sql_create_table_fold,
  gha_workflow_yaml_fold, bash, bash_command_fold, verilog,
  rust_test_fixtures. Dead sql_kind_emit_transform deleted.
- bash_single_quote_spaced / rust_string_literal_spelling survive as
  derivations of the same rows their emit maps carry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GXfYKNQTD3VfYyQcnJpxNU
… reaching the host replace builtin

The interpreter's escape fold called the v1 host replace, which has no v2-text
realization in the emitted mirror — 2 new E0308 rows at the call site. Replacement
is split-then-join over the same nonempty-needle carrier string_split already
uses, purely structural, plus two discriminating tests in the enrolled text
battery. Empty-from escape rows pass through with the ceiling and climb trigger
annotated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GXfYKNQTD3VfYyQcnJpxNU
@gunbai-bot gunbai-bot Bot changed the title XL-0 Stop-line repair: dissolve TargetModel.token_class_emit_transforms fn-values into a declared TokenClassEmitTransform coproduct Aug 31, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 31, 2026 11:31
@gunbai-bot
gunbai-bot Bot merged commit 9c34ed7 into main Aug 31, 2026
5 checks passed
@gunbai-bot
gunbai-bot Bot deleted the repair/token-class-emit-transform branch August 31, 2026 11:38
@briansrls
briansrls restored the repair/token-class-emit-transform branch August 31, 2026 11:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants