CHECKPOINT-COMPILER-API: record issue 0143 RESOLVED

This commit is contained in:
agra
2026-06-18 19:43:18 +03:00
parent f807436f04
commit fdc4ee2331

View File

@@ -373,6 +373,17 @@ when reached (sentinels or accessor fns; see the design doc Risks).
`List` growth; orthogonal, see `current/CHECKPOINT-METATYPE.md`.)
## Log
- **Phase 4 burndown — issue 0143 FIXED (pack-as-`[]Type` stride) + regression test (2026-06-18).**
Root cause was a stale consequence of the `.type_value` migration: `buildPackSliceValue`
(`lower/pack.zig`) materialized a bare `$<pack>` `[]Type` slice as `[]Any` (16-byte elements) while
`const_type` now yields an 8-byte `.type_value` and `[]Type` resolves to `[]type_value` — so 8-byte
words sat in 16-byte slots and an 8-byte-stride reader got `[t0, pad, t1, …]`. Fixed by building the
array+slice as `.type_value` (8 bytes). Removed the stopgap `type_name` `.unresolved` guard (its
whole reason is gone; dropping it keeps any future stride bug VISIBLE as wrong output rather than a
silent fallback). Sibling `materialisePackSlice` checked — it genuinely boxes values into `[]Any`
(correct, not the same bug). Regression test `examples/0525-packs-pack-as-type-slice-arg`. **700/0
both gates.** 0114 (and 0521/0522/0524) now bail ONLY at `out` (the deferred end-state op) — the
type bug is gone. issue 0143 RESOLVED.
- **Phase 4 burndown — switch_br + type_name ported; issue 0143 filed; KEY sequencing insight: `out` is end-state-only (2026-06-18).**
Ported two PURE comptime ops (`379ed05`): `switch_br` (i64-discriminant multi-way branch — enum/error
tag or `.type_value` index) and `type_name` (Type value / Any box → `table.typeName`, with an