From 5f55c177baaa460cd24a9094102bf30a051167f0 Mon Sep 17 00:00:00 2001 From: Joseph Ferano Date: Sat, 19 Sep 2026 15:46:19 +0700 Subject: [PATCH] The M2 queue, decided item by item --- FIX.org | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/FIX.org b/FIX.org index 1cc40ad..1aeb28b 100644 --- a/FIX.org +++ b/FIX.org @@ -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.