< back to deckline

/software

Lisp is the interface.

A REPL, a structural editor, and a 64-cell VM live on the deck out of the box. CAR selects. CDR traverses. CONS binds. The cartridges speak the same grammar.

Cold-boot REPL on the bare deck — no cartridge inserted.

The REPL is built in

The bare deck boots into a working Fe REPL. Three small evaluations: arithmetic, list construction, an empty-list predicate. Every cartridge inherits the same environment.

Three evaluations. The runtime is the same one cartridges run inside.

try it — click to advance

LAMBDA · Fe REPL · v0.3user>
0/3

nEmacs — Structural Editing

The cursor moves over forms, not characters. Parens auto-balance on insert; deleting a form that would unbalance is refused with an inline message. The kill ring holds whole sub-forms; yank places the ring entry into a syntactic slot, not a column.

Open mission.lisp — cursor lands on the outermost defun.
Auto-balance on insert; structural error on a naked-paren delete.
Select region. C-c C-r. Result appears inline.
Kill a sub-form; the kill ring keeps it. Yank it into a new slot later.

Live Redefinition

A function gets redefined while a polling loop is using it. The loop's next tick reflects the new binding — no restart, no state lost. Lisp's promise, unironically.

Loop unchanged. Binding swapped. Output changes mid-run.

One Key, Many Verbs

The same keystroke binds to different verbs in different surfaces. TERM in the REPL halts evaluation. TERM inside nEmacs swaps to the REPL with the current form. TERM during a cartridge mission yields the cartridge's contextual action.

in REPL

TERM  →  halt eval

in nEmacs

TERM  →  send form to REPL

in cartridge

TERM  →  cartridge-defined

The Fe VM

A small embedded Lisp on a fixed cell pool. Arena allocation, no mark-and-sweep — the arena resets at cartridge-load and mission-instance boundaries. Cartridges author against a 54-primitive FFI surface; cell pressure is bounded by construction.

Follow the runtime

Dispatches track nOSh, the Fe VM, cartridge primitives, and the bare-deck REPL as they move from prototype to hardware.

> GET DISPATCHES_