Email me

Rust versions / 1.29

Rust release · Sep 13, 2018

Rust 1.29: what's new, what was stabilized

Short answerRust 1.29 was released on Sep 13, 2018: 3 newly stable APIs (Arc::downcast, Iterator::flatten, Rc::downcast); 4 compatibility notes that can affect existing code. Point releases: 1.29.1 (Sep 25, 2018), 1.29.2 (Oct 11, 2018).

Sep 13, 2018release date
0language stabilizations
3APIs stabilized
-new edition

← Rust 1.28All versionsRust 1.30 →

3 APIs stabilized

Arc::downcast, Iterator::flatten, Rc::downcast

Can it break my build?

The release lists these compatibility notes. Most only affect rare code, but read them before you raise your toolchain in CI:

  • [str::{slice_unchecked, slice_unchecked_mut} are now deprecated.][51807]
  • [std::env::home_dir is now deprecated for its unintuitive behavior.][51656]
  • [rustc will no longer silently ignore invalid data in target spec.][52330]
  • [cfg attributes and --cfg command line flags are now more

Use it

rustup update stable        # get the newest release
rustup install 1.29          # or exactly this one
rustup override set 1.29     # pin a project to it

To require at least this version from users of your crate, set rust-version = "1.29" under [package] in Cargo.toml. Cargo then refuses to build it on older compilers with a clear message, and with resolver 3 (the default on the 2024 edition, Rust 1.85+) it also prefers dependency versions that support it.

Full release notes

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<CStr>, Box<OsStr>, and Box<Path> now implement Clone.][51912]
  • [Implemented PartialEq<&str> for OsString and PartialEq<OsString> for &str.][51178]
  • [Cell<T> 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

1.29.1 (Sep 25, 2018)

Security Notes --------------

  • The standard library's str::repeat function contained an out of bounds write caused by an integer overflow. This has been fixed by deterministically panicking when an overflow happens.

Thank you to Scott McMurray for responsibly disclosing this vulnerability to us.

1.29.2 (Oct 11, 2018)

Release notes from the Rust project's RELEASES.md (MIT or Apache-2.0); summaries above are ours.

← Rust 1.28All versionsRust 1.30 →

Up next

Next releaseRust 1.30Released Oct 25, 2018.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ