Navigability groundwork from the architecture review — zero behaviour change. - docs/MODULES.md: the repo map. Area -> directory -> key files -> re-mint?, plus per-feature touch points (tree-shaking, direct-linking, numeric fl/fx, inlining, multimethods, deps) and where a given clojure.core fn lives. Answers "where does X live / what's related to Y" in one read. - docs/rfc/README.md: index the 7 RFCs; flags RFC 0007's stale "no code yet" status (direct-linking + tree-shaking shipped) and the undocumented inlining/numeric work. - CLAUDE.md: document the var-deref calling convention (public defns reached from the .ss runtime by string lookup aren't dead), the def-var! native pattern, and the overlay shadowing rule; point at MODULES.md. - REFACTOR_PLAN.md: the prioritized, risk-tiered plan (working doc for this branch). |
||
|---|---|---|
| .. | ||
| 0001-language-specification.md | ||
| 0002-reader-conditional-features.md | ||
| 0003-transients.md | ||
| 0004-type-hints.md | ||
| 0005-structural-type-inference.md | ||
| 0006-success-type-checking.md | ||
| 0007-compilation-modes-and-binary-output.md | ||
| README.md | ||
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. |
| 0002 | Reader-Conditional Feature Set | Accepted | #?(...) feature keys (:jolt, :clj, :default). |
| 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 (doc lags) | release/--opt/--dev, --direct-link, --tree-shake. |
RFC 0007's own status line still says "Draft, no code yet" — that is stale:
direct-linking and tree-shaking shipped (see tools-deps.md and
backend_scheme.clj / build.ss). Two compiler features that grew alongside it —
IR inlining (passes/inline.clj, under --opt) and numeric fl*/fx*
lowering from ^double/^long hints (passes/numeric.clj) — are not yet written
up as RFCs; their touch points are in ../MODULES.md.