Spokes.wiki Search About
Computer Language source ↗ source url updated Thu Aug 06 2026 00:00:00 GMT+0000 (Coordinated Universal Time)

Emacs Lisp

The dialect GNU Emacs is written in — most of the editor is Emacs Lisp over a C core, and users extend or redefine it by writing more of the same language. Closest to Maclisp, with later borrowing from common-lisp. Richard Stallman chose Lisp over scheme deliberately, judging Scheme too slow on the workstations of the day. It runs both byte-compiled and interpreted, and works in batch mode from the command line with the editing machinery still available.

T2 — third-party encyclopaedic.

A language whose host is an application

hosted-language has collected runtimes (JVM, BEAM, V8, the CLR) and, with typescript, another language. Emacs Lisp is the case where the host is a program: the editor’s buffers, keymaps and commands are the standard library, and the language exists to make one application malleable rather than to build arbitrary software. That is common-lisp‘s extensibility claim taken to its end point — the distance between using the tool and programming it is zero — and it is why the corpus’s “who may add to the language” axis needs a third position beside committee and macro-writer: the user of the application.

Dynamic scoping, and the corpus’s clearest recorded design regret

By default a function sees variables from its caller’s context, not its definition’s. Convenient for an editor where a command temporarily rebinds a setting; the article states the cost plainly — it “can easily lead to bugs in large programs” — and lexical binding became available as an option only in version 24. No first-party page in this corpus contains a sentence of that shape. It also lacks tail-call optimization, so tail-recursive code can overflow the stack, which is exactly the guarantee scheme made mandatory. The two dialects Stallman chose between differ on precisely the property he did not need and Scheme required.

Byte-compilation speeds things up and shrinks memory, and still runs slower than the C primitives — the honest version of the performance claims common-lisp‘s community site makes without numbers.

lisp · common-lisp · scheme · hosted-language · evaluation-strategy · programming-language · synthesis