NOTE: THIS BLOG IS RETIRED! See blog.octayn.net for new content.

This Week in Rust

Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safe, concurrent, and fast. This is a weekly summary of its progress and community. Want something mentioned? Send me an email! Want to get involved? We love contributions.

What’s cooking on master?

86 pull requests were merged this week. This ties for week with most merged pull requests. A week in September 2013 is the other record holder. To cope with the massively inflated queue, there were two roll-ups (not counted).

Breaking Changes

  • extern mod is now written extern crate.
  • The big codegen compiler flags pull request I warned about last week indeed landed. Many -Z options are now under -C, and a lot of previously-bare flags (such as --linker) are now also under -C.
  • std::util has been removed. swap and replace now live in std::mem.
  • do is once again a reserved word.
  • extra::rational, extra::bigint, and extra::complex have been moved into libnum as part of the libextra dissolution.
  • The borrow checker’s treatment of closures has been revamped. It fixes all known soundness issues with closures. Unfortunately, it also breaks some programs that used to compile.
  • Channels have been rewritten to use the internally-upgradable design that was hashed out on the list. Rather than having a separate SharedChan, Chan is now cloneable.
  • The Seek API has changed a bit.
  • The breaking changes in the first rollup are the removal of ptr::offset, ptr::mut_offset, ptr::is_null, and ptr::is_not_null as free functions and the movement of extra::hex and extra::base64 to libserialize.
  • std::num::Orderable has been removed.
  • std::ptr saw some more cleanup, most notably every function ending in _ptr has had that suffix removed. to_unsafe_ptr and to_mut_unsafe_ptr have also been removed.

Other Changes

New Contributors

  • Bruno de Oliveira Abinader
  • Eduard Bopp
  • Edward Wang
  • Jake Kerr
  • Liigo Zhuang
  • Matthijs van der Vleuten
  • Peiyong Lin
  • Tobias Bucher
  • WebeWizard

Weekly Meeting

The weekly meeting discussed struct construction sugar, what to allow in statics, the crate keyword, a finally macro, and implicit trait bounds.

This Week in Servo

Servo is a web browser engine written in Rust and is one of the primary test cases for the Rust language.

This week, we landed 18 PRs.

Notable additions

  • Bruno Abinader landed several DOM fixes, including #1648 and #1646
  • Hyun June Kim landed initial :hover support in #1633
  • Keegan McAllister restored task failure handling in #1691
  • Rui renamed the .rc files to .rs in the main Servo repository in #1617
  • Simon Sapin made some updates to attribute selector namespaces in #1653 and #1661
  • Lars Bergstrom began the removal of non-script-crate @muts in preparation for a Rust upgrade in #1663
  • Austin King added some window.console support in #1666
  • Marek Šuppa landed a fix to our contributing document in #1649
  • Patrick Walton made extensive optimizations to style sharing in #1644

New contributors

  • Austin King (ozten)
  • Marek Šuppa (mrshu)

Meetings

In this week’s meeting, we discussed our embedding plans, ACID2 status, improving the availability of E-Easy issues, and doing a Rust upgrade (we are more than one month behind Rust master).

Announcements, etc

There is simply too much happening in the community to keep track of! I recommend browsing the Rust subreddit for goings-on. Some notable ones: