智能化下的产物,无人棋牌室
Rust 1. 4 发布,更新内容如下:
重点
- Windows builds targeting the 64-bit MSVC ABI and linker (instead of GNU) are now supported and recommended for use.
重大更新
- Several changes have been made to fix type soundness and improve the behavior of associated types. See RFC 1214. Although we have mostly introduced these changes as warnings this release, to become errors next release, there are still some scenarios that will see immediate breakage.
- The
str::lines
andBufRead::lines
iterators treat\r\n
as line breaks in addition to\n
. - Loans of
'static
lifetime extend to the end of a function.
语言
use
statements that import multiple items can now rename them, as inuse foo::{bar as kitten, baz as puppy}
.- Binops work correctly on fat pointers.
pub extern crate
, which does not behave as expected, issues a warning until a better solution is found.
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
, andChunksMut
iterators over slices alloverridecount
,nth
andlast
with an O(1) implementation. Default
is implemented for arrays up to[T; 32]
.IntoRawFd
has been added to the Unix-specific prelude,IntoRawSocket
andIntoRawHandle
to the Windows-specific prelude.Extend<String>
andFromIterator<String
are both implemented forString
.IntoIterator
is implemented forOption<&T>
andResult<&T>
.HashMap
andHashSet
implementExtend<&T>
whereT: Copy
as part of RFC 839.BinaryHeap
implementsDebug
.Borrow
andBorrowMut
are implemented for fixed-size arrays.extern fn
s of with the “Rust” and “C” ABIs implement common traits includingEq
,Ord
,Debug
,Hash
.- String comparison is faster.
&mut T
whereT: Write
also implementsWrite
.- A stable regression in
VecDec::push_back
that caused panics for zero-sized types was fixed. - Function pointers implement traits for up to 12 parameters.
Miscellaneous
- The compiler no longer uses the ‘morestack’ feature to prevent stack overflow. Instead it uses guard pages and stack probes (though stack probes are not yet implemented on any platform but Windows).
- The compiler matches traits faster when projections are involved.
- The ‘improper_ctypes’ lint no longer warns about use of
isize
andusize
. - Cargo now displays useful information about what its doing during
cargo update
.