cl-cc-runtime¶
cl-cc-runtime is the target runtime that the
cl-cc compiler emits code against. It
is a library of runtime services -- a generational garbage collector, a managed
heap, a NaN-boxed value representation, register frames, and a large set of
concurrency primitives -- exported from a single package, cl-cc/runtime. It
targets SBCL only.
(let* ((heap (cl-cc/runtime:make-rt-heap :young-size 64 :old-size 64))
(addr (cl-cc/runtime:rt-gc-alloc heap cl-cc/runtime:+rt-tag-cons+ 3)))
(cl-cc/runtime:rt-gc-minor-collect heap)
(getf (cl-cc/runtime:rt-gc-stats heap) :minor-gc-count))
;; => 1
Where to go next¶
- Getting Started adds the flake input and the
:depends-onentry, confirms the system loads, then walks one task end to end: allocating on the managed heap, registering a root, and collecting. - Core Concepts explains the four ideas the rest of the API is built on -- word-addressed heaps, NaN boxing, roots, and cooperative scheduling.
- API Reference lists the exported entry points by subsystem.
- Conditions is the catalogue of condition types this library signals.
- Architecture describes how
src/is divided and why. - Production Readiness is a written audit against concrete criteria: testing depth, timeout discipline, error handling, observability, and what is honestly still incomplete.
- Development has the build, test, coverage and formatting commands.
Scope¶
This library is deliberately not a general-purpose concurrency toolkit for application code. Its API is shaped by what a compiler back end needs to emit: word addresses rather than objects, explicit root registration rather than conservative stack scanning, and primitives that a code generator can call without a runtime type dispatch.
If you want structured logging, process execution or JSON for ordinary application code, use cl-log-kit, cl-process-kit and cl-json-kit directly. This library depends on all three rather than reimplementing them.
Project¶
Source, issues and releases live at https://github.com/nerima-lisp/cl-cc-runtime. Contribution guidelines, the code of conduct, the security policy and support channels are org-wide and live in nerima-lisp/.github.