# shen $ ./zincvm globals.csexp --meta-repl

Playground

the real C VM, compiled to WebAssembly, in your terminal

A live Shen REPL

// the zincvm C VM · xterm.js · 100% client-side

This terminal runs the actual zincvm C VM compiled to WebAssembly — the same interpreter that ships in the repo, booting the ~295-closure globals.csexp bundle. Type KLambda expressions and hit Enter:

(+ 1 2)        → 3
(cons 1 2)     → [1 . 2]
(= [+ 1 2] [+ 1 2]) → true
(hd [1 2 3])   → 1
(tl [1 2 3])   → [2 3]
(reverse [1 2 3]) → [3 2 1]

The playground evaluates primitive calls through the metacircular interpreter. The repo's open close-the-loop item — defun registration and non-bundled closures — is not yet functional in the reduced bundle, so (defun ...) forms report an honest registration result.

The collector under wasm swaps the native 4 GB mmap reservation for an aligned_alloc heap, and the input/output bridge is a synchronous shen_eval_line entrypoint — no blocking fgetc(stdin), no web worker.