1.4.0 (29 October, 2015)
#
- ~1200 changes, numerous bugfixes
Highlights
#
- Windows builds targeting the 64-bit MSVC ABI and linker (instead of
GNU) are now supported and recommended for use.
Breaking Changes
#
Language
#
Libraries
#
- 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.
Miscellaneous
#