You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Step 5 of the #122 plan of record. Blocked on toolchain access (QNX SDP license + qcc); everything the port needs from the tree already landed, so this is a small, well-bounded change when someone with the SDP picks it up.
poll/ — the poll(2) wrapper the reactor uses; per-OS wake primitives are documented to land here with their consumer.
qnx is a native V OS ident (verified against V master: pref/os.v:24, -os qnx parsed at os.v:93, _qnx.c.v file suffix at should_compile.v:154,306) — zero compiler work needed.
The darwin/kqueue facade (server/server_darwin.c.v) is the exact precedent for the facade shape.
server/server_qnx.c.v — [OS-suffix] facade: IOBackend{poll = 0} + run_selected_backend → run_poll_backend (mirror of the darwin facade, pointing at the poll floor).
socket/caps_qnx.c.v — comptime capability consts, only those with a consumer at birth (has_so_reuseport = false, max_unix_path).
Step 5 of the #122 plan of record. Blocked on toolchain access (QNX SDP license +
qcc); everything the port needs from the tree already landed, so this is a small, well-bounded change when someone with the SDP picks it up.Already in place (nothing to redesign)
server/backend_poll/— the pure-POSIX level-triggered reactor QNX rides first (tier 1). It passes the whole behaviour suite on Linux CI under-d vanilla_poll(feat: poll(2) portability-floor backend behind -d vanilla_poll (issue #122 step 4) #126), so the reactor itself is already exercised on every PR.poll/— the poll(2) wrapper the reactor uses; per-OS wake primitives are documented to land here with their consumer.qnxis a native V OS ident (verified against V master:pref/os.v:24,-os qnxparsed atos.v:93,_qnx.c.vfile suffix atshould_compile.v:154,306) — zero compiler work needed.server/server_darwin.c.v) is the exact precedent for the facade shape.Work plan (3 suffix files + recipes, per #122)
server/server_qnx.c.v—[OS-suffix]facade:IOBackend{poll = 0}+run_selected_backend→run_poll_backend(mirror of the darwin facade, pointing at the poll floor).socket/caps_qnx.c.v— comptime capability consts, only those with a consumer at birth (has_so_reuseport = false,max_unix_path).poll/wake_qnx.c.v— per-OS wake primitive (self-pipe;SIGEV_PULSE/ionotify is tier 2, a separatebackend_ionotify/module ONLY if the poll floor measures short — never$ifsoup, per the Module tree restructure for multi-protocol + multi-platform growth: hoist the protocol-neutral substrate, rename http_server → server, protocols as sibling top-level modules #122 rule of thumb).cross/qnx-x86_64.env+cross/qnx-arm64.env—v -os qnx -cc qccrecipe, SDP sourcing notes, libsocket vs io-sock link note.Acceptance
v -os qnx -cc qcc examples/simple/srccompiles against the SDP.unix_socket_path) exercised — QNX supports AF_UNIX +SCM_RIGHTS.Refs: #122 (sequencing + platform story), #126 (the poll floor).