forth: LSHIFT/RSHIFT + 32-bit arith truncation + early binding (Hayes 174→268)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled

This commit is contained in:
2026-04-24 22:26:58 +00:00
parent 387a6e7f5d
commit 8e1466032a
7 changed files with 143 additions and 45 deletions

View File

@@ -38,11 +38,10 @@ awk '
# 2 + 3: split into chunks at each `}T` and emit as a SX file
#
# Cap chunks via MAX_CHUNKS env (default 590) — a small number of later
# tests enter infinite runtime loops (e.g. COUNT-BITS with unsigned wrap)
# that our bignum-based interpreter can't terminate. Raise the cap as
# those tests unblock.
MAX_CHUNKS="${MAX_CHUNKS:-590}"
# Cap chunks via MAX_CHUNKS env (default 638 = full Hayes Core). Lower
# it temporarily if later tests regress into an infinite loop while you
# are iterating on primitives.
MAX_CHUNKS="${MAX_CHUNKS:-638}"
MAX_CHUNKS="$MAX_CHUNKS" python3 - "$PREPROC" "$CHUNKS_SX" <<'PY'
import os, re, sys
@@ -153,11 +152,9 @@ covers tests whose \`->\` / \`}T\` comparison mismatched.
### Chunk cap
\`conformance.sh\` processes the first \`\$MAX_CHUNKS\` chunks (default
**590**). Past that, \`core.fr\` ships tests that rely on unsigned
integer wrap-around (e.g. \`COUNT-BITS\` using \`BEGIN DUP WHILE … 2*
REPEAT\`), which never terminates on our bignum-based interpreter. The
cap should rise as those tests unblock — run with \`MAX_CHUNKS=639
./conformance.sh\` once they do.
**638**, i.e. the whole Hayes Core file). Lower the cap temporarily
while iterating on primitives if a regression re-opens an infinite
loop in later tests.
MD
echo "$SUMMARY"