Update Sep 10, 2020 tracked by Updatify
Rust 1.38.0
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-msvctargets. -
Added tier 3 support for the
armv7-unknown-linux-gnueabiandarmv7-unknown-linux-musleabitargets. -
Added tier 3 support for the
hexagon-unknown-linux-musltarget. -
Added tier 3 support for the
riscv32i-unknown-none-elftarget. - Upgraded to LLVM 9.
* Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Libraries
-
ascii::EscapeDefaultnow implementsCloneandDisplay. -
Derive macros for prelude traits (e.g.
Clone,Debug,Hash) are now available at the same path as the trait. (e.g. TheClonederive macro is available atstd::clone::Clone). This also makes all built-in macros available instd/coreroot. e.g.std::include_bytes!. -
str::Charsnow implementsDebug. -
slice::{concat, connect, join}now accepts&[T]in addition to&T. -
*const Tand*mut Tnow 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, andwrappingversions are available for all integer primitives. -
thread::AccessErrornow 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
--featuresoption multiple times to enable multiple features.
Rustdoc
Misc
Compatibility Notes
-
The
x86_64-unknown-uefiplatform can not be built with rustc 1.38.0. -
The
armv7-unknown-linux-gnueabihfplatform is known to have issues with certain crates such as libc.