Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us an email! Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
This week's edition was edited by: nasa42, brson, and llogiq.
Updates from Rust Community
News & Blog Posts
- The
?
operator andtry
vsdo
. A follow-up on Trait-based exception handling RFC. - Rust vs. C++: Fine-grained Performance.
- Stateful: A Rust experimental syntax extension for generators and more.
- Rust and BigData.
- Rust Guide to CHANGELOG.md.
- Rules-based Network programming with Mio and Rust.
- Eliminating the Garbage Collector: The RAII Way.
- These weeks in Servo 48.
- Rust for the web. RESTful API in Rust.
Notable New Crates & Project Updates
- clippy now has 100 different lints. clippy is a collection of lints to catch common mistakes and improve your Rust code.
- clap-rs 2.0 is released. Clap is a full featured, fast Command Line Argument Parser for Rust.
- Palette 0.2.0 is released. Palette is a Rust library for linear color calculations and conversion.
- scoped-pool. A flexible thread pool providing scoped and static threads.
- rusty-blockparser. Multi-threaded blockchain parser written in Rust language.
- kirk. A highly-flexible thread pool for Rust.
Updates from Rust Core
114 pull requests were merged in the last week.
See the triage digest and subteam reports for more details.
Notable changes
- Implement unwinding for i686 MSVC.
- Explicitly disable stack execution on linux and bsd.
- Improve error message for non-exhaustive patterns.
- mk: Move from
-D warnings
to#![deny(warnings)]
. - Implement RFC amendment 1462 (add
[
to FOLLOW(ty)). - Implement the translation item collector.
- std: Stabilize custom hasher support in HashMap.
- Update expression span when transcribing macro args.
- Cargo: Introduce cargo metadata subcommand.
- Cargo: Add convenience syntax to install current crate.
- Initial work towards abort-free compilation.
- Implement MultiSpan error reporting.
- Expect all help/note messages are specified in a cfail test.
- rustc_resolve: Refactor away NameBindings and ImportResolutionPerNamespace.
- Extend save-analysis to support generated code.
- Add support for the crosstool-ng Raspberry Pi 2 toolchain.
- Add support for mips(el)-unknown-linux-musl.
New Contributors
- Ali Clark
- Daan Sprenkels
- ggomez
- tgor
- Thomas Wickham
- Tomasz Miąsko
- Vincent Esche
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now. This week's FCPs are:
- Restrict constants in patterns.
- Amend RFC 1270 to describe actual implementation.
- Deprecate type aliases in
std::os::*::raw
. - Add
CommandExt::{exec, before_exec}
. - Add
retain_mut
toVec
andVecDeque
. - Rust Language Server (IDE support).
- Add a
SharedSender
tostd::sync::mpsc
that implementsSync
. - Propose a design for specialization, which permits multiple
impl
blocks to apply to the same type/trait. - Let specified generic type parameter lists be abbreviated.
- Add a
IndexAssign
trait that allows overloading "indexed assignment" expressions likea[b] = c
. - Trait-based exception handling.
New RFCs
Upcoming Events
- 2/3. Rust Meetup in Cologne / Germany.
- 2/8. Seattle Rust Meetup.
- 2/10. OpenTechSchool Berlin: Rust Hack and Learn.
- 2/10. Rust Boulder/Denver Monthly Meeting.
- 2/11. Columbus Rust Society.
- 2/12. Embedded Rust Workshop Frankfurt.
- 2/15. Rust Paris.
- 2/15. Rust Sydney Meetup.
- 2/17. Rust Berlin: Leaf and Collenchyma.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email Erick Tryzelaar or Brian Anderson for access.
fn work(on: RustProject) -> Money
- Research Engineer - Servo at Mozilla.
- Senior Research Engineer - Rust at Mozilla.
- PhD and postdoc positions at MPI-SWS.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Crate of the Week
This week's Crate of the Week is herbie-lint, a miraculous compiler plugin to check the numerical stability of floating-point operations in the code. Another reason to have a nightly Rust handy.
Thanks to redditor protestor for the suggestion.
Submit your suggestions for next week!
Quote of the Week
imo: the opinionated version of mio
Thanks to Steve Klabnik for the suggestion.