Version 1.3.0 (2015-09-17)

  • ~900 changes, numerous bugfixes

Highlights

  • The new object lifetime defaults have been turned on after a cycle of warnings about the change. Now types like &'a Box<Trait> (or &'a Rc<Trait>, etc) will change from being interpreted as &'a Box<Trait+'a> to &'a Box<Trait+'static>.
  • The Rustonomicon is a new book in the official documentation that dives into writing unsafe Rust.
  • The Duration API, has been stabilized. This basic unit of timekeeping is employed by other std APIs, as well as out-of-tree time crates.

Breaking Changes

  • The new object lifetime defaults have been turned on after a cycle of warnings about the change.
  • There is a known regression in how object lifetime elision is interpreted, the proper solution for which is undetermined.
  • The #[prelude_import] attribute, an internal implementation detail, was accidentally stabilized previously. It has been put behind the prelude_import feature gate. This change is believed to break no existing code.
  • The behavior of size_of_val and align_of_val is more sane for dynamically sized types. Code that relied on the previous behavior is thought to be broken.
  • The dropck rules, which checks that destructors can't access destroyed values, [have been updated][dropck] to match the RFC. This fixes some soundness holes, and as such will cause some previously-compiling code to no longer build.

Language

Libraries

Misc