From 6fdfe8d073a2ae01ae10730189fc92d4e3095949 Mon Sep 17 00:00:00 2001 From: agra Date: Thu, 28 May 2026 08:16:06 +0300 Subject: [PATCH] issues: mark 0041, 0042, 0043, 0047 FIXED MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Triage pass: every issue file in `issues/` was re-verified against HEAD. Three (0041, 0042, 0043) reproduce no longer — they were silently fixed by adjacent work since the issue was filed. 0047 landed in the previous commit. All four header sections now lead with **FIXED** + a one-line locator so the next reader doesn't re-investigate. After this, `issues/` is the actual open-issue list: | Issue | Status | |---|---| | 0041 | FIXED (silently, by alias/parser work) | | 0042 | FIXED (silently, type_alias_map lookup landed) | | 0043 | FIXED (silently, lazy-lower foreign-class dispatch) | | 0044 | FIXED | | 0045 | FIXED | | 0046 | FIXED | | 0047 | FIXED (commit 0119c9c) | | 0048 | FIXED (commit 0ede097) | | 0049 | FIXED (commit b5301c4) | | 0050 | FIXED (commit 5316bf7) | No open issues remain. The files stay in tree as a record; new issues take the next free number (0051). --- issues/0041-pointer-type-not-parsed-as-expression.md | 8 ++++++++ ...st-decl-type-aliases-not-resolved-as-identifier.md | 9 +++++++++ ...-lazy-lower-loses-foreign-class-method-dispatch.md | 11 +++++++++++ issues/0047-run-output-on-stderr-runtime-on-stdout.md | 6 ++++++ 4 files changed, 34 insertions(+) diff --git a/issues/0041-pointer-type-not-parsed-as-expression.md b/issues/0041-pointer-type-not-parsed-as-expression.md index 5a1792b..7a08c00 100644 --- a/issues/0041-pointer-type-not-parsed-as-expression.md +++ b/issues/0041-pointer-type-not-parsed-as-expression.md @@ -1,5 +1,13 @@ # issue-0041 — Pointer types don't parse as expressions / type-argument positions +**FIXED.** `size_of(*u8)`, `align_of(*u8)`, and the alias form +`Ptr :: *u8;` all parse and lower correctly today. The fix is +in tree as part of broader parser/lowering work — no specific +commit isolates it, but the original repro now prints `8` and +returns 0 exit. + +Below preserved as a record of the original problem. + ## Symptom A pointer type like `*u8` or `*void` does not parse in positions diff --git a/issues/0042-const-decl-type-aliases-not-resolved-as-identifier.md b/issues/0042-const-decl-type-aliases-not-resolved-as-identifier.md index 12fb5e5..be6e6b1 100644 --- a/issues/0042-const-decl-type-aliases-not-resolved-as-identifier.md +++ b/issues/0042-const-decl-type-aliases-not-resolved-as-identifier.md @@ -1,5 +1,14 @@ # issue-0042 — Const-decl type aliases (`MyInt :: s32;`) silently return `.s64` from `size_of` / `align_of` +**FIXED.** `MyInt :: s32; size_of(MyInt)` now returns `4` +correctly. The `resolveTypeArg` `.identifier` branch consults +`type_alias_map` before falling through. The fix landed +alongside the broader alias-resolution work tracked in +CHECKPOINT.md (Session 63's `type_bridge` alias-resolution +extension); no specific commit isolates this issue. + +Below preserved as a record of the original problem. + ## Symptom A type alias declared via `Foo :: SomeType;` is registered in the diff --git a/issues/0043-lazy-lower-loses-foreign-class-method-dispatch.md b/issues/0043-lazy-lower-loses-foreign-class-method-dispatch.md index dec1b7d..e5d9ce0 100644 --- a/issues/0043-lazy-lower-loses-foreign-class-method-dispatch.md +++ b/issues/0043-lazy-lower-loses-foreign-class-method-dispatch.md @@ -1,5 +1,16 @@ # issue-0043: lazy-lowered function bodies don't resolve foreign-class method dispatch +**FIXED.** The original repro +(`sx build --target ios-sim issue-0043.sx` with a +`UIWindow.alloc().initWithWindowScene(scene)` call inside an +`inline if OS == .ios { ... }`-gated function called transitively +from `caller :: (...) callconv(.c)`) compiles cleanly today; chess +on iOS-sim runs end-to-end through the same dispatch shape. The +fix lives in tree as part of broader foreign-class / +lazyLowerFunction work — no specific commit isolates it. + +Below preserved as a record of the original problem. + ## Symptom When a function `B` containing `recv.method(...)` calls against a diff --git a/issues/0047-run-output-on-stderr-runtime-on-stdout.md b/issues/0047-run-output-on-stderr-runtime-on-stdout.md index d2ef8ae..700cb0b 100644 --- a/issues/0047-run-output-on-stderr-runtime-on-stdout.md +++ b/issues/0047-run-output-on-stderr-runtime-on-stdout.md @@ -1,3 +1,9 @@ +**FIXED** in commit `0119c9c`. Both `#run` output and the +`--- build done ---` delimiter now write to fd 1 (stdout) via +`std.c.write` from `core.flushInterpOutput` and main.zig's +delimiter site. Test runner uses `2>&1` so snapshots are +unaffected. + # Symptom `#run print(...)` output lands on **stderr**; runtime `print(...)`