Adopt deltic's A5 parking kernel; pin pre-a67ee83 - #43
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.tskeeps only the synthetic network and mints kernelPollable(ready, wait)instances over its datagram queues. The repo-wide deltic pin moves topre-a67ee83.Why the bump is worth it
pollhas a sync fast path ours lacked (a ready poll returns without the engine continuation hop; ~half our polls paid it needlessly), and the pin carries thelist<u8>bulk-copy store fix (cabi: host->guest list<u8> lift is per-element (~22 MB/s ceiling); guest->host lower is bulk (~6.4 GB/s) polyengine#54). Measured: blobs phase-2 fetch 4.8 → 6.3 MiB/s; relay-ws browser phase-2 echo p50 940 → 620 µs.polls/suspendeddriver counters retire with it (the kernel owns that seam), datagram/ws/webrtc counters stay.Upstream fixes this adoption surfaced (both found by these spikes, fixed and gated upstream)
pollexport (the0a55393-era JSR publishes were missing).pendingHostCallsbefore 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 within milliseconds of spike startup. Gated upstream at conformance 1254/0 (95 named xfails).Also rides along:
demo.ts's JSPI feature probe readsWebAssembly.Suspendinguntyped (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 checkacross all three experiments including browser entries;just exam-deltic5/5; relay-wsrun.sh+ browser-test (migration 50 ms); blobsrun.sh+ browser-test; ping-demobuild.sh+ full Playwright suite.