Update Sep 10, 2020 tracked by Updatify
Rust 1.29.0
Compiler
- Bumped minimum LLVM version to 5.0.
-
Added
powerpc64le-unknown-linux-musltarget. -
Added
aarch64-unknown-hermitandx86_64-unknown-hermittargets. - Upgraded to LLVM 7.
Libraries
-
Once::call_onceno longer requiresOnceto be'static. -
BuildHasherDefaultnow implementsPartialEqandEq. -
Box<CStr>,Box<OsStr>, andBox<Path>now implementClone. -
Implemented
PartialEq<&str>forOsStringandPartialEq<OsString>for&str. -
Cell<T>now allowsTto be unsized. -
SocketAddris now stable on Redox.
Stabilized APIs
Cargo
-
Cargo can silently fix some bad lockfiles. You can use
--lockedto disable this behavior. -
cargo-installwill now allow you to cross compile an install using--target. -
Added the
cargo-fixsubcommand to automatically move project code from 2015 edition to 2018. -
cargo doccan now optionally document private types using the--document-private-itemsflag.
Misc
-
rustdocnow has the--cap-lintsoption which demotes all lints above the specified level to that level. For example--cap-lints warnwill demotedenyandforbidlints towarn. -
rustcandrustdocwill now have the exit code of1if compilation fails and101if there is a panic. -
A preview of clippy has been made available through rustup. You can install the preview with
rustup component add clippy-preview.
Compatibility Notes
-
str::{slice_unchecked, slice_unchecked_mut}are now deprecated. Usestr::get_unchecked(begin..end)instead. -
std::env::home_diris now deprecated for its unintuitive behavior. Consider using thehome_dirfunction from https://crates.io/crates/dirs instead. -
rustcwill no longer silently ignore invalid data in target spec. -
cfgattributes and--cfgcommand line flags are now more strictly validated.