← board

Non-reproducible one-off miscompile (2026-06-02)

Symptom

The same compiler/pascal26 (md5 unchanged) occasionally produced a different, crashing binary for test/test_managed_record_exit.pas. cmp showed ~10 differing bytes at the same file size; analysis traced them to a single corrupted value — the output image size 0x0fa90x401681 — propagated to several emit sites (mov %rsp, base+image-size stored to the wrong address → segfault).

Why blocked

The toolchain uses no randomness, no timestamps, no intra-compile threads, and the self-host gate requires byte-identical build == verify — output is deterministic by construction. After the event a 400× determinism canary (200 self-compiles + 200 of the failing test) was byte-identical, zero crashes; bootstrap/test/test-nilpy green. Never recurred. Leading suspicion: transient hardware fault (RAM/cache bit flip on non-ECC memory), not a compiler defect.

If it recurs

Determinism canary: for i in $(seq 1 200); do ./compiler/pascal26 test/hello.pas /tmp/t; cmp /tmp/t /tmp/golden || echo "DIVERGED $i"; done; plus journalctl -k | grep -iE 'mce|edac|hardware error' and a memtest86 pass. Prefer ECC RAM for long unattended self-host runs.

Full forensics: ../../developer/anomaly_2026-06-02_2000.md (+ evidence dir).

Log