Module Reference
Reference pages list the functions and types in each runtime module. Start with the standard library overview to choose a type or find a function for a particular task.
The x2c C API collects the stable x2c_* entry
points used by generated code, native callers, and compiler setup.
Modules
| Module | Description |
|---|---|
lib/array.x | dynamic contiguous arrays of Var elements. |
lib/atom.x | canonical exact names. |
lib/block.x | checked dynamic storage for fixed-width elements. |
lib/buffer.x | growable text buffer with indentation support. |
lib/common.x | the shared Var union and operations used by every module. |
lib/context.x | bounded runtime state and value export. |
lib/dispatch.x | typed descriptors for runtime Var behavior. |
lib/error.x | handler stack and accumulated errors. |
lib/exception.x | transfer frames for x2c Error unwinding and cleanup. |
lib/file.x | File I/O operations and stream handling. |
lib/func.x | generic native function binding. |
lib/iter.x | single-pass pull iterators. |
lib/lib.x | disjoint sets with union-find. |
lib/lisp.x | the Lisp runtime: reader, session, and evaluator. |
lib/list-selectors.x | optional compound List selectors. |
lib/list.x | linked list with Var elements. |
lib/logger.x | owned structured event delivery. |
lib/map.x | hash table mapping Var keys to Var values. |
lib/match-recursive.x | optional reference matcher. |
lib/match.x | pattern matching and transformation utilities for lists. |
lib/mutex.x | shared mutable-state coordination. |
lib/scope.x | memory allocation scope management. |
lib/split.x | String field splitting and repeatable typed cursors. |
lib/string-classify.x | byte classification for canonical strings. |
lib/string-number.x | numeric parsing from canonical byte strings. |
lib/string.x | canonical byte strings and core text operations. |
lib/symbol.x | immediate encoded names. |
lib/symbolset.x | immutable ordered sets of compact Symbols. |
lib/thread.x | Context-backed native worker threads. |
lib/typed-array.x | packed typed Arrays generated from shared methods. |
lib/typed-list.x | typed cons chains generated from typed methods. |
lib/typed-map.x | typed Maps generated from shared storage. |
lib/var.x | variant type for dynamic typing. |
lib/varconvert.x | Var numeric conversion policy. |
lib/varops.x | boxed Var operators, updates, and truthiness. |
Optional x2c modules
These modules ship with x2c but are not loaded by the standard prelude. Include one explicitly to use its declarations.
lib/list-selectors.x- Compound selectors beyond caar, cadr, cddr, and caddr; explicitly includelist-selectors.xto use them.lib/match-recursive.x- Readable recursiveMatchreference; explicitly includematch-recursive.xfor differential testing.lib/typed-array.x- Packed typed storage with a raw native bracket; explicitly includetyped-array.xto use it.lib/typed-list.x- Typed views over canonicalListcells; explicitly includetyped-list.xto use them.lib/typed-map.x- Typed maps over native numeric or canonicalStringfields; explicitly includetyped-map.xto use them.
Runtime-internal
These modules implement the runtime and are not public APIs.
lib/cmath.x- C99<math.h>prototypes, declared so aVarargument unboxes at a math call; the unit still includes<math.h>.lib/error_init.x- Type-owned initialization shim that preservesError’s pre-initialization boundary.lib/lisp-machine.x- Private compile-time Lisp wordcode decoder.lib/machine.x- SharedMatchand Lisp wordcode, builder, and execution-state definitions.lib/match-machine.x- PrivateMatchwordcode decoder.lib/pool.x- Nested interning pools that back canonicalStringandListidentity.lib/protocols.x- The built-inBlock,Iter, andVarprotocol declarations used to generate runtime dispatch adapters.lib/scan.x- Allocation-free character scanners used by the tokenizer.lib/thread-state.x- Native pthread-key storage for per-thread runtime state.lib/tokenizer.x- Token stream used by the compiler and the Lisp reader.
Declared but not defined
These prototypes reach the generated headers, but no runtime source defines them. Calling one fails at link time.
ArrayChar.capacity- declared inlib/typed-array.xArrayChar.clear- declared inlib/typed-array.xArrayChar.free- declared inlib/typed-array.xArrayChar.len- declared inlib/typed-array.xArrayChar.pop- declared inlib/typed-array.xArrayChar.truncate- declared inlib/typed-array.xArrayChar.truth- declared inlib/typed-array.xArrayDbl.capacity- declared inlib/typed-array.xArrayDbl.clear- declared inlib/typed-array.xArrayDbl.free- declared inlib/typed-array.xArrayDbl.len- declared inlib/typed-array.xArrayDbl.pop- declared inlib/typed-array.xArrayDbl.truncate- declared inlib/typed-array.xArrayDbl.truth- declared inlib/typed-array.xArrayFloat.capacity- declared inlib/typed-array.xArrayFloat.clear- declared inlib/typed-array.xArrayFloat.free- declared inlib/typed-array.xArrayFloat.len- declared inlib/typed-array.xArrayFloat.pop- declared inlib/typed-array.xArrayFloat.truncate- declared inlib/typed-array.xArrayFloat.truth- declared inlib/typed-array.xArrayInt.capacity- declared inlib/typed-array.xArrayInt.clear- declared inlib/typed-array.xArrayInt.free- declared inlib/typed-array.xArrayInt.len- declared inlib/typed-array.xArrayInt.pop- declared inlib/typed-array.xArrayInt.truncate- declared inlib/typed-array.xArrayInt.truth- declared inlib/typed-array.xArrayLong.capacity- declared inlib/typed-array.xArrayLong.clear- declared inlib/typed-array.xArrayLong.free- declared inlib/typed-array.xArrayLong.len- declared inlib/typed-array.xArrayLong.pop- declared inlib/typed-array.xArrayLong.truncate- declared inlib/typed-array.xArrayLong.truth- declared inlib/typed-array.xArrayShort.capacity- declared inlib/typed-array.xArrayShort.clear- declared inlib/typed-array.xArrayShort.free- declared inlib/typed-array.xArrayShort.len- declared inlib/typed-array.xArrayShort.pop- declared inlib/typed-array.xArrayShort.truncate- declared inlib/typed-array.xArrayShort.truth- declared inlib/typed-array.xArrayString.capacity- declared inlib/typed-array.xArrayString.clear- declared inlib/typed-array.xArrayString.free- declared inlib/typed-array.xArrayString.len- declared inlib/typed-array.xArrayString.pop- declared inlib/typed-array.xArrayString.truncate- declared inlib/typed-array.xArrayString.truth- declared inlib/typed-array.xArray.capacity- declared inlib/array.xArray.clear- declared inlib/array.xArray.free- declared inlib/array.xArray.len- declared inlib/array.xArray.pop- declared inlib/array.xArray.truncate- declared inlib/array.xArray.truth- declared inlib/array.xBytes.capacity- declared inlib/block.xBytes.clear- declared inlib/block.xBytes.free- declared inlib/block.xBytes.len- declared inlib/block.xBytes.pop- declared inlib/block.xBytes.truncate- declared inlib/block.xBytes.truth- declared inlib/block.xFile.clearerr- declared inlib/file.xFile.close- declared inlib/file.xFile.eof- declared inlib/file.xFile.error- declared inlib/file.xFile.fileno- declared inlib/file.xFile.flush- declared inlib/file.xFile.getc- declared inlib/file.xFile.getpos- declared inlib/file.xFile.pclose- declared inlib/file.xFile.purge- declared inlib/file.xFile.rewind- declared inlib/file.xFile.seek- declared inlib/file.xFile.seeko- declared inlib/file.xFile.setbuf- declared inlib/file.xFile.setpos- declared inlib/file.xFile.setvbuf- declared inlib/file.xFile.tell- declared inlib/file.xFile.tello- declared inlib/file.xFile.va_printf- declared inlib/file.xFile.va_scanf- declared inlib/file.xString.c_compare- declared inlib/string.xString.c_find- declared inlib/string.xString.c_len- declared inlib/string.x