This Week in Rust

Welcome to another issue of This Week in Rust. We’re gearing up for a 0.8 release, tentatively planned for Thursday. Additionally, a huge welcome of Alex Crichton to the Rust team! He’s been doing some great work, it’s wonderful to have another full-time Rust dev.

What’s cooking in master?

There were 86 PRs merged this week.

rustdoc_ng

rustdoc_ng was merged into mainline and enabled as the new rustdoc, in time for 0.8. This makes me incredibly happy, as it marks the conclusion of my quest to a better rustdoc. Not to say that rustdoc is finished or perfect, but it’s already much better than the old rustdoc. My sincere thanks go to Jordi Boggiano (Seldaek), who worked unceasingly to create a beautiful, usable frontend, and to Meret Vollenweider (meretv) for donating her amazing design skills. Also thanks to Huon Wilson (dbaupp) for moral support and creating the awesome DocFolder interface that passes over the documentation use. And, of course, to Alex Crichton, who pushed these past few days to port the static site generator to Rust and to integrate it into the build system.

The new docs have replaced the old docs. You can view them on the Rust website. Still to-do is proper cross-crate doc hyperlinking. To run it on your own crate, build a recent Rust and do rustdoc html path/to/your/crate.rs. It will eventually be integrated into rustpkg.

Breaking changes

  • extra::par has been removed.
  • Some unsound functional struct updates (FSU, {a: 5, ..b}) are now disallowed.
  • --cfg debug is no longer required. If you want to disable debug logging, use --cfg ndebug.
  • The various uses of NaN are now lowercased to nan.
  • std::util::unreachable has been removed in factor of the unreachable! macro.
  • extra::future has been cleaned up a bit, including some method shuffling/renames.
  • extra::getopts has been cleaned up as well, with most free functions now being methods.
  • The from_str methods in the numeric modules have been removed in favor of the FromStr trait and the from_str free function in the prelude. Same for from_str_radix.
  • The Drop trait now uses &mut self, as part of the transition to by-value drops.
  • extra::json uses a different encoding when encoding/decoding enums, so any Rust-generated JSON before this patch will now be rejected by the decoder.

Other changes

Weekly Meeting

The weekly meeting discussed quite a bit, most interesting to me was the crypto discussion, putting macro_rules! behind an experimental flag, and the default arguments discussion.

Project announcements etc