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 big news this week was that the central crate repository is now live. There was much discussion on Hacker News, /r/rust and /r/programming.

We also have a new guide to error handling.

What's cooking on master?

100 pull requests were merged in the last week.

Breaking Changes

Other Changes

New Contributors

Andrew Cann

Gleb Kozyrev

Jashank Jeremy

jmu303

Joonas Javanainen

jxv

Nicholas Bishop

oli-obk

sheroze1123

Simon Wollwage

Vadim Petrochenkov

we

Approved RFC's

New RFC's

Release channels and feature staging: This RFC describes changes to the Rust release process, primarily the division of Rust's time-based releases into 'release channels', following the 'release train' model used by e.g. Firefox and Chrome; as well as 'feature staging', which enables the continued development of experimental language features and libraries APIs while providing strong stability guarantees in stable releases.

path reform: This RFC reforms the design of the std::path module in preparation for API stabilization. The path API must deal with many competing demands, and the current design handles many of them, but suffers from some significant problems given in "Motivation" below. The RFC proposes a redesign modeled loosely on the current API that addresses these problems while maintaining the advantages of the current design.

placement box with Placer trait for overloading: Add user-defined placement in expression (more succinctly, "an in expression"), an operator analogous to "placement new" in C++. This provides a way for a user to specify (1.) how the backing storage for some datum should be allocated, (2.) that the allocation should be ordered before the evaluation of the datum, and (3.) that the datum should preferably be stored directly into the backing storage (rather than allocating temporary storage on the stack and then copying the datum from the stack into the backing storage).

Feature gate box patterns: Move box patterns behind a feature gate.The general idea is good, but the semantics aren't baked enough for 1.0.

Add "function name macro": This RFC proposes the addition of a function! macro that expands to the function it's used in. This will greatly help error reporting.

Community

Karen Rustad found a wild rustacean.

From the Team

Weekly-meetings/2014-11-18: cmp/ops; TLS; future-proofing literal parsing; ungating tuple indexing, if/while let; naming conventions; struct variants matching; for syntax for higher-order lifetimes; macros; type parameter grammar; better shepherding Reddit.

Cargo: Rust's community crate host.

Videos

Introduction to programming safe and efficient systems in Rust. Jakub Bukaj at Øredev.

Blog Posts

Discussions

New Projects