← board

Track T by default: the FAILING STEP named no owner. Line 2 of 2 is tools/expect_same.sh test_ifbyval26 "$(/tmp/test_ifbyval26 | tail -1)" "total ok 25 / 25". The job's own src (test/test_interface_byval_param_no_leak.pas, 2 file(s)) is NOT used here on purpose: it is what the job compiles, not what broke, and guessing a lane from it is what sent three reds in one job to the wrong lane. This is a FALLBACK, not a finding — nothing says the defect is Track T's. Re-lane it before working it.

origin/master has advanced 3 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/test_interface_byval_param_no_leak.pas at 3f73ad2f6a08 in step 2/2, tools/expect_same.sh test_ifbyval26 "$(/tmp/test_ifbyval26 | tail -1)" "total ok 25 / 25" (auto-filed by twatch)

Repro

tools/testmgr.py --tier native --job 'test-core#src:test/test_interface_byval_param_no_leak.pas' at 3f73ad2f6a08f46d3111aafd1e5a24c2d25ce7cc

Range

The named sha 3f73ad2f6a08 CANNOT be the cause — it touches no buildable file (docs / tickets / tstate only). It is the sha that was TESTED, i.e. the upper bound of an untested range; the cause is somewhere below it.

bad 3f73ad2f6a08, last good 9801b0bcb2c6, 2 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-2195942/test_ifbyval26  [code=77592B  data=5304B  bss=43612B  procs=155]
expect_same: MISMATCH [test_ifbyval26]
--- expected
+++ actual
@@ -1 +1 @@
-total ok 25 / 25
+total ok 24 / 25

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

Log

Verified fixed at HEAD — 2026-09-01, frankZ

Duplicate; fixed by d5e0a1e48 (frankB). Re-derived at c9602d5ce, binary 76c8be9064e0, converged after 2 round(s):

./compiler/pascal26 test/test_interface_byval_param_no_leak.pas /tmp/r && /tmp/r
rc=0   total ok 25 / 25

The one failing row was timing: nested call, function-result temp still holds it = 1 want 0. The fix moved that temp OFF the end-of-statement queue to scope exit — the opposite direction from the other three in the same campaign, which is why one ticket covering all four would have prescribed the wrong cure.