- ~1200 changes, numerous bugfixes
- Windows builds targeting the 64-bit MSVC ABI and linker (instead of
GNU) are now supported and recommended for use.
- Many APIs were stabilized:
<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_str
, TcpStream::read_timeout
,
TcpStream::set_read_timeout
, TcpStream::set_write_timeout
,
TcpStream::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
.
- Some APIs were deprecated:
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
.
- Reverse-searching strings is faster with the 'two-way'
algorithm.
std::io::copy
allows ?Sized
arguments.
- The
Windows
, Chunks
, and ChunksMut
iterators over slices all
override count
, nth
and last
with an O(1)
implementation.
Default
is implemented for arrays up to [T; 32]
.
IntoRawFd
has been added to the Unix-specific prelude,
IntoRawSocket
and IntoRawHandle
to the Windows-specific
prelude.
Extend<String>
and FromIterator<String
are both implemented for
String
.
IntoIterator
is implemented for references to Option
and
Result
.
HashMap
and HashSet
implement Extend<&T>
where T: Copy
as part of RFC 839. This will cause type inference
breakage in rare situations.
BinaryHeap
implements Debug
.
Borrow
and BorrowMut
are implemented for fixed-size
arrays.
extern fn
s with the "Rust" and "C" ABIs implement common
traits including Eq
, Ord
, Debug
, Hash
.
- String comparison is faster.
&mut T
where T: std::fmt::Write
also implements
std::fmt::Write
.
- A stable regression in
VecDeque::push_back
and other
capacity-altering methods that caused panics for zero-sized types
was fixed.
- Function pointers implement traits for up to 12 parameters.