WITHDRAWN: the RC4 underflow was a harness bug, not a compiler bug
Filed 2026-08-08 on the strength of
$ printf 'INCLUDE testje.for\nBYE\n' | ./uforth
ERROR: Stack underflow
INCLUDE in uforth is ( "filename" -- ) — it pops the filename off the
stack. INCLUDE testje.for therefore pops an empty stack, and the underflow is
the CORRECT answer. The proper spelling is "testje.for" INCLUDE, and with it:
testje.for 0 7 11 15 11 IDENTICAL to CPython
testjefixed.for 8A 6A D9 02 6A IDENTICAL
testjefix2.for DB 3D D9 CD AF IDENTICAL
testjefix3.for 2D D6 65 30 F2 IDENTICAL
Why it looked real
CPython appeared to accept the bad form and print the cipher output, which made
it look like a pxx-only failure. It did not: the comparison was run before the
select.select fix, so the two sides differed in prompt handling as well, and I
read one difference as evidence for another.
What it cost, and the lesson
Nothing was changed on its account — the real bug in the same area ([[bug-nilpy-sequence-repeat-with-a-variant-count-falls-through-to-arithmetic]]) was found by bisecting the FILE, which immediately produced a failing line that reproduced with the correct INCLUDE spelling too.
The lesson is the one this arc keeps teaching from the other direction: when a corpus fails, check that the harness speaks the corpus's language before concluding anything about the implementation under test. A wrong invocation and a real defect look identical from the outside.
Superseded by [[bug-nilpy-uforth-drv-suite-last-line-and-file-words]] for what IS still red in uforth's own suite.