The clean survey: ninety-nine match, and the edit described as it stands

This commit is contained in:
Joseph Ferano 2026-09-13 22:56:41 +07:00
parent 0483ae81e8
commit 921155408e

View File

@ -81,7 +81,7 @@ than any clause it offers — re-propagates through `current_pad` with its own f
fn.Tast.name;
```
are gone, replaced by a comment and a bare `;` closing the preceding `if f.unwound then begin … end`. **That is the
are gone. The preceding `if f.unwound then begin … end` gained its `;` and a comment took the deleted arm's place. **That is the
only change to `lib/x86.ml` in this lane** — nothing else in the file was touched, and the concurrent redefinition
lane should need to resolve nothing but this one hunk. The comment records the table above so the next reader does
not have to rebuild the argument.
@ -156,19 +156,18 @@ look like a match to anything comparing only exit statuses.
And the full run, `SURVEY_QUIET=1 spike/x86/survey.sh`, over `test/programs` and `spike/x86` together:
```
MATCH 98
MATCH 99
DIFFER 0
REFUSED 0
NOX86 0
SKIP 36
```
That is `HANDOFF-x86-rt.md`'s 97 plus `p9`, and the `SKIP` 36 is the same 28 / 6 / 2 as before. **Read it as a
sanity check and not as the verification of the fix**, for two reasons the honest version has to name: it does not
include `p10`, whose file did not exist when the run globbed the directory, and `lib/x86.ml` was rebuilt twice while
it was in flight — the `end;` fold and the comment — so some rows were built with the binary before that tidy-up and
some after. Both rebuilds were semantically identical, so the counts are not wrong, but they are not one
measurement. A clean run of the final binary, which includes `p10`, should report **99 / 0 / 0**.
That is `HANDOFF-x86-rt.md`'s 97 plus the two probes this lane added, and the `SKIP` 36 is the same 28 / 6 / 2 as
before. It is one clean measurement of the final binary: `lib/x86.ml` was not rebuilt while it ran, and both `p9`
and `p10` were on disk when it globbed the directory. An earlier full run reported 98, and that number should be
ignored rather than reconciled — it predated `p10` and straddled two rebuilds, so it was a sanity check and not a
verification.
The invariant that matters is the two zeroes, and it is worth saying why the item-5 fix cannot have moved anything
else: the change removes a refusal and adds no code. A function with `f.unwound` true reaches none of it, and a