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.
It's been a slow week due to the holidays. In the next week or two 0.9 is being released. It's an exciting release, but in more subtler ways than the previous 3. Many small details, especially around the runtime and linking, have changed that make Rust faster and more flexible without necessarily being a breaking change. As always, the detailed changelog will have the nitty-gritties.
What's cooking on master?
36 pull requests were merged this week. bors was feeling unwell for a bit, due to a deadlock in a scheduler test that was fixed today and a deadlock in (incorrect usage of) LLVM.
Breaking changes
- The
comm
primitives are neverFreeze
anymore. - The
link
attribute is now forbidden on crates. All hailcrate_id
! - All of our C++ dependencies have been
removed. This is only breaking
because it changes the debugging experience;
rust_begin_unwind
is gone andcatch throw
doesn't work because we don't use C++ exceptions anymore. To set a breakpoint on task failure,break _Unwind_RaiseException
. - The underbelly of the runtime has been completely overhauled. Alex wrote an email to the list about the practical implications of this.
std::result::collect
now uses an iterator.ClonableIterator
has been renamed toCloneableIterator
.
Other Changes
- libnative has process and TCP implementations.
- Coercion of types into trait objects is now
supported, which means
as ~SomeTrait
andas &Reader
can be left out. - I normally wouldn't mention this since it's internal to the compiler, but
Patrick made a heroic effort to remove
@mut
from all the places. - rustdoc can now test doc comments. See the pull request for details on how and what is tested (also in the rustdoc manual).
New contributors
- Sébastien Paolacci
Meeting
There was no meeting this week due to the holiday.
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.
Mozilla is on an extended holiday break until January 2nd, but we still landed 2 PRs this week.
Notable additions
- Jack Moffitt re-enabled building with make to enable work on cross-targeting ARM in #1441.
- ms2ger cleaned up how we handle namespaces in DOM elements #1438
Announcements, etc
- rust-openssl has been formed from the union of sfackler's rust-ssl and erickt's rustcrypto.
- Concurrency models, Rust, and Servo.
- Rust is surprisingly expressive.
- irust, a basic REPL written in Ruby.