diff --git a/HANDOFF-x86-guards.md b/HANDOFF-x86-guards.md index eb6b4e4..afb3d52 100644 --- a/HANDOFF-x86-guards.md +++ b/HANDOFF-x86-guards.md @@ -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