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::commhas been rewritten. In short, useChan::newandSharedChan::newto 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::rawcleanup has turned some free functions into methods..as_mut_bufand friends have also been removed, replaced by using.as_ptr,.as_mut_ptr, and.len. extra::ebmlhas been partially de-@d.- A ton of useless traits,
ToOptionetc, have been removed. - A nasty bug where having an
implfor a type forced it to be public has been fixed. Some types which were previously accessible may not be anymore, due to this. - The
pkgidcrate attribute has been renamed tocrate_id. extra::sorthas been removed, and there is now asortmethod on mutable slices (&mut [T]).
Other Changes
- The
removeandinsertmethods on vectors have had some unsafe code added to make them 3x faster. - The
summethod onextra::stat::Stathas been made more accurate. - debuginfo for by-value
selfhas been fixed. returnis now allowed in closures for early return.crate_id(thenpkgid) now supports specifying the crate name.#foo:1.0as the fragment will make the crate namefoo, for exampleglingithub.com/bjz/gl-rs#gl:1.0.- A
Podkind has been added for types where a memcpy is a logical copy. This behaves very similarly to the oldCopykind. - Stability attributes (
#[deprecated],#[experimental], etc) are now checked for method calls. - Metadata reading has been made 4x faster.
- msys terminals are now
supported by
extra::term.
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
- The SF meetup happened. It was recorded and is available on Air Mozilla. The video is well worth watching.
- A broad vision for the Rust docs stack.
- Two bugs in the borrow checker every Rust developer should know about.
- Building Rust Code - Using Make Part 2.
- Video: 2D portaling demo in Rust and rust-sdl2.
- What do you want in a Rust book?.
- An etched copper Rust logo.
- Ohcount Rust support has been merged, so hopefully ohloh will have more accurate information for Rust projects soon.