Rust 1.29.0
Released on September 13, 2018
What's Changed
- [Bumped minimum LLVM version to 5.0.][51899]
- [Added
powerpc64le-unknown-linux-musltarget.][51619] - [Added
aarch64-unknown-hermitandx86_64-unknown-hermittargets.][52861] - [Upgraded to LLVM 7.][51966]
- [
Once::call_onceno longer requiresOnceto be'static.][52239] - [
BuildHasherDefaultnow implementsPartialEqandEq.][52402] - [
Box,Box, andBoxnow implementClone.][51912] - [Implemented
PartialEq<&str>forOsStringandPartialEq - [
Cellnow allowsTto be unsized.][50494] - [
SocketAddris now stable on Redox.][52656] - [
Arc::downcast] - [
Iterator::flatten] - [
Rc::downcast]
- [Cargo can silently fix some bad lockfiles.][cargo/5831] You can use
- [
cargo-installwill now allow you to cross compile an install - [Added the
cargo-fixsubcommand to automatically move project code from - [
cargo doccan now optionally document private types using the
- [
str::{slice_unchecked, slice_unchecked_mut}are now deprecated.][51807] - [
std::env::home_diris now deprecated for its unintuitive behavior.][51656] - [
rustcwill no longer silently ignore invalid data in target spec.][52330] - [
cfgattributes and--cfgcommand line flags are now more
- [
rustdocnow has the--cap-lintsoption which demotes all lints above - [
rustcandrustdocwill now have the exit code of1if compilation - [A preview of clippy has been made available through rustup.][51122]
Full Changelog
Compiler
--------
- [Bumped minimum LLVM version to 5.0.][51899]
- [Added powerpc64le-unknown-linux-musl target.][51619]
- [Added aarch64-unknown-hermit and x86_64-unknown-hermit targets.][52861]
- [Upgraded to LLVM 7.][51966]
Libraries
---------
- [Once::call_once no longer requires Once to be 'static.][52239]
- [BuildHasherDefault now implements PartialEq and Eq.][52402]
- [Box, Box, and Box now implement Clone.][51912]
- [Implemented PartialEq<&str> for OsString and PartialEq
for &str.][51178]
- [Cell now allows T to be unsized.][50494]
- [SocketAddr is now stable on Redox.][52656]
Stabilized APIs
---------------
- [Arc::downcast]
- [Iterator::flatten]
- [Rc::downcast]
Cargo
-----
- [Cargo can silently fix some bad lockfiles.][cargo/5831] You can use
--locked to disable this behavior.
- [cargo-install will now allow you to cross compile an install
using --target.][cargo/5614]
- [Added the cargo-fix subcommand to automatically move project code from
2015 edition to 2018.][cargo/5723]
- [cargo doc can now optionally document private types using the
--document-private-items flag.][cargo/5543]
Misc
----
- [rustdoc now has the --cap-lints option which demotes all lints above
the specified level to that level.][52354] For example --cap-lints warn
will demote deny and forbid lints to warn.
- [rustc and rustdoc will now have the exit code of 1 if compilation
fails and 101 if there is a panic.][52197]
- [A preview of clippy has been made available through rustup.][51122]
You can install the preview with rustup component add clippy-preview.
Compatibility Notes
-------------------
- [str::{slice_unchecked, slice_unchecked_mut} are now deprecated.][51807]
Use str::get_unchecked(begin..end) instead.
- [std::env::home_dir is now deprecated for its unintuitive behavior.][51656]
Consider using the home_dir function from
https://crates.io/crates/dirs instead.
- [rustc will no longer silently ignore invalid data in target spec.][52330]
- [cfg attributes and --cfg command line flags are now more
strictly validated.][53893]
[53893]: https://github.com/rust-lang/rust/pull/53893/
[52861]: https://github.com/rust-lang/rust/pull/52861/
[51966]: https://github.com/rust-lang/rust/pull/51966/
[52656]: https://github.com/rust-lang/rust/pull/52656/
[52239]: https://github.com/rust-lang/rust/pull/52239/
[52330]: https://github.com/rust-lang/rust/pull/52330/
[52354]: https://github.com/rust-lang/rust/pull/52354/
[52402]: https://github.com/rust-lang/rust/pull/52402/
[52197]: https://github.com/rust-lang/rust/pull/52197/
[51807]: https://github.com/rust-lang/rust/pull/51807/
[51899]: https://github.com/rust-lang/rust/pull/51899/
[51912]: https://github.com/rust-lang/rust/pull/51912/
[51619]: https://github.com/rust-lang/rust/pull/51619/
[51656]: https://github.com/rust-lang/rust/pull/51656/
[51178]: https://github.com/rust-lang/rust/pull/51178/
[51122]: https://github.com/rust-lang/rust/pull/51122
[50494]: https://github.com/rust-lang/rust/pull/50494/
[cargo/5543]: https://github.com/rust-lang/cargo/pull/5543
[cargo/5614]: https://github.com/rust-lang/cargo/pull/5614/
[cargo/5723]: https://github.com/rust-lang/cargo/pull/5723/
[cargo/5831]: https://github.com/rust-lang/cargo/pull/5831/
[Arc::downcast]: https://doc.rust-lang.org/std/sync/struct.Arc.html#method.downcast
[Iterator::flatten]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.flatten
[Rc::downcast]: https://doc.rust-lang.org/std/rc/struct.Rc.html#method.downcast