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?

93 pull requests were merged this week, topping the previous record of 91. Good job everyone, keep up the good work!

Breaking Changes

  • File now has a stat method that does not use a path, but rather the open file itself (fstat). As part of this, the path field on FileStat has been removed.
  • Some failure in libcore has been removed. shift_ptr and pop_ptr now return an Option.
  • TcpStreams connect and bind constructors now take a string and a port rather than a SocketAddr structure. There's some controversy around this change, as seen in the PR discussion. The first commit has detailed instructions for porting.
  • num::complex::Cmplx has been renamed to num::complex::Complex.
  • Process wait timeouts are now implemented. See the PR for details.
  • Our unicode support has been cleaned up, and in the process str::Normalizations has been renamed to str::Decompositions to reflect what it does.
  • owned has moved from libcore to libstd, and with it Box and AnyOwnExt.
  • A read_at_least method has been added to Reader. The fill and push_exact methods have been removed.
  • atomics has moved to libcore.
  • The android-cross-path flat to rustc has been removed.
  • The Process and dynamic_library APIs now use byte slices rather than Paths or strings.
  • run_in_bare_thread has been removed.
  • The bitflags! generated from_bits constructor is now safe and returns an Option.
  • from_utf8_owned now returns a Result.
  • std::fmt has moved to core::fmt.
  • enum variant names were accidentally leaking into child modules. This is no more.

Other Changes

One PR from last week that apparently slipped through the cracks: we are using jemalloc again!. Additionally, some changes around the new allocator RFC landed.

New Contributors

  • Alan Williams
  • Cameron Zwarich
  • Derek Chiang (Enchi Jiang)
  • Hanno Braun
  • J.C. Moyer
  • Piotr Jawniak
  • Zooko Wilcox-O'Hearn


Community Updates

The mutpocalypse is nigh. There is almost a full-page of reddit links to self-posts and RFCs in response to Niko's Focusing on Ownership post. The situation is pretty ridiculous. I'm going to pretend it doesn't exist, though. Peruse reddit if you feel up to reading the dozens of suggestions.

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.

In the last two weeks, we landed 79 PRs.

Notable additions

New Contributors

  • Brendan Zabarauskas (bjz)
  • Bryan Bell (bjwbell)
  • Cameron Zwarich (zwarich)
  • Glenn Watson (gw)
  • Guro Bokum (jiojiajiu)
  • Matt Murphy (murphm8)

Meetings and Notes

In the meeting two weeks ago, we introduced a new team member, Cameron Zwarich (zwarich). He is joining us from Apple, and will be working on cross-language inlining in support of SpiderMonkey, among other things. In last week's meeting, we discussed 32-bit support for Servo, the design of the HTML parser, and potentially replacing our Azure+Skia graphics stack.