← board

Track guessed as C from the FAILING STEP — line 9 of 37, if command -v qemu-riscv32 >/dev/null 2>&1; then \ ./compiler/pascal26 --target=riscv32 test/c_alloca_expression_stack.c, which names test/c_alloca_expression_stack.c. Not from the job's name or its src: those describe what the job is ABOUT, and this job's recipe spans 4 source file(s). The ranker reads frontmatter, so this line — not the body — decides who works it; correct it if the guess is wrong.

origin/master has advanced 2 commit(s) since this sha. Re-verify at current HEAD before acting — the callback is tagged to the sha that was tested, which may no longer be the state of the tree.

regression: test-core#src:test/c_alloca_expression_stack.c at 9b0c07c2d5a8 in step 9/37, if command -v qemu-riscv32 >/dev/null 2>&1; then \ ./compiler/pascal26 --target=riscv32 test/c_alloca_expression_stack.… (auto-filed by twatch)

Repro

tools/testmgr.py --tier native --job 'test-core#src:test/c_alloca_expression_stack.c' at 9b0c07c2d5a8f1fe0ad12b4c13233cf0838ca54d

Range

bad 9b0c07c2d5a8, last good e50bd2535f3f, 1 commit(s) in range — the watcher narrows this by idle bisect; check tstate/TSTATE.md for the current range.

Log tail

ok: /tmp/testmgr-scratch-696977/c_alloca_expr26  [code=323352B  data=13648B  bss=76520B  procs=869]
expect_same: MISMATCH [riscv32/c_vla_rv]
--- expected
+++ actual
@@ -5,3 +5,4 @@
 36
 10
 24
+9 7 6

Stub ticket: signal only. Track T agent (face 2) enriches or a dev track takes it from the repro line.

Log

Resolution — CLOSED BY EVENTS (8cbe22841), verified at HEAD by running the row

The slug names alloca and the alloca rows were never the failure. The mismatch was riscv32/c_vla_rv: expected 7 lines, actual 8, extra trailing 9 7 6.

The EXPECTED side was the wrong one. At HEAD, three independent producers agree and the Makefile literal was the only dissenter:

producer output
pxx --target=riscv32, run under qemu-riscv32 ends 24 / 9 7 6
gcc native ends 24 / 9 7 6
pxx native ends 24 / 9 7 6

Fixed by 8cbe22841, "fix(T): the c_vla cross rows kept an expectation the x86-64 row had already grown"Makefile:18773 (x86-64) had learned 9 7 6 while the riscv32/arm32/i386 rows (23130/23143/23156) kept the older 7-line literal. The ticket's bad sha 9b0c07c2d predates it.

Verified, not inferred: tools/expect_same.sh run with the HEAD literal against a live qemu-riscv32 execution of a freshly compiled binary — PASSES. qemu-riscv32 is present on this host, so this is a real run and not a skip.

The qemu-class caveat, and why it does not apply. This job's class is qemu, which testmgr treats as runtime-nondeterministic (RUN_RETRY_CLASSES), so a single green does not normally refute a red — and the 2026-09-09 log entry correctly declined to close on exactly that ground. That rule guards against a flaky RUN. Here the defect was a static string in the Makefile and the repair is a visible diff to it, so the discriminator is the COMMIT, not the run. Closing on a green alone would still have been wrong; closing on the diff is not.