Publish rolling Nightly builds and complete Windows local IPC support - #839
Merged
Merged
Conversation
Signed-off-by: LunaStev <luna@lunastev.org>
The Windows local-address provider always returns -95, and the Windows branches of `_unix_socket` and `unix_remove` do the same. Consequently, portabl... Signed-off-by: chenzeyan54-commits <chenzeyan54-commits@users.noreply.github.com> (cherry picked from commit 950ae4f) Signed-off-by: LunaStev <luna@lunastev.org>
(cherry picked from commit dd90054) Signed-off-by: LunaStev <luna@lunastev.org>
(cherry picked from commit a5520b1) Signed-off-by: LunaStev <luna@lunastev.org>
Use the Windows sockaddr_un layout and validate UTF-8 pathname bytes before opening sockets. Enable the existing stream operations and explicit removal, retaining native errors and closing sockets on failed setup. Preserve finite and infinite empty event waits through Sleep without calling WSAPoll with no descriptors. Cover native Windows targets and injected OS failures, including cleanup errors, byte boundaries, and timeout behavior. Follow up on wavefnd#796 and wavefnd#797; address wavefnd#795 and wavefnd#793. Signed-off-by: LunaStev <luna@lunastev.org>
This was referenced Oct 2, 2026
Link OS-boundary mocks without PIE, exercise fatal WASI exits with live host handles, and point the README build badge at ci.yml. Signed-off-by: LunaStev <luna@lunastev.org>
Open
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.
Summary
Publish validated master builds through a rolling Nightly release and complete the Windows local IPC fixes from #796 and #797. The contributor commits retain their original authors and messages; a follow-up commit completes the implementation and regression coverage.
Publish one rolling
nightlytag andWave NightlyGitHub pre-release after a successful canonical master run of Wave CI. Build the exact validated SHA using the existing eight distribution package plans, then publish generation-specific archives, checksums, and metadata. Release notes identify the source commit, compiler version, build time, and workflow run.Keep the current download generation available while uploading and verifying its replacement. Reject older or divergent candidates, handle interrupted publication on retry, and remove obsolete assets only after promotion succeeds. There is no scheduled rebuild without a master update; manual dispatch retries a specified successful CI run.
Motivation
Closes #831. Closes #795. Closes #793. Part of #832.
The existing Windows pathname stream API always returned unsupported, and empty event sets reached an invalid
WSAPollcall. This adds pathname streams and preserves zero, finite, and infinite empty-wait semantics.Users need a direct download of the most recent successfully validated master build. Failed validation or packaging must preserve the previous working Nightly.
Deployment dependency: wavefnd/wave-platform#145 must be merged and its installers deployed before this workflow can pass its gate. The gate checks the reviewed SHA-256 of both public installer scripts, and checks again before publication. Future installer changes require updating these pins. This prevents publishing Nightly while the live versioned installers could select it.
Target and compatibility impact
Windows IPC:
unix_remove, including after a successful bind followed by a failed listen. Existing paths are never automatically removed before bind.Sleep(timeout), and infinite waits useSleep(INFINITE). Nonempty sets retain their existing WSAPoll behavior.Nightly:
python -m tools.ci.release --channel nightly.Validation
CI follow-ups:
-no-pie, matching Wave's static object output. The OS-boundary regression passed with a local clang wrapper imposing a PIE default.proc_exit(7)host test. The synchronous command host now reads, compiles, and instantiates its module synchronously, removing the asynchronous startup path. Existing timer-keepalive exit tests remain, with trap and invalid-module failures added. The Windows timeout was not reproduced locally; CI must confirm this mitigation.python3 -m unittest tools.test_ci tools.test_nightly: 37 passed. Rust formatting, JavaScript syntax, and whitespace checks passed.ci.yml.Windows IPC changes:
cargo +1.89 test --locked --jobs 2 --no-default-features --features llvm-target-core64 --test native_providers windows_pathname_streams_and_empty_events: 16 O0/O2 object builds for Windows amd64 and ARM64 passed.--test native_providers native_provider_os_boundary_failurespassed. New OS-boundary mocks exercise address validation, socket/bind/listen/connect failures, resource closure and preservation of the original error, and empty/nonempty waits at O0/O2.--test native_providers network_error_tables_and_async_sleep_results_run_on_native_hostspassed on Linux.--test codegen_regressions std_net_compiles_for_every_supported_socket_abipassed for the existing networking examples across the supported socket ABIs.native_providersandboundary_regressionswith the same features and-D warnings,cargo +1.89 fmt --all -- --check, andgit diff --checkpassed.net_unixexample passed Linux execution and Windows amd64/ARM64 object compilation at O0/O2. Linux socket execution required running outside the filesystem/network sandbox.ff5b5ce0in run 37001816771. Tests cover byte exchange, shutdown/EOF, explicit deletion and rebinding, occupied/missing paths, UTF-8 and 107/108-byte boundaries, finite waits, and a bounded child-process check of infinite blocking. These native runs were on CI, not local Windows execution.Nightly validation:
tools.test_nightlytests using an in-memory GitHub implementation; no live publication.git diff --checkpassed. Companion Bash and PowerShell installer regressions passed.Checklist
Signed-off-byline.std/.