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.
33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# CHECKPOINT-REIFY — comptime `type_info` / `reify` (async-first foundation, step 3)
|
|
|
|
Companion to [PLAN-REIFY.md](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 is
|
|
`design/execution-evolution-roadmap.md` §7 step 3 + §8.1.
|
|
- **Nothing built.** `reify`/`type_info`/`field_type` do not exist in the compiler.
|
|
- Confirmed against the source (anchors in the plan): type minting via
|
|
`intern`/`internNominal` is 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: `reify` gates both
|
|
channel result types (`RecvResult($T)`) and `race`'s synthesized union, is fully
|
|
validated (3 reviewers), and is a self-contained compiler/type-system feature
|
|
testable in isolation (`06xx` comptime). Generic-enum syntax dropped in its favor.
|