std: merge definitions of StdioPipes by joboet · Pull Request #146639 · rust-lang/rust (original) (raw)
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation5 Commits1 Checks10 Files changed
Conversation
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
[ Show hidden characters]({{ revealButtonHref }})
All platforms define this structure the same way, so we can just put it in the process module directly.
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the library team, which will review and decide on the PR/issue.
labels
rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r? to explicitly pick a reviewer
All platforms define this structure the same way, so we can just put it in the process module directly.
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.
Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.
📌 Commit 87a00f6 has been approved by Mark-Simulacrum
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…imulacrum
std: merge definitions of StdioPipes
All platforms define this structure the same way, so we can just put it in the process module directly.
This was referenced
Sep 21, 2025
bors added a commit that referenced this pull request
Rollup of 4 pull requests
Successful merges:
- #143857 (Port #[macro_export] to the new attribute parsing infrastructure)
- #146486 (Improve
core::sync::atomiccoverage) - #146606 (ci: x86_64-gnu-tools: Add
--test-argsregression test) - #146639 (std: merge definitions of
StdioPipes)
r? @ghost
@rustbot modify labels: rollup
rust-timer added a commit that referenced this pull request
Rollup merge of #146639 - joboet:shared-stdiopipes, r=Mark-Simulacrum
std: merge definitions of StdioPipes
All platforms define this structure the same way, so we can just put it in the process module directly.
Muscraft pushed a commit to Muscraft/rust that referenced this pull request
…imulacrum
std: merge definitions of StdioPipes
All platforms define this structure the same way, so we can just put it in the process module directly.
Muscraft pushed a commit to Muscraft/rust that referenced this pull request
…iaskrgr
Rollup of 4 pull requests
Successful merges:
- rust-lang#143857 (Port #[macro_export] to the new attribute parsing infrastructure)
- rust-lang#146486 (Improve
core::sync::atomiccoverage) - rust-lang#146606 (ci: x86_64-gnu-tools: Add
--test-argsregression test) - rust-lang#146639 (std: merge definitions of
StdioPipes)
r? @ghost
@rustbot modify labels: rollup
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request
…imulacrum
std: merge definitions of StdioPipes
All platforms define this structure the same way, so we can just put it in the process module directly.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…ulacrum
std: reorganize pipe implementations
Currently, there are two distinct types called AnonPipe in std:
- The one used to implement
io::pipe(insys::anonymous_pipe) - The one used to implement
Stdin/Stdout/Stderr(insys::pal::pipe)
On Windows, these actually have different semantics, as one of the handles returned by the sys::pal::pipe version is opened for asynchronous operation in order to support read2, whereas the sys::anonymous_pipe version does not do so. Thus the naming is extremely confusing.
To fix this, this PR renames the sys::anonymous_pipe version of AnonPipe to simply Pipe, whereas the sys::pal::pipe version is now called ChildPipe. Additionally,
sys::anonymous_pipeis now also just calledsys::pipe.- On Windows,
sys::pal::pipehas been moved tosys::processand is now calledsys::process::child_pipe. - On non-Windows platforms, pipe creation is now exclusively handled by
sys::pipeandChildPipeis defined as a type alias toPipewithinsys::process.
And lastly, the read2 function (originally in sys::pal::pipe) is now called read_output and defined by sys::process, as (at least on Windows) it is only usable with ChildPipe.
Includes rust-lang#146639 for convenience.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…ulacrum
std: reorganize pipe implementations
Currently, there are two distinct types called AnonPipe in std:
- The one used to implement
io::pipe(insys::anonymous_pipe) - The one used to implement
Stdin/Stdout/Stderr(insys::pal::pipe)
On Windows, these actually have different semantics, as one of the handles returned by the sys::pal::pipe version is opened for asynchronous operation in order to support read2, whereas the sys::anonymous_pipe version does not do so. Thus the naming is extremely confusing.
To fix this, this PR renames the sys::anonymous_pipe version of AnonPipe to simply Pipe, whereas the sys::pal::pipe version is now called ChildPipe. Additionally,
sys::anonymous_pipeis now also just calledsys::pipe.- On Windows,
sys::pal::pipehas been moved tosys::processand is now calledsys::process::child_pipe. - On non-Windows platforms, pipe creation is now exclusively handled by
sys::pipeandChildPipeis defined as a type alias toPipewithinsys::process.
And lastly, the read2 function (originally in sys::pal::pipe) is now called read_output and defined by sys::process, as (at least on Windows) it is only usable with ChildPipe.
Includes rust-lang#146639 for convenience.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
…ulacrum
std: reorganize pipe implementations
Currently, there are two distinct types called AnonPipe in std:
- The one used to implement
io::pipe(insys::anonymous_pipe) - The one used to implement
Stdin/Stdout/Stderr(insys::pal::pipe)
On Windows, these actually have different semantics, as one of the handles returned by the sys::pal::pipe version is opened for asynchronous operation in order to support read2, whereas the sys::anonymous_pipe version does not do so. Thus the naming is extremely confusing.
To fix this, this PR renames the sys::anonymous_pipe version of AnonPipe to simply Pipe, whereas the sys::pal::pipe version is now called ChildPipe. Additionally,
sys::anonymous_pipeis now also just calledsys::pipe.- On Windows,
sys::pal::pipehas been moved tosys::processand is now calledsys::process::child_pipe. - On non-Windows platforms, pipe creation is now exclusively handled by
sys::pipeandChildPipeis defined as a type alias toPipewithinsys::process.
And lastly, the read2 function (originally in sys::pal::pipe) is now called read_output and defined by sys::process, as (at least on Windows) it is only usable with ChildPipe.
Includes rust-lang#146639 for convenience.
rust-timer added a commit that referenced this pull request
Rollup merge of #146794 - joboet:reorganize-pipe, r=Mark-Simulacrum
std: reorganize pipe implementations
Currently, there are two distinct types called AnonPipe in std:
- The one used to implement
io::pipe(insys::anonymous_pipe) - The one used to implement
Stdin/Stdout/Stderr(insys::pal::pipe)
On Windows, these actually have different semantics, as one of the handles returned by the sys::pal::pipe version is opened for asynchronous operation in order to support read2, whereas the sys::anonymous_pipe version does not do so. Thus the naming is extremely confusing.
To fix this, this PR renames the sys::anonymous_pipe version of AnonPipe to simply Pipe, whereas the sys::pal::pipe version is now called ChildPipe. Additionally,
sys::anonymous_pipeis now also just calledsys::pipe.- On Windows,
sys::pal::pipehas been moved tosys::processand is now calledsys::process::child_pipe. - On non-Windows platforms, pipe creation is now exclusively handled by
sys::pipeandChildPipeis defined as a type alias toPipewithinsys::process.
And lastly, the read2 function (originally in sys::pal::pipe) is now called read_output and defined by sys::process, as (at least on Windows) it is only usable with ChildPipe.
Includes #146639 for convenience.
Labels
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the library team, which will review and decide on the PR/issue.