-
released this
2026-10-06 12:58:37 +02:00 | 328 commits to main since this releaseThe first tagged release. lamp is a Scheme for embedding in Zig programs,
with two ways to run the same source:- The VM (
lamp,lamp.Session): a register VM with an aarch64 JIT on
macOS on Apple Silicon. Elsewhere it interprets, which includes Linux; the
JIT is not ported there yet. Script runner, REPL with
breakpoints, and a Debug Adapter Protocol server (lamp --dap). - The AOT compiler: Scheme to Zig to native code through LLVM, with no
interpreter in the binary.addSchemeExecutableinbuild.zig
cross-compiles like any Zig program.eval, environments and runtime
loadare refused at compile time. - R7RS-small: VM 1203/1203, AOT 1198/1198 (the AOT omits
eval).
R5RS: VM 316/316, AOT 314/314 (again theevaltests). The two engines
agree on a differential corpus. - The numeric tower: fixnums that promote to bignums, and exact rationals.
No complex numbers. - Also: hygienic
syntax-rules,call/ccanddynamic-wind, proper
tail calls, full Unicode 16.0, R7RS libraries (define-library, a library
search path), and docstrings. - Embedding: several sessions per process, Zig functions as procedures,
sandboxed library sets, and native value types that compile to unboxed Zig
structs. - Performance (docs/BENCHMARKS.md, 55 R7RS benchmarks on an M1 Pro): the
VM is 0.68x Guile 3.0 and 1.84x Chez 10.4. The AOT is 1.22x Chez and 0.45x
Guile.sumandcpstakare slower under the AOT than before a 2026-09-30
correctness fix; the guarded fixnum clone that recovers them is the next
piece of work. - Platforms: macOS on Apple Silicon (with the JIT) and Linux on aarch64
(interpreted; tested in CI from this release on). Requires Zig 0.17.0.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The VM (