From ef1c2e6fa5dd9d6e4a46428a84e08332e4686565 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Mon, 14 Sep 2026 10:51:03 +0700 Subject: [PATCH] The survey and the three forced test runs, with what the skip count moved for --- docs/handoffs/HANDOFF-x86-devloop.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/handoffs/HANDOFF-x86-devloop.md b/docs/handoffs/HANDOFF-x86-devloop.md index 22739fe..0905075 100644 --- a/docs/handoffs/HANDOFF-x86-devloop.md +++ b/docs/handoffs/HANDOFF-x86-devloop.md @@ -213,14 +213,24 @@ Two things the numbers say that the headline does not: |---|---|---| | `dune test --root .` | exit 0, 232 checks, 0 failures | **exit 0, 232 checks, 0 failures**, three runs | | `spike/x86/survey.sh` | 103 MATCH / 0 DIFFER / 0 REFUSED / 0 NOX86 | **103 / 0 / 0 / 0** | +| skip breakdown | 28 does-not-compile / 8 no-main / 2 runs-forever | 28 / **9** / 2 | | `spike/x86/cells.sh` | 4/4 ok | **4/4 ok** | | `bash web/examples/check.sh` | green | **green** | +The `no-main` count moving from 8 to 9 is `reload-v6.flan` existing: `survey.sh` globs +`test/programs/*.flan`, and a program with no `main` fails the LLVM link and is classified there before the x86 +build is attempted. `reload-agg.flan` moved it from 6 to 8 for the same reason. The **MATCH** count is what +must not move, and it did not. + The survey is the measurement that could have moved and did not, which is why it is run: `Lslot` and `fnctx.slot` default to the whole-program answer and `string_const` now mutates `md.Emit.nstr` on that path too, harmlessly, because nothing there reads it. The survey is what says so structurally rather than by argument. +One more trap, and it wasted a run here. `dune test` caches a test's *result*: the second and third runs of an +unchanged tree print nothing and exit 0 without having executed anything. If what you want is three real runs +— which is what the flakiness in this area asks for — it is `dune test --root . --force`. + Run `dune test --root .` **without a pipe** — piping to `tail` gives you `tail`'s exit status, and the `dev-robust` fixture puts `ld` and `clang` failure text in the output either way. Run the survey **detached** (`setsid timeout 2400 spike/x86/survey.sh > log 2>&1