← board

test-nilpy stopped at row 593 from 2026-10-02 on: a vacuous leak row

Found 2026-10-19. make test-nilpy exited at assert_no_leak.sh nilpy_lambda_captured, which reported "only 49 allocations — too few to show anything". It fails the same way at a clean HEAD (7dbf6fe4df), so the cause was not the sysdash work. The recipe runs to Makefile line ~8730, so nearly the whole Nil Python suite had not run since the row landed in 6f3a8bb040 (2026-10-02).

Cause: in the leak arm, the loop in test/test_nilpy_a_lambda_returning_a_captured_heap_value_returns_it.npy only returned borrowed names, so it allocated nothing per pass. assert_no_leak rightly refuses a row that cannot show a leak. The keep control allocated [i], so the two arms were not measuring the same thing.

Fix: a fresh list per pass, returned through a lambda, dropped in the leak arm and kept in the control (the sibling lamctor row's shape). The leak arm is ok at allocs=13891 live=37, the control trips, and the HEAP_DEBUG row is unchanged.

Lesson: a red row early in a long serial recipe hides every row after it, and "the suite is red" read as one failure, not ~8000 unrun lines.