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?
45 pull requests were merged this week.
Breaking Changes
~"foo"
and&"bar"
literals have been removed from the language. The second is a noop and the first is replaced by"foo".to_owned()
.- The various
rev_iter
methods have been removed in favor of making more iterators implementDoubleEndedIterator
. See the commit messages for more details.
Other Changes
- The first part of opt-in built-in traits has landed. The built-in traits can now be explicitly implemented and derived.
- There is now a lint for
negating
uint
values. - There is now a
debug_assert
macro for assertions which can be compiled out. - There is now a
bitflags
macro for generating a nice bitflag API. serialize
now has a streaming JSON parser.- We now use
-ffunction-sections
,-fdata-sections
, and--gc-sections
, for a 67% size reduction of hello world on Linux.
New Contributors
- Alexandre Gagnon
- Ali Smesseim
- Emanuel Rylke
- James Laverack
- Justin Noah
- Michael Pratt
- Nicolas Silva
- Noam Yorav-Raphael
- Phil Ruffwind
- Wendell Smith
- m-r-r
Weekly Meeting
The weekly meeting discussed many RFCs.
RFCs
- Allow some intrinsics in statics
- Low level features
- Static values as generic parameters
- Text/Unicode oriented streams
- Rename
&mut
to&only
, allow&only
borrowing of non-mut slots - Rename
StrBuf
toStr
and remove&str
from the language - Enforce module directory structure more strictly
- Longer numeric types (
u8
touint8
etc) - Change the syntax of struct literals to use
=
- Better temporary lifetimes
- User friendly input macros-
Community Updates
- Syntax extensions and regular expressions for Rust
- What to expect as a C# user
- Ludum Dare 29 Entry: Sea Snake Escape
- LD29 Entry: Repercussion
- LD29 Entry: Shadows Below
- Bitfields in Rust
- Rust for C++ programmers part 4
- New moderation policy
- rust-empty 0.3 has been released.
- RMX, a Rust instrumentation tool
- A Game Boy Advance game, written in Rust
- An interactive compiler, which lets you disassemble Rust code nicely
- ClearCrypt: A new transport encryption library
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 week, we landed 28 PRs.
Notable additions
- Lars Bergstrom landed the Rust upgrade, bringing Servo in line with April 10th Rust in #2238
- Patrick Walton re-enabled parallel layout in #2174 and added parallel display list building in #2235
- jgraham updated the Web Platform Tests integration to support passing some arguments via. env variables in #2245
- ms2ger rewrote the handling of optional arguments in
getJSToNativeConversionTemplate
in #2244 - Matt Brubeck cleaned up another dynamic borrow failure leading to pipeline problems in #2252
- Jack Moffitt cleaned up some of our Makefile and autoconf files in #2232
- Gulshan Singh fixed
TimeStamp
to return the actual time in #2275 - Mike Blumenkrantz added the start of embedding support in #2257
- Manish Goregaokar implemented the webidl and basic implementation of XHR in #2292
New Contributors
- Gulshan Singh (gsingh93)
Meetings and Notes
In this week's meeting, we introduced three new team members. Brendan (bjz) is a long-time Rust developer here on a Mozilla internship. Glenn Watson (gw) is a full-time member of the Servo team, with an initial focus on platform features. And Manish Goregaokar will be participating in Google Summer of Code, working on XMLHttpRequest. We covered the JS rooting changes, timing of the next Rust upgrade, the status of Web Platform Tests, and the use of prebuilt Rust compiler binaries.