Make the POSIX timeout module respect target selection during Windows corpus checks
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
Observed at PR #631 head `d811e0c2accc8997eecb5071f8752f88e9fb44e4`. [Failing CI job](https://github.com/wavefnd/Wave/actions/runs/34737095086/job/103670349649).
The Windows GNU amd64 job fails its standard-library corpus check with `E3001: module 'std::sys::socket' has no symbol 'MSG_DONTWAIT'`. The corpus result is 279 passed / 1 failed; all 26 standard-library examples pass.
The new `std/net/posix_timeout.wave` imports the Unix-only symbol unconditionally. Target selection at the `tcp.wave` import site does not protect this file when the corpus checker checks each module directly. Locally reproduced with:
```sh
target/debug/wavec check std/net/posix_timeout.wave --target x86_64-pc-windows-gnu
```
Scope: make the module's imports/declarations target-appropriate, or apply an explicit supported-target contract in corpus discovery. Do not invent a Windows MSG_DONTWAIT constant or drop platform validation wholesale.
Acceptance:
- Windows GNU corpus and examples pass, and the native Windows timeout implementation remains selected.
- Linux/macOS/FreeBSD still check the real POSIX timeout implementation.
- Add a focused regression for standalone module checking on an incompatible target.
This is a target-selection regression introduced in #631, separate from the runtime deadline behavior in #510.
Source references:
- [std/net/posix_timeout.wave](https://github.com/wavefnd/Wave/blob/d811e0c2accc8997eecb5071f8752f88e9fb44e4/std/net/posix_timeout.wave)
- [std/net/tcp.wave](https://github.com/wavefnd/Wave/blob/d811e0c2accc8997eecb5071f8752f88e9fb44e4/std/net/tcp.wave)
- [tools/check_wave_corpus.py](https://github.com/wavefnd/Wave/blob/d811e0c2accc8997eecb5071f8752f88e9fb44e4/tools/check_wave_corpus.py)
Contributor guide
Research direction
Start with std/net/posix_timeout.wave and compare its target handling with std/net/tcp.wave. Run `target/debug/wavec check std/net/posix_timeout.wave --target x86_64-pc-windows-gnu`, then inspect tools/check_wave_corpus.py and add the focused standalone-check regression. Done means Windows GNU corpus and examples pass while POSIX implementations still check on Linux, macOS, and FreeBSD.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 74/100