-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
std: Stabilize/deprecate features for 1.4 #28339
Conversation
r? @pcwalton (rust_highfive has picked a reviewer for you, use r? to override) |
b384ce1
to
b7a319d
Compare
cc @rust-lang/libs r? @aturon |
1db2831
to
68e1b65
Compare
@@ -263,7 +261,8 @@ impl<T> Rc<T> { | |||
} | |||
|
|||
/// Checks if `Rc::try_unwrap` would return `Ok`. | |||
#[unstable(feature = "rc_would_unwrap", reason = "just added for niche usecase", | |||
#[unstable(feature = "rc_would_unwrap", | |||
reason = "just added for niche usecase", | |||
issue = "27718")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs a new issue number: this PR closes 27718.
I thought people didn't like |
/// Platforms may return a different error code whenever a read times out as | ||
/// a result of setting this option. For example Unix typically returns an | ||
/// error of the kind `WouldBlock`, but Windows may return `TimedOut`. | ||
#[stable(feature = "socket_timeout", since = "1.4.0")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we really sure this is ready to be stabilized? I'm not sure the questions brought up in #27773 have been sufficiently addressed.
If you're sure this is ready to be stabilized, for the comment, I would suggest something more like "The exact meaning of the timeout is platform-specific; reads may block for longer than the given duration. There is no portable way to detect if a read has timed out due to this timeout; the connection should be closed if a read fails with WouldBlock
or TimedOut
."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the purpose of this function is to bind the SO_RCVTIMEO
option, and it's what it's doing on all platforms. Whether or not this is exactly what you want for your application will depend on use cases, but this provides the appropriate Rust interface to getting/setting these options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To elaborate on this a bit: we discussed #27773 extensively in the libs team meeting, and I've written up the results of that discussion in a new comment there.
We discussed this in the libs team meaning, but the ship has long sailed on this. These functions have gone through RFCs multiple times almost, and the functionality is already stable on |
68e1b65
to
b20b26f
Compare
The FCP is coming to a close and 1.4 is coming out soon, so this brings in the libs team decision for all library features this cycle. Stabilized APIs: * `<Box<str>>::into_string` * `Arc::downgrade` * `Arc::get_mut` * `Arc::make_mut` * `Arc::try_unwrap` * `Box::from_raw` * `Box::into_raw` * `CStr::to_str` * `CStr::to_string_lossy` * `CString::from_raw` * `CString::into_raw` * `IntoRawFd::into_raw_fd` * `IntoRawFd` * `IntoRawHandle::into_raw_handle` * `IntoRawHandle` * `IntoRawSocket::into_raw_socket` * `IntoRawSocket` * `Rc::downgrade` * `Rc::get_mut` * `Rc::make_mut` * `Rc::try_unwrap` * `Result::expect` * `String::into_boxed_slice` * `TcpSocket::read_timeout` * `TcpSocket::set_read_timeout` * `TcpSocket::set_write_timeout` * `TcpSocket::write_timeout` * `UdpSocket::read_timeout` * `UdpSocket::set_read_timeout` * `UdpSocket::set_write_timeout` * `UdpSocket::write_timeout` * `Vec::append` * `Vec::split_off` * `VecDeque::append` * `VecDeque::retain` * `VecDeque::split_off` * `rc::Weak::upgrade` * `rc::Weak` * `slice::Iter::as_slice` * `slice::IterMut::into_slice` * `str::CharIndices::as_str` * `str::Chars::as_str` * `str::split_at_mut` * `str::split_at` * `sync::Weak::upgrade` * `sync::Weak` * `thread::park_timeout` * `thread::sleep` Deprecated APIs * `BTreeMap::with_b` * `BTreeSet::with_b` * `Option::as_mut_slice` * `Option::as_slice` * `Result::as_mut_slice` * `Result::as_slice` * `f32::from_str_radix` * `f64::from_str_radix` Closes rust-lang#27277 Closes rust-lang#27718 Closes rust-lang#27736 Closes rust-lang#27764 Closes rust-lang#27765 Closes rust-lang#27766 Closes rust-lang#27767 Closes rust-lang#27768 Closes rust-lang#27769 Closes rust-lang#27771 Closes rust-lang#27773 Closes rust-lang#27775 Closes rust-lang#27776 Closes rust-lang#27785 Closes rust-lang#27792 Closes rust-lang#27795 Closes rust-lang#27797
In particular, if we want to rename, we have to deal with the existing stable functionality. In general, we signed off on completing the collection reform RFC implementation by stabilizing consistent APIs across the collections where they're appropriate. |
OK, I've checked this over, and r=me -- but I want to give others a bit more time to comment before we send to bors. |
shrug works for me |
Wait Or we could deprecate LinkedList HMMM??? |
b20b26f
to
f0b1326
Compare
@bors: r=aturon |
📌 Commit f0b1326 has been approved by |
The FCP is coming to a close and 1.4 is coming out soon, so this brings in the libs team decision for all library features this cycle. Stabilized APIs: * `<Box<str>>::into_string` * `Arc::downgrade` * `Arc::get_mut` * `Arc::make_mut` * `Arc::try_unwrap` * `Box::from_raw` * `Box::into_raw` * `CStr::to_str` * `CStr::to_string_lossy` * `CString::from_raw` * `CString::into_raw` * `IntoRawFd::into_raw_fd` * `IntoRawFd` * `IntoRawHandle::into_raw_handle` * `IntoRawHandle` * `IntoRawSocket::into_raw_socket` * `IntoRawSocket` * `Rc::downgrade` * `Rc::get_mut` * `Rc::make_mut` * `Rc::try_unwrap` * `Result::expect` * `String::into_boxed_slice` * `TcpSocket::read_timeout` * `TcpSocket::set_read_timeout` * `TcpSocket::set_write_timeout` * `TcpSocket::write_timeout` * `UdpSocket::read_timeout` * `UdpSocket::set_read_timeout` * `UdpSocket::set_write_timeout` * `UdpSocket::write_timeout` * `Vec::append` * `Vec::split_off` * `VecDeque::append` * `VecDeque::retain` * `VecDeque::split_off` * `rc::Weak::upgrade` * `rc::Weak` * `slice::Iter::as_slice` * `slice::IterMut::into_slice` * `str::CharIndices::as_str` * `str::Chars::as_str` * `str::split_at_mut` * `str::split_at` * `sync::Weak::upgrade` * `sync::Weak` * `thread::park_timeout` * `thread::sleep` Deprecated APIs * `BTreeMap::with_b` * `BTreeSet::with_b` * `Option::as_mut_slice` * `Option::as_slice` * `Result::as_mut_slice` * `Result::as_slice` * `f32::from_str_radix` * `f64::from_str_radix` Closes #27277 Closes #27718 Closes #27736 Closes #27764 Closes #27765 Closes #27766 Closes #27767 Closes #27768 Closes #27769 Closes #27771 Closes #27773 Closes #27775 Closes #27776 Closes #27785 Closes #27792 Closes #27795 Closes #27797
The FCP is coming to a close and 1.4 is coming out soon, so this brings in the
libs team decision for all library features this cycle.
Stabilized APIs:
<Box<str>>::into_string
Arc::downgrade
Arc::get_mut
Arc::make_mut
Arc::try_unwrap
Box::from_raw
Box::into_raw
CStr::to_str
CStr::to_string_lossy
CString::from_raw
CString::into_raw
IntoRawFd::into_raw_fd
IntoRawFd
IntoRawHandle::into_raw_handle
IntoRawHandle
IntoRawSocket::into_raw_socket
IntoRawSocket
Rc::downgrade
Rc::get_mut
Rc::make_mut
Rc::try_unwrap
Result::expect
String::into_boxed_slice
TcpSocket::read_timeout
TcpSocket::set_read_timeout
TcpSocket::set_write_timeout
TcpSocket::write_timeout
UdpSocket::read_timeout
UdpSocket::set_read_timeout
UdpSocket::set_write_timeout
UdpSocket::write_timeout
Vec::append
Vec::split_off
VecDeque::append
VecDeque::retain
VecDeque::split_off
rc::Weak::upgrade
rc::Weak
slice::Iter::as_slice
slice::IterMut::into_slice
str::CharIndices::as_str
str::Chars::as_str
str::split_at_mut
str::split_at
sync::Weak::upgrade
sync::Weak
thread::park_timeout
thread::sleep
Deprecated APIs
BTreeMap::with_b
BTreeSet::with_b
Option::as_mut_slice
Option::as_slice
Result::as_mut_slice
Result::as_slice
f32::from_str_radix
f64::from_str_radix
Closes #27277
Closes #27718
Closes #27736
Closes #27764
Closes #27765
Closes #27766
Closes #27767
Closes #27768
Closes #27769
Closes #27771
Closes #27773
Closes #27775
Closes #27776
Closes #27785
Closes #27792
Closes #27795
Closes #27797