1.38.0 #
- Released on: 26 September, 2019
- Branched from master on: 9 August, 2019
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>::castDuration::as_secs_f32Duration::as_secs_f64Duration::div_f32Duration::div_f64Duration::from_secs_f32Duration::from_secs_f64Duration::mul_f32Duration::mul_f64any::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.