Skip to content

Row 3 (root K): emitter-attested use-line for anonymous record-literal heads — materialization_carriers 51 → 49 - #8528

Merged
briansrls merged 2 commits into
mainfrom
session/swift-moth-294
Aug 19, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/swift-moth-294

Conversation

@briansrls

@briansrls briansrls commented Aug 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Vertical-integrator lane (swift-moth-294, node adhoc-497a24aa-140): first Row-3 packet on the materialization_carriers error board.

Mechanism. reference_derived_use_lines synthesizes a use-line only for candidates the module's authored source text attests. An anonymous record literal (retention: { release_policy: …, capacity: … } in extdeps.realization.compile_stage_memo / parse_table_memo) gets its head from the emitter (ProviderRetention { .. }), a name the authored source structurally cannot spell — so the gate refused exactly the candidate the emitted bytes need, and rustc reported E0422 on a head the emitter itself wrote.

Fix. Third attestation arm collect_anonymous_record_lit_heads (src/v1/05_emit_rust.dag): admits a candidate only when it is a head the emitter will render for an anonymous record literal in this module's items, computed by the proposer's own tn-Absent decision chain (emit_inferred_type_leaf_name when the summary is known, else anonymous_record_lit_surface_name). This is not a widened text gate: the deep inferred/type-summary over-collection route (the AuthoredTokenOrdinal fabrication receipt) stays refused, and the registry-resolve, transitive export-proof, kernel, local-decl and already-imported walls are unchanged. Gate note corrected in place.

Stage0 splice, exact hunks only. v1_compiler_emit_rust.rs is regenerated for exactly this change. A fresh whole-src/v1 emit also restores three other lanes' content the committed seed is missing (#8466's trait_bound_witness wiring, #8460's callable-wrap, the function-value lowering #8516 restores) — deliberately not carried here (ratified by smart-ram-730): three lanes of unrelated restored content would make this span delta unattributable. That drift is routed to its owners.

Measurement — one instrument, one base, composition grain

Instrument identical to #8460/#8490 (gunbc compile → cssl_assemble → cargo build --release --lib, CSSL_STD_SEED_LINK=1), executed remotely with binaries built beside the measurement, both arms at main b2dd729f92:

BEFORE: E0308 20 · E0277 16 · E0599 3 · E0425 3 · E0422 2 · E0369 2 · E0282 2 · E0061 2 · E0560 1 = 51
AFTER:  E0308 20 · E0277 16 · E0599 3 · E0425 3 ·           E0369 2 · E0282 2 · E0061 2 · E0560 1 = 49

E0422 → 0 (both sites now import through pub use crate::std_cache_interface::{ProviderRetention};); no other row moved. Note: this base's composition differs from #8490's receipt at dd9c2307 (two different 51s exist; flagged to the coordinating session) — full receipt in docs/probes/materialization_carriers_row3_use_line_2026-08-19.md.

Declared residue (not silently absorbed): Row 3's three E0425 NonEmptyStr sites did not move. A companion signature-leaf attestation arm was built, measured at zero effect, and removed before this PR — the signature's top-level leaf is the already-imported CacheInterfaceId; the NonEmptyStr spelling comes from a deeper alias-peel inside render_rust_fn_sig_type. That trio is the next packet, root-caused at the renderer.

Test plan

  • Witness dag/test/claim/anonymous_record_head_use_line_witness_test.dag: fixture references ProviderRetention only through an anonymous argument-position literal; asserts the synthesized use-line + emitted head, with a negative over-collection assertion. Executed green through the real pipeline on the fixed tree (w_anonymous_record_head_gets_use_line → true); red direction evidenced by the pre-fix baseline bytes (use-line absent at the same construction).
  • Whole-src/v1 regen route verified: the spliced file matches the fresh emit of the edited authority at exactly these hunks (offsets shift −5 from drift hunks not carried).
  • Remote cargo build of the assembled probe crate before/after, exit/histogram as above.

🤖 Generated with Claude Code

…l heads — materialization_carriers 51 -> 49

The authored-source attestation gate refused exactly the candidate an
anonymous record literal's emitter-decided head needs (compile_stage_memo /
parse_table_memo 'retention: {..}' renders 'ProviderRetention { .. }' with
no import — E0422 x2). Third attestation arm collect_anonymous_record_lit_heads
admits only heads the emitter will render for anonymous literals, via the
proposer's own tn-Absent decision chain; registry/export-proof/kernel/
local-decl/already-imported walls unchanged. Stage0 projection spliced at
exactly these hunks; surrounding committed-seed drift (three other lanes'
regen content) deliberately not carried.

Measured on one instrument, one base (main b2dd729), remote, binaries
built beside the measurement: 51 -> 49 with the full composition unchanged
outside the E0422 row. E0425 NonEmptyStr trio is declared residue (alias-peel
in signature rendering), next packet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 19, 2026 06:37
@gunbai-bot gunbai-bot Bot changed the title Vertical integrator: sole write ownership of 05_emit_rust.dag / trait_derive_emit.dag + their stage0 projections; take one root packet at a time, flip consumer, regenerate, re-measure 51 -> N Row 3 (root K): emitter-attested use-line for anonymous record-literal heads — materialization_carriers 51 → 49 Aug 19, 2026
@gunbai-bot
gunbai-bot Bot force-pushed the session/swift-moth-294 branch from fce0b6d to 9e49bb8 Compare August 19, 2026 07:10
… floor BUDGET-REFUSE)

The witness passed but cost 61.7s CPU against the 1552ms floor budget (run
32226586721, BUDGET-REFUSED, floor exit 1): its fixture imported the real
std.cache_interface and paid that module's whole import closure. The mechanism
under test — an anonymous record literal whose head the emitter decides and must
import — needs only a provider module with a record type reached solely through
an anonymous literal, so the fixture now targets a new importless three-type
module test.fixture.anonhead_provider. The live corpus specimens stay pinned by
the board receipt, not by this witness (witness-cost-derives-from-purpose ruling).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant