docs: record epoll Loop runtime validation on real Linux (Apple container)
The std.event.Loop epoll backend is now runtime-validated, not just lower-verified: a static aarch64-linux build of the 1632-equivalent Loop test (plus the eventfd wake path) runs 6/6 green inside an Apple `container` Linux VM (kernel 6.18 aarch64) — add_read, idle-timeout, readable+fd+udata, the MOD-mask add_write path, the eventfd wake channel, and EPOLLRDHUP/HUP eof all behave identically to kqueue (lone difference: nbytes is 0 on epoll). Update the event.sx VALIDATION note (with the re-run recipe) and the fibers checkpoint; the epoll deliverable is complete.
This commit is contained in:
@@ -531,12 +531,16 @@ a kqueue `EVFILT_TIMER`, future work.
|
||||
> aarch64 16 B layout also probe-verified). (B) **`std.event.Loop` branched on `inline if OS`** into two
|
||||
> top-level OS-selected structs (sx has no conditional struct fields): the kqueue Loop unchanged
|
||||
> (darwin, runs — 1632 green), a new epoll Loop (linux) with the per-fd registration table (combined
|
||||
> EPOLLIN/OUT mask via ADD/MOD/DEL), eventfd wake channel, and EPOLLRDHUP→eof. **Verified to LOWER**
|
||||
> clean for both linux arches (every epoll syscall emits) + self-reviewed; NOT corpus-snapshotted (a
|
||||
> Loop example drags the std barrel → ~18k-line brittle IR — documented in event.sx). Runtime validation
|
||||
> pends a linux runner. **Remaining:** a linux CI run to validate end-to-end; optionally route sched.sx
|
||||
> `block_on_fd` through `std.event` (still needs the linux sched.sx port — mmap consts, tramp symbol,
|
||||
> errno, x86_64 SysV switch).
|
||||
> EPOLLIN/OUT mask via ADD/MOD/DEL), eventfd wake channel, and EPOLLRDHUP→eof. **RUNTIME-VALIDATED on
|
||||
> real Linux:** a static `aarch64-linux` build of the 1632-equivalent Loop test (+ the eventfd wake path)
|
||||
> ran **6/6 green inside an Apple `container` Linux VM** (kernel 6.18 aarch64) — add_read, idle-timeout,
|
||||
> readable+fd+udata, the MOD-mask add_write path, the eventfd wake channel, and EPOLLRDHUP/HUP eof all
|
||||
> behave identically to kqueue (lone documented difference: `nbytes` is 0 on epoll). Also lowers clean for
|
||||
> both linux arches; the ABI is corpus-locked by 1633. NOT corpus-snapshotted (the corpus runner is
|
||||
> host-based, not container-aware; a Loop example drags the std barrel → ~18k-line brittle IR).
|
||||
> **The epoll deliverable is COMPLETE.** Re-validation recipe in the event.sx VALIDATION note. Optional
|
||||
> follow-on: route sched.sx `block_on_fd` through `std.event` (still needs the linux sched.sx port — mmap
|
||||
> consts, tramp symbol, errno, x86_64 SysV switch).
|
||||
|
||||
> **✅ issue 0192 FIXED (2026-06-26) — epoll work UNBLOCKED.** A qualified-import-member const
|
||||
> (`m.EV_SIZE`) now folds as a compile-time constant in every position the bare/flat form does
|
||||
|
||||
Reference in New Issue
Block a user