The next batch, ordered, with what runs in parallel
This commit is contained in:
parent
a1827adb66
commit
9669ff23d0
35
NEXT.md
35
NEXT.md
@ -405,6 +405,41 @@ acquisitions against releases at that boundary and report what is still held at
|
||||
annotation, nothing running at a distance — it does not change how code is written, it reports when something was
|
||||
forgotten.
|
||||
|
||||
## The next batch, in order
|
||||
|
||||
Agreed at the end of 2026-09-12. Ordered by priority, not by size. Items 1-3 and 5-6 want the compiler core and should
|
||||
run one lane at a time; item 4 is disjoint and runs alongside any of them.
|
||||
|
||||
1. **Fix the one failing test** — `the frame of a superseded body answered with the new body's names`. The slot
|
||||
fingerprint that should refuse a frame whose body was redefined since it was entered does not fire, so a rename
|
||||
keeping the same slot count and types shows new names against old values. The suite has been green all session apart
|
||||
from this, and a red suite stops being a signal quickly. The handoff says to start by printing both sides of the
|
||||
comparison in `Dev.locals`.
|
||||
|
||||
2. **The colon-to-dot change.** Cheap, mechanical, ~284 sites across 45 files — and it must land **before** `Map`, or
|
||||
map literals and struct literals collide and both have to change instead of one. It gets more expensive every day
|
||||
more Flan is written. See the decision above for the destructuring wrinkle to settle in the same pass.
|
||||
|
||||
3. **`Map`, and the `defer` relaxation.** `Map` is step 4 of the container build order and finishes what `Vec` started.
|
||||
The `defer` change — permitting it in a `let` whose extent is the function body — is small, independent, and is the
|
||||
whole of the resource-cleanup answer.
|
||||
|
||||
4. **The Emacs batch. Disjoint from the compiler, so it runs in parallel with anything above.** Globals in the break
|
||||
buffer; the buffer opening itself when the program stops; the indentation rewrite with `clojure-mode` as the
|
||||
reference; `#_`; hex, binary and addresses on primitives in the inspector. The indentation one is worth doing first
|
||||
within this batch — it costs friction on every keystroke today.
|
||||
|
||||
5. **`Handle` and the pool.** A reference to something that can die, that reports that it died rather than silently
|
||||
resolving to whatever reused the slot. Wanted on its own terms for entities referred to across frames, and it is the
|
||||
real gate on classes. Buildable now that the allocator exists.
|
||||
|
||||
6. **Signature generations and stale-caller warnings.** The biggest remaining hole in "you never restart the program" —
|
||||
a changed signature is still refused rather than versioned. Last because it is the largest and nothing else waits on
|
||||
it.
|
||||
|
||||
Deliberately not scheduled: the JS backend and header-based C interop, both large and neither blocking current work; a
|
||||
debug tracking allocator, which is the leak safety net and a good candidate whenever it is wanted.
|
||||
|
||||
## Blocked and unfinished
|
||||
|
||||
Everything below was found, decided or half-built and then stopped. Each says what blocks it. Nothing here is a
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user