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.
The 0.10 release will likely be this week. 3 months from 0.9 is April 3.
What’s cooking on master?
63 pull requests were merged this week.
synccrate has seen some significant cleanup. In particular,
MutexArc<T>have been removed.
RWLock<T>have been introduced, and can be used as
MutexArc. There are some other minor changes, see the pull request.
- Taking a reference to a static whose type contains an
Unsafe<T>somewhere is now forbidden.
FromIteratornow take their argument by-value.
- The crate map has been
removed, and with it a
significant amount of complexity. As a consequence of its removal,
green::startnow takes the event loop it should use as an argument rather than looking in the crate map. The documentation has an example
- The syntax for bounds on generic paths has
- The default
Sendbound on trait objects has been removed.
serializeinfrastructure now supports error reporting via
Podhas been renamed to
- The attribute syntax has
changed. Rather than saying
#[crate_type = "bin"];(with a significant semicolon), you say
#![crate_type = "bin"](no semicolon).
collections::Listhas been removed. Use a vector, or
collections::DListif you really want a linked list. Persistent data structures will live in a different crate than
fillmethod has been added to
Reader, for reading an exact amount of bytes or erroring.
- As discussed on the mailing list some months ago, synchronous, bounded channels have been added.
Share’s documentation has been expanded.
- A straggler from the doc sprint, a few hundred lines of
documentation have been added
- Some handy methods have been
Jsonto make searching and selecting elements from JSON objects easier.
- There’s a new warn-by-default lint for deriving traits on types which contain raw pointers.
- Many confusing lifetime-related ICE’s have been fixed. This is good progress towards closing the notorious issue 5121.
- We can now emit debuginfo for
statics. Yay debuginfo!
- Davis Silverman
- Noam Gagliardi Rabinovich
- Sean McArthur
The meeting this
discussed various things: attribute parsing in macros, opt-in built-in traits,
SIMD, allowing square brackets in macro invocation, allowing bounds on type
parameters in structs, private fields by default, the fate of
collections::List, and bounds on trait paths.
- rust-highlight can be used to highlight Rust code in LaTeX, HTML, and JSON.
- rust-tabular, a library for handling delimiter-separated values (commas, tabs, or any other character), as well as fixed columns of fixed width.
- rust-csv, a CSV library which
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 two weeks, we landed 33 PRs.
- Lars Bergstrom landed a Rust upgrade, bringing us to late February in #1934
- ms2ger cleaned up some sketchy use of unsafe native pointers, wrapping them
- Matt Brubeck named the WorkQueue tasks so that we’ll know where failure is coming from during parallel layout in #1977
- Matt Brubeck (mbrubeck)
Meetings and Notes
Patrick Walton authored and combined the final set of changes required to get Servo passing ACID2!
Matthew Brubeck has joined the Servo team full-time, coming over from the Firefox Metro project.