Commit 032dc11
committed
VCR-REACH-001: close the cold-review blockers — A32 sweep, un-vacuate the evidence oracle, scope the mutation claim (#242)
Three corrections from review, two of them blocking.
1. THE WIDENED SHIPPING VALIDATOR, CHECKED ON THE PATH I HAD NOT COMPILED.
`check_join_availability` now admits i64-pair ops and takes their defs from
`pair_effect` — and its `use_b` comes from the same line. That matters,
because `pair_effect` lists `rm_hi` in `uses` DELIBERATELY (conservative for
the pass: it keeps the incoming value live INTO the op, which is strictly
more interference). Over-stating `uses` is safe for interference; inside a
MUST availability fixpoint that HARD-ERRORS the compile, it is the
false-positive direction. The thumb2 corpus sweep found 0 hard errors, but
the A32 expansions are entirely different code (`encode_arm_expanded`) and I
had never compiled it. Now swept: `--target cortex-r5`, both the relocatable
and self-contained paths, 293 successful compiles, **0 RA-003 hard errors**,
and the same coverage improvement (Consistent 563 / NotAttempted 79).
2. `rivet check verification-evidence` WAS PASSING VACUOUSLY — repo-wide, and
before this lane. It reported `named_test_steps_checked: 0` while 31
artifacts carry a `cargo test` step. Root cause found by bisecting the shape:
the oracle scans `fields.steps[].run`, a SEQUENCE, and every artifact in this
repo writes `steps:` as a MAPPING, so it matches nothing and exits 0. A green
gate that checked nothing is precisely the class this project pins, and I had
cited it as evidence in the previous commit — that citation was wrong.
SWVER-022 is now written in the shape the oracle actually reads, taking it
from 0 checked to 1, and the check is verified RED-FIRST: substituting a
nonexistent test name makes it exit 1 and name the artifact, filter and
command. Converting the other 42 is a FOLLOW-UP, not a drive-by: each
conversion has to re-verify that its filter still matches a real test, which
is the entire point of the oracle. Second, smaller finding recorded with it:
a source with a YAML parse error is silently skipped and the oracle still
reports `ok: true`.
3. THE MUTATION CLAIM IS NOW SCOPED TO WHAT IT COVERS. "Proven non-vacuous by
mutation" followed by one example invites the reader to generalise it to the
whole model. The model carries THREE obligations and only ONE is
execution-gated:
* EARLY-CLOBBER edges — yes, strongly (3 static instruments green, only
execution red, 3 wrong values).
* The `rm_lo` RMW clobber — defended by `rewrite_op`'s RMW-agreement check,
NOT by execution. And that guard was written in this same lane alongside
the model it constrains, so it is the model catching its own
inconsistency, not independent detection. Said plainly now.
* The `rm_hi` scratch clobber — NOT caught. Belt-and-braces.
Also, per this repo's convention that a gap claim should not outlive the gap:
the latent Thumb encoder defect this lane found is now issue **#916** with a
full reproduction, the reason #311's fix does not transplant (fixed internal
branch displacements), and a suggested acceptance gate — referenced from the
CHANGELOG, from `pair_low_reg_only`'s doc and from the pinning test, so the
follow-up lane has a home.
And one characterisation the review asked for: `identity-colouring` nearly
doubled, 31 -> 58. About 27 newly-admitted functions are fully modeled and fully
validated and then colour to identity, so they go straight back to the shipping
pass. Honest behaviour, and the cheapest reach left — a candidate for the next
increment alongside the leaf-only `shrink_callee_saved_saves` lever.
Gates: fmt 0, claim_check 37/37, the pinning test 0, `rivet check
verification-evidence` 0 with 1 step genuinely checked, rivet validate 52
errors / 103 warnings against the 52 / 104 baseline.
Trace: VCR-REACH-0011 parent ead64ec commit 032dc11
4 files changed
Lines changed: 67 additions & 31 deletions
File tree
- artifacts
- crates
- synth-backend/src
- synth-synthesis/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
41 | | - | |
| 40 | + | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
88 | 111 | | |
89 | 112 | | |
90 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
580 | 590 | | |
581 | | - | |
582 | | - | |
583 | | - | |
584 | | - | |
585 | | - | |
586 | | - | |
587 | | - | |
588 | | - | |
589 | | - | |
590 | | - | |
591 | | - | |
592 | | - | |
593 | | - | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11642 | 11642 | | |
11643 | 11643 | | |
11644 | 11644 | | |
11645 | | - | |
| 11645 | + | |
11646 | 11646 | | |
11647 | 11647 | | |
11648 | 11648 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3917 | 3917 | | |
3918 | 3918 | | |
3919 | 3919 | | |
3920 | | - | |
3921 | | - | |
| 3920 | + | |
| 3921 | + | |
3922 | 3922 | | |
3923 | 3923 | | |
3924 | 3924 | | |
| |||
0 commit comments