Skip to content

Adopt deltic's A5 parking kernel; pin pre-a67ee83 - #43

Merged
lann merged 1 commit into
mainfrom
deltic-a5-kernel
Aug 11, 2026
Merged

Adopt deltic's A5 parking kernel; pin pre-a67ee83#43
lann merged 1 commit into
mainfrom
deltic-a5-kernel

Conversation

@lann

@lann lann commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #41: deltic's wasi-shims now own the p2 parking kernel (A5, scoped explicitly to this repo's upstream-iroh spikes), so the experiments delete their own parking machinery — sockets.ts keeps only the synthetic network and mints kernel Pollable(ready, wait) instances over its datagram queues. The repo-wide deltic pin moves to pre-a67ee83.

Why the bump is worth it

Upstream fixes this adoption surfaced (both found by these spikes, fixed and gated upstream)

Also rides along: demo.ts's JSPI feature probe reads WebAssembly.Suspending untyped (deltic's jspi types are module-scoped now — JSR forbids global augmentation), and the translator asset sha changes to the size-tuned 1.85 MB artifact.

Gates at the new pin (all green): deno check across all three experiments including browser entries; just exam-deltic 5/5; relay-ws run.sh + browser-test (migration 50 ms); blobs run.sh + browser-test; ping-demo build.sh + full Playwright suite.

wasi-shims now owns the p2 parking kernel (deltic A5, built against
this repo's spikes as the scoping consumer): real poll/timer suspension
with a publicly constructible Pollable(ready, wait) as the interop
seam. The experiments' sockets module deletes its own Pollable class,
suspending poll loop, timer machinery, and monotonic-clock override —
what remains is just the synthetic network (sockets, bridge hooks,
datagram routing), minting kernel pollables over its queues. The
polls/suspends driver counters go with the deleted poll (the kernel
owns that seam now); datagram/ws/webrtc counters stay.

The kernel's poll has a sync fast path ours lacked (a ready poll
returns without the engine continuation hop — roughly half our polls
paid it needlessly), and the pin also carries the list<u8> bulk-copy
store fix (deltic#54): the blobs spike's phase-2 fetch moves 4.8 ->
6.3 MiB/s, and the browser echo p50 drops 940 -> 620us.

The bump rides on two upstream fixes this adoption surfaced:
polymorph-components/polyengine#73 (JSR no-slow-types on the A5 poll export — the
0a55393-era JSR publishes were missing) and polymorph-components/polyengine#77 (the
deadlock probe re-checks pendingHostCalls before its verdict; A5's
fast path let the probe sample the store between an A1 settle and the
next park and trap a live workload — found by these spikes, fixed and
gated upstream: conformance 1254/0/95-xfail).

Also: demo.ts's JSPI feature probe reads WebAssembly.Suspending
untyped — deltic's jspi types are module-scoped now (no global
augmentation, a JSR constraint).

Gates at the new pin: deno check green across all three experiments
(browser entries included); just exam-deltic — EXAM PASS (5/5);
iroh-relay-ws run.sh + browser-test (migration 50ms, phase 2 p50
620us); iroh-blobs run.sh + browser-test (phase 2 6.32 MiB/s);
ping-demo build.sh + Playwright suite PASS.
@lann
lann enabled auto-merge August 11, 2026 00:38
@lann
lann merged commit 8e2a648 into main Aug 11, 2026
1 check passed
@lann
lann deleted the deltic-a5-kernel branch August 11, 2026 00:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant