RFCs
Design notes for non-obvious language and compiler decisions. An RFC records why a thing is built the way it is; the code is the source of truth for how.
| # | Title | Status | Governs |
|---|---|---|---|
| 0001 | A Specification for the Clojure Language | Draft | The conformance target — what "is Clojure" means for jolt. |
| 0003 | Transients | Accepted | transient/persistent! semantics + the Chez mutable backing. |
| 0004 | Type hints + keyword-lookup specialization | Accepted | ^Type/^:struct hints → the bare-get fast path. |
| 0005 | Structural collection-type inference | Implemented | The :struct/:vec/:set lattice in passes/types. |
| 0006 | Success typing (provably-wrong-code detection) | Implemented | The error-domain checker in passes/types. |
| 0007 | Compilation modes + binary output | Implemented | release/--opt/--dev, --direct-link, --tree-shake, numeric lowering, inlining. |
| 0008 | Splitting time between core and the library | Implemented | The base java.time value types are in core; formatting and zones are jolt-lang/time. |
| 0009 | Program image dump and restore | Implemented | jolt.image — writing program state to a file and restoring it on another machine or architecture. |
| 0010 | The portable Scheme layer | Implemented | Contract + adapter isolating the host from Chez, with capability degradations — the boundary a second target (Guile, WASM) ports against. |