From eee905c73c6eea4ae486ca20f9a69650a49aab43 Mon Sep 17 00:00:00 2001 From: agra Date: Sat, 20 Jun 2026 21:51:01 +0300 Subject: [PATCH] fibers B1.2: lambda-only async (named-fn :: feature deferred) User decision: ship B1.2 async with lambda workers (works today, zero compiler change); defer named-fn workers, which need a new :: callable- parameter language feature (3 failed worker attempts; partial WIP saved at .sx-tmp/wip-callable-params/). Records the resolved lambda async idiom + resume plan; no compiler/library code changed. --- current/CHECKPOINT-FIBERS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/current/CHECKPOINT-FIBERS.md b/current/CHECKPOINT-FIBERS.md index 85c40002..48110997 100644 --- a/current/CHECKPOINT-FIBERS.md +++ b/current/CHECKPOINT-FIBERS.md @@ -140,6 +140,14 @@ fibers/Io/scheduler code yet. Grounded floor facts: boundary; a sharper sx diagnostic for it is a candidate polish, not a blocker. ## Next step +**DECISION (user, 2026-06-20): B1.2 async = LAMBDA workers only for now; named-fn workers +(`async(read_a, conn)`) are DEFERRED.** Named-fn support needs a new `::` callable-parameter +language feature (`fn :: (..$args) -> $R` param) that doesn't exist yet — it failed 3 worker +attempts; the partial WIP (parser+scaffolding done, type-pack/return inference INCOMPLETE — +panics on every form) is saved at `.sx-tmp/wip-callable-params/patch.diff` for a dedicated +future effort. So B1.2 ships with the lambda idiom below; call sites use +`context.io.async((c) => read_a(c), conn)` until the `::` feature lands. + **B1.2 — resume now (UNBLOCKED, no compiler fix needed).** Re-land from the saved WIP (`.sx-tmp/b12-wip/`): keep the verified-working parts — the `Io` protocol on `Context`, both `__sx_default_context` materializers (protocol.zig + comptime_vm.zig), the push-inherit-omitted