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?
58 pull requests were merged in the last week.
Now you can follow breaking changes as they happen!
- The definitions of operators have changed to be more flexible. RFC.
std::synchas been redesigned and rewritten for the nth time as a result of the ongoing runtime decimation.
HashMapno longer shrinks automatically, and some methods for managing the capacity have changed.
while let, and tuple indexing are no longer feature-gated. RFC.
- There's a new syntax for escaping unicode characters. The old will be deprecated briefly. RFC.
- Typechecking has been moved into its own crate.
matchexpressions in the compiler were replaced by
if let, which appears to be a nice improvement in readability.
- The 'expected foo, found bar' parse errors are much more accurate about what they actually expect.
- Aaron Liblong
- Jim Apple
- Mukilan Thiyagarajan
- Oliver Schneider
- Paul Collier
- Victor van den Elzen
- 450: Un-feature-gate
while letand tuple indexing.
- 490: Change
- 495: Array pattern adjustments. Fixes several limitations.
- Ammendment to RFC 439 for grammar ambiguity. There's an
..fooin the previously-accepted slicing RFC.
- 499: NonZero lang item. A way to tell the compiler that a value is not 0.
- 501: Consistent no-prelude attribute. Reworks the mechanism for opting out of the prelude.
- 502: Remove blanket extension impls. Blanket implementations make it impossible to override default methods.
- 503: Stabilize std::prelude. Scrutinizes what is included in the prelude, removing many traits.
- 504: Split
Get your (unofficial) rustacean t-shirts!
From the Team
There was no weekly meeting as the team was at a workweek in Portland. There weren't a lot of coherent minutes taken this time, but any discussions of substance will result in RFCs. Topics were largely around stabilization in preparation for 1.0, and this workweek featured a greater ratio of hacking to talking than previous ones.
Zbigniew Siciarz has been writing an informative (and ambitious) series called "24 Days of Rust". Nice work, Zbigniew!
- 24 Days of Rust - Cargo and crates.io. Reddit.
- 24 Days of Rust - slow_primes. Reddit.
- 24 Days of Rust - CSV. Reddit.
- 24 Days of Rust - docopt. Reddit.
- 24 Days of Rust - hyper. Reddit.
- 24 Days of Rust - working with JSON. Reddit.
- 24 Days of Rust - itertools. Reddit.
But that's not all that's going on!
- The story of my childhood, or: Rust on the PSP. Reddit.
- Progress on Rustdoc source link problems. lifthrasiir spreads the love of rustc metadata. Reddit.
- A Beginner's Thoughts on Programming Languages (Part 1). Some mentions of Rust.
- Reading Rust aloud.
- Clarification on standard library stability and the push to 1.0.
- Brainf*uck in Rust's type system (aka type system is Turing complete). Rust is serious business now.
- How does
- Package naming and grouped packages.
- D's proposal for escape-proof references, with some similarities to Rust's borrowed references. In which Walter Bright graces our subreddit and we totally fail to capitalize.
- Aren't exceptions mostly implemented for dtors?
- C++'s rvalue
&&references correspond to
&mut. "But then life is pain, and C++ doubly so."
- Why Rust started rather than Ada? No authoritative answers here but some interesting discussion.
- PSA: Copy is becoming opt-in. Reddit.
- Could the GC case be made noise-free by default?
- Rustdoc: reStructuredText vs. Markdown. Another round of the age-old debate.
- Repr formatter with ShowRepr trait.
- BitRust. A live breaking changes log!
- Sea Birds' Breakfast. long_void's Ludum Dare 31 entry.
- speedtest-rust. Command-line tool for testing Internet speed. Reddit.
- rust-once-mutex. A mutex providing one-time lock and subsequent fast access. Reddit.
- osmpbfreader-rs. OpenStreetMap BPF file reader. Reddit.
- rust-promise. A basic promise type. Reddit.
- rust-buildbot. The scripts running Rust's buildbot instance.
- matches. The
matches!macro is on crates.io.
- time_calc. Music and DSP time conversion. Reddit.
- rust-jwt. JSON Web Token. Reddit.
- rust-beanstalkd. A beanstalkd client. Reddit.
- rusty-tags. tags generator for cargo projects. Reddit.
- acacia. Generic spatial tree library. Reddit.
- doc_file. Write crate documentation in an external file. Reddit.