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.

0.9 is on the brink. Perhaps this week, the next at the latest. Some hefty changes come this week.

What's cooking on master?

63 pull requests were merged this week.

Breaking changes

  • @mut has been removed. The replacements are Gc<RefCell<T>> or, preferably, Rc<RefCell<T>>. See also Cell<T> for Pod types.
  • Dereferencing of unary tuple structs and enums (tuple structs with one field and enums with one variant) has been removed. An example:
struct Foo(int);

fn bar() {
    let x = Foo(42);
    // previously `*x` would return 42
    let Foo(y) = x; // but now you do this pattern matching
}

Other changes

Additionally, it hasn't landed yet, but external syntax extensions, aka loadable syntax extensions, aka procedural macros, seem to be really close to landing. This is quite exciting!

New Contributors

  • Alan Andrade
  • Carl-Anton Ingmarsson
  • John Louis Walker
  • Peter Zotov
  • lyuts
  • Matthew Auld

Meeting

Once again, no meeting due to the holidays. There will be one on January 7, however.

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.

Mozilla Corp. came back from vacation this Thursday, January 2nd. We landed 14 PRs this week.

Notable additions

  • Aydin Kim fixed Android support - hooray! - in #1445.
  • Mike Blumenkrantz cleaned up our configure script to avoid the "configure smashed my submodule edits" problem in #1449.
  • deokjinkim fixed several font-related issues in #1454 and #1452.
  • Simon Sapin refactored font styles in #1455.
  • Shamir Khodzha implemented child_elements for filtered iteration in #1443.
  • ms2ger landed several changes to attributes in #1439, #1456, and #1460.

New contributors

  • Shamir Khodzha
  • Mike Blumenkrantz

Announcements, etc