Add native Windows process spawning and waiting APIs
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
## Summary
The Windows process provider currently implements only `exit` and `getpid`. POSIX-only operations such as `fork`, `execve`, and `waitpid` return `-ENOSYS`, leaving `std::process` without a usable Windows process model.
## Related issue
- #385
## Scope
Design and implement a Windows-native process surface based on process creation, waiting, exit status retrieval, and handle cleanup. Do not emulate `fork` when Windows has no equivalent; expose portable high-level behavior over a native provider.
## Acceptance criteria
- A Wave program can spawn a child executable with arguments on Windows.
- The parent can wait for the child and obtain its exit status.
- Process and thread handles are closed on success and failure paths.
- Command-line and environment encoding rules are documented in code comments.
- Existing POSIX providers and public compatibility functions continue to compile.
- Windows CI runs a native spawn/wait smoke test.
- The final API has a clear unsupported contract for genuinely POSIX-only operations.
Contributor guide
Research direction
Start by locating the Windows process provider, std::process compatibility functions, existing POSIX providers, and the Windows CI configuration. Review how process creation, waiting, exit status retrieval, and handle cleanup are represented, then verify the acceptance criteria with a native Windows spawn/wait smoke test and compilation checks for POSIX providers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100