docs: module map, RFC index, refactor plan (arch-refactor tier 0)
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).
This commit is contained in:
parent
7d1f0b058c
commit
d84c88f830
4 changed files with 242 additions and 0 deletions
21
docs/rfc/README.md
Normal file
21
docs/rfc/README.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# 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](0001-language-specification.md) | A Specification for the Clojure Language | Draft | The conformance target — what "is Clojure" means for jolt. |
|
||||
| [0002](0002-reader-conditional-features.md) | Reader-Conditional Feature Set | Accepted | `#?(...)` feature keys (`:jolt`, `:clj`, `:default`). |
|
||||
| [0003](0003-transients.md) | Transients | Accepted | `transient`/`persistent!` semantics + the Chez mutable backing. |
|
||||
| [0004](0004-type-hints.md) | Type hints + keyword-lookup specialization | Accepted | `^Type`/`^:struct` hints → the bare-`get` fast path. |
|
||||
| [0005](0005-structural-type-inference.md) | Structural collection-type inference | Implemented | The `:struct`/`:vec`/`:set` lattice in `passes/types`. |
|
||||
| [0006](0006-success-type-checking.md) | Success typing (provably-wrong-code detection) | Implemented | The error-domain checker in `passes/types`. |
|
||||
| [0007](0007-compilation-modes-and-binary-output.md) | 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](../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](../MODULES.md).
|
||||
Loading…
Add table
Add a link
Reference in a new issue