Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upstd: Stabilize/deprecate features for 1.4 #28339
Conversation
rust-highfive
assigned
pcwalton
Sep 10, 2015
This comment has been minimized.
This comment has been minimized.
|
r? @pcwalton (rust_highfive has picked a reviewer for you, use r? to override) |
alexcrichton
force-pushed the
alexcrichton:stabilize-1.4
branch
from
b384ce1
to
b7a319d
Sep 10, 2015
This comment has been minimized.
This comment has been minimized.
|
r? @aturon |
rust-highfive
assigned
aturon
and unassigned
pcwalton
Sep 10, 2015
alexcrichton
force-pushed the
alexcrichton:stabilize-1.4
branch
3 times, most recently
from
1db2831
to
68e1b65
Sep 10, 2015
eefriedman
reviewed
Sep 10, 2015
| @@ -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")] | |||
This comment has been minimized.
This comment has been minimized.
eefriedman
reviewed
Sep 10, 2015
| @@ -733,7 +731,7 @@ impl String { | |||
| /// Converts the string into `Box<str>`. | |||
| /// | |||
| /// Note that this will drop any excess capacity. | |||
| #[unstable(feature = "box_str", | |||
| #[unstable(feature = "box_str2", | |||
| reason = "recently added, matches RFC", | |||
| issue = "27785")] | |||
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
alexcrichton
Sep 11, 2015
Author
Member
This is deprecated, so a new issue isn't necessary in this case.
eefriedman
reviewed
Sep 10, 2015
| @@ -205,7 +205,7 @@ impl CString { | |||
| /// The only appropriate argument is a pointer obtained by calling | |||
| /// `into_ptr`. The length of the string will be recalculated | |||
| /// using the pointer. | |||
| #[unstable(feature = "cstr_memory", reason = "recently added", | |||
| #[unstable(feature = "cstr_memory2", reason = "recently added", | |||
| issue = "27769")] | |||
This comment has been minimized.
This comment has been minimized.
eefriedman
reviewed
Sep 10, 2015
| @@ -154,8 +164,7 @@ impl TcpStream { | |||
| /// # Note | |||
| /// | |||
| /// Some platforms do not provide access to the current timeout. | |||
| #[unstable(feature = "socket_timeout", reason = "RFC 1047 - recently added", | |||
| issue = "27773")] | |||
| #[stable(feature = "socket_timeout", since = "1.4.0")] | |||
This comment has been minimized.
This comment has been minimized.
eefriedman
Sep 10, 2015
Contributor
The fact that this never works on Windows suggests that maybe we shouldn't be stabilizing it...
This comment has been minimized.
This comment has been minimized.
sfackler
Sep 10, 2015
Member
This works on Windows as far as I can tell: https://github.com/rust-lang/rust/blob/master/src/libstd/net/tcp.rs#L909
This comment has been minimized.
This comment has been minimized.
eefriedman
Sep 10, 2015
Contributor
Huh... https://msdn.microsoft.com/en-us/library/windows/desktop/ms738544%28v=vs.85%29.aspx says it doesn't work. But if the test works, then it must work, I guess. Weird.
This comment has been minimized.
This comment has been minimized.
alexcrichton
Sep 11, 2015
Author
Member
It's also explicitly stated in the documentation:
Some platforms do not provide access to the current timeout
This comment has been minimized.
This comment has been minimized.
|
I thought people didn't like |
eefriedman
reviewed
Sep 10, 2015
| /// 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")] |
This comment has been minimized.
This comment has been minimized.
eefriedman
Sep 10, 2015
Contributor
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."
This comment has been minimized.
This comment has been minimized.
alexcrichton
Sep 11, 2015
Author
Member
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.
This comment has been minimized.
This comment has been minimized.
aturon
Sep 11, 2015
Member
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.
This comment has been minimized.
This comment has been minimized.
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 |
alexcrichton
force-pushed the
alexcrichton:stabilize-1.4
branch
from
68e1b65
to
b20b26f
Sep 11, 2015
This comment has been minimized.
This comment has been minimized.
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. |
This comment has been minimized.
This comment has been minimized.
|
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. |
This comment has been minimized.
This comment has been minimized.
|
shrug works for me |
This comment has been minimized.
This comment has been minimized.
|
Wait Or we could deprecate LinkedList HMMM??? |
alexcrichton
force-pushed the
alexcrichton:stabilize-1.4
branch
from
b20b26f
to
f0b1326
Sep 13, 2015
This comment has been minimized.
This comment has been minimized.
|
@bors: r=aturon |
This comment has been minimized.
This comment has been minimized.
|
|
alexcrichton commentedSep 10, 2015
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_stringArc::downgradeArc::get_mutArc::make_mutArc::try_unwrapBox::from_rawBox::into_rawCStr::to_strCStr::to_string_lossyCString::from_rawCString::into_rawIntoRawFd::into_raw_fdIntoRawFdIntoRawHandle::into_raw_handleIntoRawHandleIntoRawSocket::into_raw_socketIntoRawSocketRc::downgradeRc::get_mutRc::make_mutRc::try_unwrapResult::expectString::into_boxed_sliceTcpSocket::read_timeoutTcpSocket::set_read_timeoutTcpSocket::set_write_timeoutTcpSocket::write_timeoutUdpSocket::read_timeoutUdpSocket::set_read_timeoutUdpSocket::set_write_timeoutUdpSocket::write_timeoutVec::appendVec::split_offVecDeque::appendVecDeque::retainVecDeque::split_offrc::Weak::upgraderc::Weakslice::Iter::as_sliceslice::IterMut::into_slicestr::CharIndices::as_strstr::Chars::as_strstr::split_at_mutstr::split_atsync::Weak::upgradesync::Weakthread::park_timeoutthread::sleepDeprecated APIs
BTreeMap::with_bBTreeSet::with_bOption::as_mut_sliceOption::as_sliceResult::as_mut_sliceResult::as_slicef32::from_str_radixf64::from_str_radixCloses #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