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.