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? Send me an email! Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub. If you find any errors or omissions in this week's issue, please submit a PR.
What's cooking on master?
115 pull requests were merged in the last week, and 2 RFC PRs.
Now you can follow breaking changes as they happen!
Breaking Changes
- Inspect enum discriminant after calling its destructor
- Add downcasting to std::error::Error
- dropck: Remove
Copy
from special-cased traits - std: Remove index notation on slice iterators
Other Changes
- Implement associated constants
- Expand the area of std::fs
- Make
UnsafeCell
,RefCell
,Mutex
, andRwLock
accept DSTs - Experimental MUSL target support
- Implement Vec::drain from RFC 574
- Add single-threaded fence intrinsics
- Provide a Default implementation for AtomicPtr
- std: Fix inheriting standard handles on windows
- Add intrinsics for unchecked division and modulo
- robinst, bguiz and michaelsproul landed more extended error diagnostics: 1, 2, 3.
- derive: Give access to field attributes in ext::deriving
- Implement String::drain(range) according to RFC 574
New Contributors
- Brendan Graetz
- Carol (Nichols || Goulding)
- critiqjo
- Dominic van Berkel
- Hech
- Jan Bujak
- J Bailey
- jooert
- Jordan Humphreys
- Poga Po
- sinkuu
- Xuefeng Wu
Approved RFCs
New RFCs
- Guaranteed non-static dtors
- Add unsafe Option::unwrap_unchecked
- Remove static_assert
panic!
handlers- Rename
connect
tojoin
- Policy on semver and API evolution
Betawatch!
The current beta is rustc 1.0.0-beta.4 (850151a75 2015-04-30)
.
There were 2 PRs this week landing backports to beta.
Notable Links
- Where Rust really shines
- Using the
Option
type effectively - A Rust contributor tries their hand at Go
- On reference counting and leaks and a few more remarks.
- Rust web lessons based on nickel.rs and Angular.js. A tutorial on using nickel.
- Helping Travis catch the rustc train and Travis on the train, part 2.
- rustfmt - help wanted
- I got Rust working on a $13 ARM micro controller board. Here are my notes from the process
- Evaluation of performance and productivity metrics of potential programming languages in the HPC environment. MrFloya's bachelor's thesis.
- A journey into iterators
- Abomonation: terrifying serialization
- Weekly meeting 2015-04-28. Snapshots, transmute, static_assert.
- Core team meeting 2015-04-29. Optimizing by default, mem::forget, Debug builders, security policy.
Project Updates
- Piston - skeletal animations with dual-quaternions. Video.
- hprof. A simple hierarchical profiler.
- Baby steps at procedural tile generation in kvarkus's Claymore.
- Google APIs for Rust - Dev Diary #2: Making CLIs (video)
- extra_lints. More lints!
- RustyAndroid. Sample Rust Android application.
- Servo continues pushing forward
- Racer on Rust beta!
- bounded-spsc-queue.
- Horrorshow. An HTML templating macro.
- rust-chunked-transfer. Encoder and decoder for HTTP chunked transfer.
- kademlia-rs. A Rust implementation of the Kademlia DHT.
Upcoming Events
- May 5. San Diego
- May 11. Seattle
- May 15. Amsterdam
- May 15. Berlin
- May 15. Boston
- May 15. Columbus Rust Society
- May 15. Copenhagen
- May 15. Florence (@develer)
- May 15. Florence (@Unifi)
- May 15. London
- May 15. Los Angeles
- May 15. Madrid
- May 15. Moscow
- May 15. Munich
- May 15. NYC
- May 15. Paris
- May 15. Pittsburgh
- May 15. Portland
- May 15. San Francisco
- May 15. Toronto
- May 15. Washington, DC
- May 15. Warsaw
- May 16. Chengdu
- May 16. Seoul
- May 16. Tokyo
- May 19. Sydney
- May 22. Lambdaconf. Boulder, CO. Jared Roesch - "Who got types in my systems programming?"
- May 23. Bangalore
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.
Quote of the Week
"Ultimately, I think this all boils down to the fact that borrowck only cares about reachable values. A leaked value isn't reachable, therefore it doesn't matter that it had a lifetime associated with it and technically outlives that lifetime, since it's not reachable no undefined behavior can be invoked."
Insight from kballard on the safety of linking.
Thanks to Gankro for the tip. Submit your quotes for next week!.