• v0.1.0 9404f61810

    v0.1.0
    All checks were successful
    test / test (push) Successful in 48m16s
    Stable

    sicher released this 2026-10-06 12:58:37 +02:00 | 328 commits to main since this release

    The 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. addSchemeExecutable in build.zig
      cross-compiles like any Zig program. eval, environments and runtime
      load are refused at compile time.
    • R7RS-small: VM 1203/1203, AOT 1198/1198 (the AOT omits eval).
      R5RS: VM 316/316, AOT 314/314 (again the eval tests). 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/cc and dynamic-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. sum and cpstak are 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