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!

This week brings a bunch of optimizations, cleanups, and the std::comm rewrite. The pkgid attribute has also seen some changes.

This week also brings a bunch of tiny bugfixes, many of which I do not mention below. Out of the 52 PRs this week, I only mention 16. The decision to include a PR or not is fairly arbitrary, but I try to maintain a “significance barrier” so that the list is not huge and hard to read (and also to save me work!). Examples of things which I will stop including mentions of are test fixes, minor documentation changes, build infrastructure fixes, and any cleanup to the compiler that doesn’t result in a relatively significant speedup or memory usage decrease. I don’t do this out of malice, but out of laziness and convenience. <3

What’s cooking on master?

52 PRs were merged this week.

Breaking Changes

  • std::comm has been rewritten. In short, use Chan::new and SharedChan::new to construct a Port/Chan pair. We’re in the ballpark of Go’s performance, which is exciting. Read the PR for more details.
  • Some more std::vec::raw cleanup has turned some free functions into methods. .as_mut_buf and friends have also been removed, replaced by using .as_ptr, .as_mut_ptr, and .len.
  • extra::ebml has been partially de-@d.
  • A ton of useless traits, ToOption etc, have been removed.
  • A nasty bug where having an impl for a type forced it to be public has been fixed. Some types which were previously accessible may not be anymore, due to this.
  • The pkgid crate attribute has been renamed to crate_id.
  • extra::sort has been removed, and there is now a sort method on mutable slices (&mut [T]).

Other Changes

New Contributors

  • Carter Tazio Schonwald

Meeting

The weekly meeting discusses some pull requests, pkgid, renaming extern mod, the stdlib module hierarchy, and renaming some of the vector methods.

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.

We landed 19 PRs this week.

Notable additions

  • Pradeep Kumar re-enabled parallel selector matching #1429.
  • Daniel Hedlund fixed window redraw on Linux #1414.
  • Tetsuharu Ohzeki significantly cleaned up the compositor source code in #1425.
  • Simon Sapin added support for non-UTF8 stylesheets #1377.
  • Patrick Walton cleaned up made several PRs that clean up layout’s dependency on DOM nodes.
  • Isabelle Carter added support for positioned offsets for layout in #1407.

Meetings

In this week’s meeting, we discussed using the Critic review tool from Opera with github. We are currently experimenting it, with jgraham’s support. Jack also discussed his ongoing Rust upgrade which, as always, has uncovered several interesting Rust compiler bugs.

We also sketched out our current planning roadmap, along with a cheat sheet of some of the research topics we’re also investigating.

Announcements, etc