# ═══════════════════════════════════════════════════════════════════ # lumbda — Python + C + Assembly implementations # ═══════════════════════════════════════════════════════════════════ # # Implementations: # Python lumbda.py bytecode VM, full continuations, portal # C c/lumbda tree-walker + bytecode VM + x86_64 JIT # Assembly asm/lumbda pure x86_64, no libc, 13KB binary # # Test suites: # make test Python unit/integration (571 tests) # make c-test C unit/integration + JIT (76 tests) + functional (114) # make asm-test Assembly unit/integration/functional (75 tests) # make functional-test Shared .lsp suite in Python + C (114 each) # make test-all Everything (836 total) # # Benchmarks (each generates reproducible numbers referenced in the # whitepaper; hardware-independent commands, safety envelope built in): # make bench Python bench.py (tree-walker vs bytecode VM) # make c-bench C unit-level microbenchmarks # make bench-3way §6.4: Python vs C vs asm on sum-to/ack # make bench-portal §7.5: S-exp/JSON/binary portal save+load timings # make bench-portal-cross §7.2: 3x3 cross-impl portal save×load matrix # make bench-web §11.3: HTTP benchmark vs busybox + python http.server # make bench-rpc-chain §11.4: Py → C relay → asm backend chain timing # make bench-proof §8.6: EML proof — Lean 4 vs Lumbda tiers # make bench-all run every bench above back to back # make friction head-to-head timing: Python vs C vs CPython # # Other: # make examples Run examples in Python + C, compare output # make docs Generate architecture diagrams # make whitepaper Build PDF whitepaper # make clean-all Clean everything all: test # ─── Python implementation ──────────────────────────────────────── test: python3 tests.py test-verbose: python3 tests.py -v bench: python3 bench.py bench-verbose: python3 bench.py -v repl: python3 lumbda.py lint: python3 -m py_compile lumbda.py python3 -m py_compile tests.py python3 -m py_compile bench.py # ─── C implementation ───────────────────────────────────────────── c-build: $(MAKE) -C c all c-test: c-build $(MAKE) -C c test @echo "── C functional tests (shared .lsp suite) ──" ./c/lumbda tests/functional.lsp c-bench: c-build $(MAKE) -C c bench c-repl: c-build ./c/lumbda c-clean: $(MAKE) -C c clean # ─── Assembly implementation ────────────────────────────────────── asm-build: $(MAKE) -C asm all asm-test: asm-build $(MAKE) -C asm test asm-repl: asm-build ./asm/lumbda asm-clean: $(MAKE) -C asm clean # ─── All implementations ───────────────────────────────────────── functional-test: c-build @echo "═══ Shared functional tests (114 tests) ═══" @echo "── Python ──" @python3 lumbda.py --fast tests/functional.lsp | tail -3 @echo "── C ──" @./c/lumbda tests/functional.lsp | tail -3 portal-rng-cross-test: c-build asm-build @bash tests/portal-rng-cross-test.sh zoe-favorites-test: c-build @bash tests/zoe-favorites-test.sh test-all: test c-test asm-test functional-test portal-rng-cross-test zoe-favorites-test @echo "════════════════════════════════════════════════════" @echo "All tests passed (Python + C + Assembly + functional + portal-rng-cross + zoe-favorites)" # ─── Benchmarks (reproducible; referenced in whitepaper §6–§11) ─── bench-3way: c-build asm-build @bash tests/bench-3way.sh bench-portal: c-build asm-build @bash tests/portal-benchmark.sh bench-portal-cross: c-build asm-build @bash tests/portal-cross-test.sh bench-web: c-build asm-build @bash tests/web-benchmark.sh bench-rpc-chain: c-build asm-build @bash tests/rpc-chain-bench.sh bench-proof: c-build asm-build @bash tests/bench-proof.sh bench-hashset: asm-build @bash tests/bench-hashset.sh bench-gc: asm-build @bash tests/bench-gc-memory.sh bench-gc-arena: asm-build @bash tests/bench-gc-arena.sh bench-gc-adaptive: asm-build @bash tests/bench-gc-adaptive.sh bench-gc-http: asm-build @bash tests/bench-gc-http.sh bench-lumbda-www: asm-build @bash tests/bench-lumbda-www.sh bench-www-race: asm-build @bash tests/bench-www-race.sh bench-all: bench c-bench bench-3way bench-portal bench-portal-cross bench-web bench-rpc-chain bench-proof @echo "═══════════════════════════════════════════════════════════" @echo "All benchmarks complete. Numbers in the whitepaper §6.4," @echo "§7.2, §7.5, §11.3, §11.4 are reproducible from these targets." # ─── Examples ───────────────────────────────────────────────────── examples: c-build @echo "═══ fibonacci.lsp ═══" @echo "--- Python ---" && python3 lumbda.py --fast examples/fibonacci.lsp @echo "--- C ---" && ./c/lumbda examples/fibonacci.lsp @echo @echo "═══ mergesort.lsp ═══" @echo "--- Python ---" && python3 lumbda.py --fast examples/mergesort.lsp @echo "--- C ---" && ./c/lumbda examples/mergesort.lsp @echo @echo "═══ objects.lsp ═══" @echo "--- Python ---" && python3 lumbda.py examples/objects.lsp @echo "--- C ---" && ./c/lumbda examples/objects.lsp # ─── Friction benchmark ────────────────────────────────────────── friction: c-build asm-build bash friction.sh # ─── Documentation ──────────────────────────────────────────────── DOT_FILES := $(wildcard docs/*.dot) DOT_PNGS := $(DOT_FILES:.dot=.png) docs: $(DOT_PNGS) docs/%.png: docs/%.dot dot -Tpng $< -o $@ # ─── Whitepaper ─────────────────────────────────────────────────── VENV := whitepaper/.venv RST := whitepaper/lumbda-whitepaper.rst PDF := whitepaper/lumbda-whitepaper.pdf HTML := whitepaper/lumbda-whitepaper.html STYLE := whitepaper/whitepaper.style $(VENV)/bin/rst2pdf: python3 -m venv $(VENV) $(VENV)/bin/pip install --upgrade pip $(VENV)/bin/pip install rst2pdf docutils whitepaper: $(PDF) $(HTML) whitepaper-pdf: $(PDF) whitepaper-html: $(HTML) $(PDF): $(RST) $(STYLE) $(VENV)/bin/rst2pdf cd whitepaper && ../$(|\n|' $(HTML) @sed -i 's|lumbda-whitepaper.rst|Lumbda whitepaper — feedback as a primitive|' $(HTML) @python3 whitepaper/embed-images.py $(HTML) @python3 whitepaper/inject-whitepaper-css.py $(HTML) \ www/fonts/chunkfive/chunkfive-regular-webfont.woff2 @echo "Built: $(HTML)" # ─── Clean ──────────────────────────────────────────────────────── clean: rm -rf __pycache__ *.pyc clean-whitepaper: rm -rf $(VENV) $(PDF) whitepaper/WHITEPAPER.pdf clean-docs: rm -f docs/*.png clean-all: clean clean-whitepaper clean-docs c-clean asm-clean .PHONY: all test test-verbose bench bench-verbose repl lint \ c-build c-test c-bench c-repl c-clean \ asm-build asm-test asm-repl asm-clean \ test-all bench-all examples friction functional-test portal-rng-cross-test \ bench-3way bench-portal bench-portal-cross bench-web bench-rpc-chain bench-proof \ docs whitepaper clean clean-whitepaper clean-docs clean-all