From fdc4ee2331e5ae8c604453285330669e82b7b3b9 Mon Sep 17 00:00:00 2001 From: agra Date: Thu, 18 Jun 2026 19:43:18 +0300 Subject: [PATCH] CHECKPOINT-COMPILER-API: record issue 0143 RESOLVED --- current/CHECKPOINT-COMPILER-API.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/current/CHECKPOINT-COMPILER-API.md b/current/CHECKPOINT-COMPILER-API.md index f0044b3c..5e9993a8 100644 --- a/current/CHECKPOINT-COMPILER-API.md +++ b/current/CHECKPOINT-COMPILER-API.md @@ -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 `$` `[]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