Skip to content

Conversation

sunfishcode
Copy link
Member

PR #94586 added support for using
rustc_nonnull_optimization_guaranteed on values where the "null" value
is the all-ones bitpattern.

Now that #94586 has made it to the stage0 compiler, add
rustc_nonnull_optimization_guaranteed to OwnedFd, BorrowedFd,
OwnedSocket, and BorrowedSocket, since these types all exclude
all-ones bitpatterns.

This allows Option<OwnedFd>, Option<BorrowedFd>, Option<OwnedSocket>,
and Option<BorrowedSocket> to be used in FFI declarations, as described
in the I/O safety RFC.

PR rust-lang#94586 added support for using
`rustc_nonnull_optimization_guaranteed` on values where the "null" value
is the all-ones bitpattern.

Now that rust-lang#94586 has made it to the stage0 compiler, add
`rustc_nonnull_optimization_guaranteed` to `OwnedFd`, `BorrowedFd`,
`OwnedSocket`, and `BorrowedSocket`, since these types all exclude
all-ones bitpatterns.

This allows `Option<OwnedFd>`, `Option<BorrowedFd>`, `Option<OwnedSocket>`,
and `Option<BorrowedSocket>` to be used in FFI declarations, as described
in the [I/O safety RFC].

[I/O safety RFC]: https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md#ownedfd-and-borrowedfdfd-1
@sunfishcode sunfishcode added the T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. label May 11, 2022
@rust-highfive
Copy link
Contributor

Hey! It looks like you've submitted a new PR for the library teams!

If this PR contains changes to any rust-lang/rust public library APIs then please comment with r? rust-lang/libs-api @rustbot label +T-libs-api -T-libs to request review from a libs-api team reviewer. If you're unsure where your change falls no worries, just leave it as is and the reviewer will take a look and make a decision to forward on if necessary.

Examples of T-libs-api changes:

  • Stabilizing library features
  • Introducing insta-stable changes such as new implementations of existing stable traits on existing stable types
  • Introducing new or changing existing unstable library APIs (excluding permanently unstable features / features without a tracking issue)
  • Changing public documentation in ways that create new stability guarantees
  • Changing observable runtime behavior of library APIs

@rust-highfive
Copy link
Contributor

r? @Mark-Simulacrum

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 11, 2022
@rust-log-analyzer

This comment has been minimized.

sunfishcode added a commit to sunfishcode/io-lifetimes that referenced this pull request May 11, 2022
This ports in the new tests added in rust-lang/rust#96947.
sunfishcode added a commit to sunfishcode/io-lifetimes that referenced this pull request May 11, 2022
This ports in the new tests added in rust-lang/rust#96947.
@scottmcm scottmcm added the needs-fcp This change is insta-stable, or significant enough to need a team FCP to proceed. label May 14, 2022
@Mark-Simulacrum
Copy link
Member

r? @joshtriplett

@joshtriplett
Copy link
Member

@bors r+

@bors
Copy link
Collaborator

bors commented May 15, 2022

📌 Commit 5c60951 has been approved by joshtriplett

@bors 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 May 15, 2022
bors added a commit to rust-lang-ci/rust that referenced this pull request May 15, 2022
Rollup of 4 pull requests

Successful merges:

 - rust-lang#96947 (Add rustc_nonnull_optimization_guaranteed to Owned/Borrowed Fd/Socket)
 - rust-lang#97021 (Added note in documentation)
 - rust-lang#97042 (Add new eslint rule about brace style)
 - rust-lang#97060 (Fix use of SetHandleInformation on UWP)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit f8832c2 into rust-lang:master May 15, 2022
@bors
Copy link
Collaborator

bors commented May 15, 2022

⌛ Testing commit 5c60951 with merge 29e972d...

@rustbot rustbot added this to the 1.63.0 milestone May 15, 2022
@sunfishcode sunfishcode deleted the sunfishcode/rustc-nonnull-optimization-guaranteed branch May 16, 2022 14:01
@sunfishcode sunfishcode removed the needs-fcp This change is insta-stable, or significant enough to need a team FCP to proceed. label May 16, 2022
@sunfishcode
Copy link
Member Author

@scottmcm I removed the needs-fcp here; this PR only affects OwnedFd/BorrowedFd/etc., which are currently unstable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants