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, useChan::new
andSharedChan::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 tocrate_id
. extra::sort
has been removed, and there is now asort
method on mutable slices (&mut [T]
).
Other Changes
- The
remove
andinsert
methods on vectors have had some unsafe code added to make them 3x faster. - The
sum
method onextra::stat::Stat
has been made more accurate. - debuginfo for by-value
self
has been fixed. return
is now allowed in closures for early return.crate_id
(thenpkgid
) now supports specifying the crate name.#foo:1.0
as the fragment will make the crate namefoo
, for examplegl
ingithub.com/bjz/gl-rs#gl:1.0
.- A
Pod
kind has been added for types where a memcpy is a logical copy. This behaves very similarly to the oldCopy
kind. - 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.