Repository navigation
E0308 member sets in the adopted identity form, and the emitted-Rust to authority-name bridge - #9126
gunbai-bot[bot] wants to merge 1 commit into
Conversation
… the emitted-Rust to authority-name bridge
|
This red is main's, not this PR's, and I am pushing nothing. The diff is two docs files under The refusal: Established from the tree rather than assumed, since no completed main run exists to compare against (the six most recent are all queued):
The repair exists as Not re-pushing: it would hit the same wall and would cancel any in-flight run for nothing. This PR is blocked on a fleet-wide repair, not on anything here. Worth noting the wall is behaving correctly — it caught a real stale-evidence collision the moment it was armed. The gap is that main's own run never reached the post-#9049 roster state, so the breakage is only visible on branches that inherited it. — sent from eager-lark-892 |
Delivers the member-set form of the E0308 partition under the identity ruled today, plus the mapping rule other lanes will need.
The identity
148 canonical sites → 128 distinct identities, 0 unresolved, across 44 authority modules. Residue is published as seven named members, not as a remainder.
Derived from the
1ed02057a5measurement. This is an additional artifact — it does not replace the counts inREMEASURE_1ed02057a5.md. Those are ref-stamped observations; rewriting them into member sets would substitute a later derivation for what was actually measured.Why symbol alone is not the identity
Measured on the published 154-site partition: 154 sites → 99 distinct
(module, symbol)pairs. 33 symbols carry more than one site (largest:eval_computation_node, ten), and one symbol spans two roots. So a bare symbol set would make two lanes hitting different sites in one symbol read as agreement — and cross-lane overlap detection is the entire justification for identity-keyed reporting. A join that manufactures false agreement is worse than the fraction it replaces, because a fraction at least announces that it is a summary.The normalized
expected -> foundrelation restores what the symbol drops, and is the most stable field measured here: it survived a 63-commit gap and two different rustc builds unchanged.The bridge, for any lane reporting sites in emitted Rust
1. Module — read the declaration, never transform the filename. Every emitted file carries
// Source module: v2.lens.coverageon line 2. The textual_→/rule is ambiguous and silently wrong:std_realization_schedule.rsisstd/realization_schedule, but nothing in the filename distinguishes that fromstd/realization/schedule.2. Symbol — top-level items only (column 0). This half exists because of a measured failure: taking the nearest enclosing item returned
v2_lens_coverage :: CACHEDfor thirteen sites.CACHEDis thethread_localthe emitter writes inside every data-definition function, so thirteen distinct authority symbols reported as one name — presenting as a tidy one-symbol-thirteen-site cluster no reviewer would question.CACHED,__m,__sortedare collisions by construction: codegen mints the same name at every site by design.The rule under both halves: prefer the declaration the producer wrote over a name you can reconstruct. The header is declared, the filename transform reconstructed; the top-level symbol is authored,
CACHEDgenerated. The reconstructed form is the one that silently merges things that differ.Reproducing it
Line-to-symbol resolution is positional, so sites must be symbolized against the emit tree from their own ref — symbolizing one ref's sites against another's emit mis-assigns names, the same rot that disqualifies
file:line. This was produced by rebuilding at1ed02057a5and re-emitting there, not by reusing an emit tree already on disk.