Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions docs/probes/e0308_classify_sites.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
NOTE_EXP = re.compile(r"=\s*note:\s*expected (\w+(?: \w+)?) `(.+?)`\s*$")
NOTE_FOUND = re.compile(r"^\s*found (\w+(?: \w+)?) `(.+?)`\s*$")

def read_blocks(path):
def read_blocks(path, codes=("E0308",)):
lines = [ANSI.sub("", l.rstrip("\n")) for l in open(path, encoding="utf-8", errors="replace")]
blocks, cur = [], None
for i, l in enumerate(lines):
Expand All @@ -33,7 +33,7 @@ def read_blocks(path):
blocks.append(cur); cur = None; continue
cur["lines"].append(l)
if cur: blocks.append(cur)
return [b for b in blocks if b["code"] == "E0308"]
return blocks if codes is None else [b for b in blocks if b["code"] in codes]

def block_sites(b):
"""Expand one block into canonical mismatch sites."""
Expand Down Expand Up @@ -385,4 +385,5 @@ def main(path, out):
print(" %s:%s:%s %s | %s [%s] callee=%s" %
(s["file"], s["line"], s["col"], s["expected"], s["found"], s["delta"], s["callee"]))

main(sys.argv[1], sys.argv[2])
if __name__ == "__main__":
main(sys.argv[1], sys.argv[2])
18 changes: 14 additions & 4 deletions docs/probes/e0308_partition_2026-08-22.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ existing 15-category vocabulary of

This is a **measurement**, not a repair. Nothing in this lane changes a single emitted type.

**Cross-code correction (2026-08-23):** this document is an E0308 projection, not a mechanism
board. The absent-`Clone`-bound mechanism classified here as `A-clone = 12` also produces 6 E0277
and 4 E0599 manifestations in this same log: its cross-code population is **22**, not 12. Therefore
the percentages below are shares *within E0308*, never mechanism shares, and the staffing ranking
derived from those shares is withdrawn. The cross-code instrument, complete TSV, and receipt are
[`rustc_mechanism_partition_2026-08-23.md`](rustc_mechanism_partition_2026-08-23.md). The 22 is at
this document's `967b5bc1b92` ref, not the current certified board at `98b18cdc81e`, and must not
be compared with that board's raw-row total.

**Every cluster below is a CANDIDATE root, not a root.** Mechanical clustering plus shared
provenance establishes that a set of sites *looks like* one producer decision; only changing one
modeled decision, rerunning the whole board, and observing the exact site conversions establishes
Expand Down Expand Up @@ -306,12 +315,13 @@ width of one file.
BOX-WRAP) and two more sit in two files each (D, ELEM-COLL), which is the strongest cost-shape
signal in this run: 49 of 154 sites sit behind six decisions in eight files.

## Cost shape — the staffing question the brief asked
## Cost shape — E0308 projection only; staffing conclusion withdrawn

The board is **not** a long tail of independent site repairs. Four clusters (R1, R2, D, T3) cover
Within E0308, the board is **not** a long tail of independent site repairs. Four clusters (R1, R2, D, T3) cover
88 of 154 = 57%, and six near-single-file clusters cover another 49. The tail is 7 residue sites in
5 files. This agrees in shape with the 2026-08-21 finding (7 largest categories = 79%) even though
the population is different.
5 files. This concentration does **not** rank mechanisms: the cross-code classifier proves that a
mechanism can extend beyond this denominator, and only `ABSENT_CLONE_BOUND` has been classified
across codes so far.

| cluster | sites | suggested owner | why that owner |
|---|---:|---|---|
Expand Down
Loading
Loading