Skip to content

Make the POSIX timeout module respect target selection during Windows corpus checks #632

Description

@LunaStev

Observed at PR #631 head d811e0c2accc8997eecb5071f8752f88e9fb44e4. Failing CI job.

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:

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:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA problem that causes incorrect behavior or crashes.ciGitHub CI or CIgood first issueIssues that are good for newcomers or first-time contributors.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions