The M2 queue, decided item by item

This commit is contained in:
Joseph Ferano 2026-09-19 15:46:19 +07:00
parent 01e60fa5b7
commit 5f55c177ba

19
FIX.org
View File

@ -404,3 +404,22 @@ rename. typed-flan branch freezes the static language pre-dyn.
- Signature pairing's cold-rebuild edge: a later type definition can silently
re-pair an unannotated parameter vector; a changed-pairing warning between
compiles was proposed and not yet queued.
* M2 queue, decided with the author 2026-09-20 — in order
1. dyn maps + keywords (interned, O(1) equality). Retires edn/Value after.
2. Per-type descriptors: dyn fields in structs/conditions become markable.
3. Typed containers into dyn as VIEWS — one descriptor word in the box,
reads box the element, writes tag-check. Rides on 2. No copies.
4. nil: arrives with maps. nil <-> None at (Option T) boundaries, trap at
bare T, (Some nil) unconstructible.
5. Typed = and != grow strings: bytewise, length + same-pointer fast paths,
both backends, one survey program. Ordering stays refused.
6. defclass = named dyn map + shape tag; CLOS class dispatch AND
Clojure-style arbitrary dispatch functions. After 1.
7. dyn if: truthiness (nil/false are false, all else true). Typed stays
strict bool.
8. Return slot stays mandatory (dyn or ()) — the parse ambiguity it closes
is real; revisit only if it grates.
All of it dispatches after the x86-dyn lane lands. The struct dyn-field
refusal (01e60fa) is the stopgap 2 lifts.