Language
- The
#[global_allocator]
attribute can now be used in submodules. - The
#[deprecated]
attribute can now be used on macros.
Compiler
- Added pipelined compilation support to
rustc
. This will improve compilation times in some cases. For further information please refer to the "Evaluating pipelined rustc compilation" thread. - Added tier 3* support for the
aarch64-uwp-windows-msvc
,i686-uwp-windows-gnu
,i686-uwp-windows-msvc
,x86_64-uwp-windows-gnu
, andx86_64-uwp-windows-msvc
targets. - Added tier 3 support for the
armv7-unknown-linux-gnueabi
andarmv7-unknown-linux-musleabi
targets. - Added tier 3 support for the
hexagon-unknown-linux-musl
target. - Added tier 3 support for the
riscv32i-unknown-none-elf
target. - Upgraded to LLVM 9.
* Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
ascii::EscapeDefault
now implementsClone
andDisplay
.- Derive macros for prelude traits (e.g.
Clone
,Debug
,Hash
) are now available at the same path as the trait. (e.g. TheClone
derive macro is available atstd::clone::Clone
). This also makes all built-in macros available instd
/core
root. e.g.std::include_bytes!
. str::Chars
now implementsDebug
.slice::{concat, connect, join}
now accepts&[T]
in addition to&T
.*const T
and*mut T
now implementmarker::Unpin
.Arc<[T]>
andRc<[T]>
now implementFromIterator<T>
.- Added euclidean remainder and division operations (
div_euclid
,rem_euclid
) to all numeric primitives. Additionallychecked
,overflowing
, andwrapping
versions are available for all integer primitives. thread::AccessError
now implementsClone
,Copy
,Eq
,Error
, andPartialEq
.iter::{StepBy, Peekable, Take}
now implementDoubleEndedIterator
.
Stabilized APIs
<*const T>::cast
<*mut T>::cast
Duration::as_secs_f32
Duration::as_secs_f64
Duration::div_f32
Duration::div_f64
Duration::from_secs_f32
Duration::from_secs_f64
Duration::mul_f32
Duration::mul_f64
any::type_name
Cargo
- Added pipelined compilation support to
cargo
. - You can now pass the
--features
option multiple times to enable multiple features.
Rustdoc
Misc
Compatibility Notes
- The
x86_64-unknown-uefi
platform can not be built with rustc 1.38.0. - The
armv7-unknown-linux-gnueabihf
platform is known to have issues with certain crates such as libc.