1.4.0
#
- Released on: 29 October, 2015
- Branched from master on: 4 December, 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 fns 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
#