diff --git a/current/CHECKPOINT-FIBERS.md b/current/CHECKPOINT-FIBERS.md index 5c42d6cd..1a4e434c 100644 --- a/current/CHECKPOINT-FIBERS.md +++ b/current/CHECKPOINT-FIBERS.md @@ -142,6 +142,14 @@ prelude shifts many `.ir` type tables; confirm the diff is ONLY layout/numbering vtable, NO error text. The `Context` layout decision is settled: `{ allocator; data; io; }` (allocator index 0 fixed by `call.zig:1229`, `io` last). +**API CORRECTION (user, 2026-06-20):** `async`'s args are a **variadic heterogeneous +comptime pack** `..$args: []Type` ([specs.md:1383](../specs.md#L1383)), NOT a single `$A`. +Shape: `async(io, worker, ..args)` forwards a per-position-typed pack to `worker` (so +`context.io.async(fn, a, b, c)` works at any arity). The WIP's single-`arg: $A` form is +superseded — re-land async with the pack. This is ORTHOGONAL to issue 0151 (which is about +the *return* type-var `$R` not binding in the body — needed regardless of arg shape); also +verify packs-in-fn-pointer-param-signatures work when re-landing (surface a new issue if not). + NOTE for the resume: do NOT add `io = context.io` to the 17 partial `push Context.{...}` sites — the push-inherit-omitted fix (in the WIP diff) makes omitted fields inherit from the ambient context, which is the correct fix and was verified to compile. Use that, not per-site edits.