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! Want to get involved? We love contributions.
What’s cooking in master?
74 pull requests were merged this week.
- Struct fields now inherit the privacy of the struct itself.
- A bug in instantiability checking (determining whether a value of a given type could ever be constructed) has been fixed.
Onehave been tightened up, and fewer types implement them now.
- A lot of things have changed regarding functions that fail or return Options. Almost everything that used to fail now returns an Option instead.
- Many incorrect usages of types from
std::libcnow use Rust types. This might introduce an extra
asor few in code using these (relatively obscure) interfaces.
DoubleEndedIteratorhas been renamed to
- The numeric constants have been uppercased.
- Some privacy in std and extra has been shuffled around.
- Most macros are no longer injected as a hard-coded string and in fact live in libstd.
-Z no-landing-padsactually disables landing pad generation. It was accidentally broken.
- The FFI documentation now includes a section on callbacks.
- A lint for unnecessary parens on control flow conditions etc has been added.
- Support for ARM’s thumb instructions has been added.
- libnative now implements timers.
- There is now exponential notation for float formatting.
Vec<T>has been added, which is intended to eventually replace
- Borrow checker errors now have better spans and should be more understandable.
- It is now possible to opt out of using rpaths.
- libnative now implements
- A new synchronization primitive, Barrier, has been added.
- Andre Arko
- Aydin Kim
- Ben Harris
- Ben Noordhuis
- Chris Wong
- Daniel MacDougall
- Hong Chulju
- Jake Greenfield
- Matthias Einwag
- Philippe Delrieu
- Salem Talha
- Sean Chalmers
- Trent Ogren
- Virgile Andreani
The weekly meeting discussed a bunch of open pull requests, but nothing too groudbreaking.
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.
This week, we landed 19 PRs and had a Servo workweek in the Mozilla San Francisco office from Tuesday through Friday (Monday was a US federal holiday).
- Bruno Abinader implemented Document::createHTMLDocument in #1523.
- Patrick Walton implemented parallel layout for two of our three layout passes in #1493.
- Patrick Kim fixed computation of image box sizes in #1520 and text-decoration in #1506.
- Deokjin Kim landed the
white-space:preproperty in #1507.
- Aydin Kim and Lars Bergstrom landed fixes for Servo on Android.
- Teodor Szente fixed up a type signature in #1541.
- Lars Bergstrom changed ref tests so that they now emit a PNG showing the image-diff between the baseline and incorrect rendering in #1544.
- Teodor Szente