Skip to content

tri misread: the specs the compiler reads wrongly, with a control that refuses - #3228

Merged
gHashTag merged 1 commit into
masterfrom
tri-misread
Sep 5, 2026
Merged

gHashTag merged 1 commit into
masterfrom
tri-misread

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

tri unparsed ranks what the parser could not read, and its population is defined by
the compiler refused. Anything accepted lies outside it by construction, however
wrong the result — so the class where every gate is green had no census. This one
reads the generated output instead, where being read wrongly becomes visible.

Four shapes, each a line that cannot mean anything in its target language:
pub f: ,, pub f: 0,, Vec<>, and the C half 0 f;.

The positive control is the design, not decoration

The command runs a reproducer through the real compiler first and refuses to
report on the corpus unless every shape it claims to detect actually fired on a case
built to contain it. A detector that finds nothing and a detector that is broken print
the same thing, and that is the defect this command exists for.

It earned that on its first run — the reproducer carried only the literal case, two
detectors had no case, and it refused rather than printing two comfortable zeros:

CONTROL FAILED -- these shapes did not fire on a case built to contain them:
    rust: `pub f: ,`      field with no type
    rust: `Vec<>`         generic lost its parameter
Error: refusing to report on the corpus.

What it reads now

control: all 4 shape(s) fired on the reproducer
corpus:  650 spec(s) under specs
generated for 581 of 650 spec(s)

  22  rust: `pub f: ,`      field with no type
   1  rust: `pub f: 0,`     literal in type position
   0  rust: `Vec<>`         generic lost its parameter
   1  c:    `0 f;`          literal in type position

The Vec<> row reading 0 is the point: #3213 removed that defect from the corpus,
and the control is what makes the zero a result rather than a silence. The detector
stays as a regression guard.

It corrected the issue that motivated it

#3225 said 14. The ad-hoc grep behind that number required
^[[:space:]]+pub [a-z_]+: ,$ — a field-name class with no digits and no capitals
— and missed eight specs naming the field Double, Null, Nil, Ready,
IgnoreCase, Ascending, RGB, Trace. All enum-variant names, which is the same
underlying cause. Verified: all 22 are in the rustc-FAIL set, so none is a false
positive.

9 unit tests, including one asserting the reproducer still contains a marker for every
shape — so a "tidied" constant fails at test time rather than making the control pass
vacuously.

Refs #3225

…t refuses

`tri unparsed` ranks what the parser could not read and its population is defined
by "the compiler refused". Anything accepted lies outside it by construction,
however wrong the result, so the class where every gate is green had no census.
This one reads the GENERATED OUTPUT instead, where being read wrongly becomes
visible.

Four shapes, each a line that cannot mean anything in its target language:
`pub f: ,`, `pub f: 0,`, `Vec<>`, and the C half `0 f;`.

The positive control is the design. The command runs a reproducer through the real
compiler first and refuses to report on the corpus unless every shape it claims to
detect actually fired on a case built to contain it -- because a detector that
finds nothing and a detector that is broken print the same thing, which is the
defect this command exists for. It earned that on its first run: the reproducer
carried only the literal case, two detectors had no case, and it refused instead
of printing two comfortable zeros.

Corpus: 22 / 1 / 0 / 1. The `Vec<>` zero is a result rather than a silence because
the control fired; #3213 removed that defect from the corpus and the detector
stays as a regression guard.

The run also corrected #3225: the ad-hoc grep behind its "14" required
`pub [a-z_]+: ,`, a field-name class with no digits and no capitals, and missed
eight specs that name the field Double, Null, Nil, Ready, IgnoreCase, Ascending,
RGB and Trace. All 22 are in the rustc-FAIL set.

Refs #3225

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-05 02:07:53 UTC

Summary

Status Count
Total Open PRs 17
PRs with Failing Checks 12
PRs with All Checks Green 5
READY 1
FAILING 12
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9f4e7ae386ba != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit f28348c into master Sep 5, 2026
28 of 29 checks passed
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@gHashTag
gHashTag deleted the tri-misread branch October 26, 2026 07:24
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