CHECKPOINT-COMPILER-API: record issue 0143 RESOLVED
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user