Add the async-first execution-model roadmap (comptime JIT spine, colorblind fibers/Io, atomics, hot-reload) with all seven decisions resolved and three-way reviewed, and carve the first stream: comptime type_info/reify (PLAN-REIFY + checkpoint) — the codebase-validated foundation for channel result types and race's synthesized tagged union.
1.6 KiB
1.6 KiB
CHECKPOINT-REIFY — comptime type_info / reify (async-first foundation, step 3)
Companion to PLAN-REIFY.md. Update after every step (one step at a time, per the cadence rule).
Last completed step
None — stream just carved. Design validated (3 codebase reviewers; all five reify contracts confirmed feasible). No code written yet.
Current state
- The plan + the five locked contracts exist in
PLAN-REIFY.md; design-of-record isdesign/execution-evolution-roadmap.md§7 step 3 + §8.1. - Nothing built.
reify/type_info/field_typedo not exist in the compiler. - Confirmed against the source (anchors in the plan): type minting via
intern/internNominalis programmatic and AST-free; type-fns memoize by mangled name; enum codegen is fully type-table-driven (zero AST coupling); recursive forward-declaration (reserve→complete) already exists for source types.
Next step
Phase 0.0 (lock): add TypeInfo/EnumInfo/EnumVariant data types + bodyless
#builtin decls for reify/type_info/field_type to library/modules/std/core.sx
(parsed, unimplemented → loud bail), with a unit test that the decls parse. Then 0.1
(xfail: examples/06xx-comptime-reify-enum.sx) → 0.2 (green: implement reify(.enum_)).
Known issues
None yet.
Log
- Stream carved. Selected as the first async-first foundation:
reifygates both channel result types (RecvResult($T)) andrace's synthesized union, is fully validated (3 reviewers), and is a self-contained compiler/type-system feature testable in isolation (06xxcomptime). Generic-enum syntax dropped in its favor.