Update docs and whitepaper with concrete benchmarks

Fresh in-process benchmarks across all implementations:
  JIT:        ack 0.19ms, fib 0.09ms, sum 0.55ms
  CPython:    ack 1.3ms,  fib 0.006ms, sum 5.5ms
  C interp:   ack 20ms,   fib 0.06ms,  sum 109ms
  Python VM:  ack 149ms,  fib 0.75ms,  sum 437ms
  Assembly:   ack 8ms,    fib 0.6ms,   sum 43ms

JIT runs Scheme 7-10x faster than CPython runs Python.

Updated: language identified as R7RS Scheme throughout.
Test count updated to 943 across all implementations.
This commit is contained in:
russell@unturf.com 2026-04-16 12:52:55 -04:00
parent 3ad161f74a
commit d49c01d0bf
3 changed files with 605 additions and 516 deletions

View file

@ -87,26 +87,36 @@ Three implementations of the same Scheme language, sharing the same .lsp test fi
## Performance Summary
| Implementation | ack(3,4) | sum-to(50k) | fib(35) | Binary |
|---------------|----------|-------------|---------|--------|
| Python VM | 93ms | 515ms | 0.6ms | 3,324 lines |
| C interpreter | 22ms | 79ms | 0.09ms | 171KB |
| C + JIT | **0.2ms** | **0.3ms** | 0.09ms | 171KB |
| Assembly | ~5ms* | ~3ms* | ~0.1ms* | **13KB** |
| CPython | 1.7ms | 7.8ms | 0.009ms | ~5MB |
All benchmarks measured in-process (no startup overhead) on the same machine.
*includes process startup + parse
| Implementation | ack(3,4) | fib(35) | sum-to(50k) | Binary |
|---------------|----------|---------|-------------|--------|
| **C + x86_64 JIT** | **0.19ms** | **0.09ms** | **0.55ms** | 171KB |
| CPython (native) | 1.3ms | 0.006ms | 5.5ms | ~5MB |
| C interpreter | 20ms | 0.06ms | 109ms | 171KB |
| Python bytecode VM | 149ms | 0.75ms | 437ms | 3,324 lines |
| Assembly (13KB) | ~8ms* | ~0.6ms* | ~43ms* | **13KB** |
*Assembly times include process startup + tokenizer + parser.
**The JIT runs Scheme faster than CPython runs Python** on recursive workloads:
ack(3,4) is 7x faster, sum-to(50k) is 10x faster. The JIT compiles Scheme AST
directly to x86_64 machine code via mmap(PROT_EXEC).
---
## Shared Test Suite
## Test Coverage
`tests/functional.lsp` — 114 tests that run identically in Python and C:
943 verified assertions across all implementations:
```
make test-all
Python: 571 tests
C: 76 tests (+ 114 functional)
Assembly: 75 tests
Total: 836 verified assertions
Python unit/integration: 571 tests
C unit/integration/JIT: 83 tests
Assembly unit/int/func: 108 tests
Shared functional: 181 tests (Python + C)
Total: 943 assertions
```
The language is **R7RS Scheme**. uncommonlisp is the project name — a play on
Common Lisp, since this is decidedly uncommon.