ack(3,8) was reported as "segfault" for the C impl in the previous whitepaper revision. That was a stale observation — C has --fast (bytecode VM with explicit frame stack) that handles deep recursion cleanly. The benchmark table compared the wrong modes. Corrected apples-to-apples: - Python --fast (bytecode VM) — 17,004 ms on ack(3,8) - C --fast (bytecode VM) — 1,433 ms **fastest of the three** - asm native (tree-walker) — 2,322 ms C's --fast wins every workload. asm still beats Python --fast by ~7x despite being a tree-walker, because it skips Python's per-op overhead entirely. c/main.c: --help text updated to clarify that --fast is required (or `ulimit -s unlimited`) for deep recursion in the default tree-walker mode. Attempted flipping --fast to default; reverted because that surfaced a cumulative-state buffer overflow in the bytecode compiler that only triggers after the full 189-test functional suite but not on isolated scripts. Left as a TODO in the code comment. 189 C tests + full test-all still pass. Whitepaper §6.4 table now shows all three impls in their high-performance configuration. Also noted that a pthread-with- larger-stack wrapper would let the C tree-walker handle deep recursion without --fast — tracked as low-priority future work since --fast is strictly faster regardless. |
||
|---|---|---|
| .. | ||
| diagrams | ||
| uncommonlisp-whitepaper.pdf | ||
| uncommonlisp-whitepaper.rst | ||
| WHITEPAPER.pdf | ||
| WHITEPAPER.rst | ||
| whitepaper.style | ||