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?
108 pull requests were merged in the last week, and 5 RFC PRs.
Now you can follow breaking changes as they happen! Or, in html.
Breaking Changes
- Add
Sync
to the bounds ofio::Error
. - Make
FromRawFd::from_raw_fd
unsafe. - Destabilize
format_args!
internals. - Check for overflow in arithmetic negation.
Other Changes
- Add
Default
trait forAtomicBool
,AtomicIsize
,AtomicUsize
. - rustdoc: Another round of improvements.
- Move optimized
String::from_str
toString::from
. - Several patches adding extended error explanations have appeared: 1, 2, 3. Thanks to michaelsproul, GuillaumeGomez, meqif, lfairy, ruud-v-a, nham and all diagnosticians!
New Contributors
- Abhishek Chanda
- Andrew Seidl
- Aram Visser
- Avdi Grimm
- fenduru
- James Perry
- Manuel Hoffmann
- Mickaël Salaün
- Nelo Onyiah
- Nick Hamann
- pez
- Robin Kruppe
- rundrop1
- Theo Belaire
- Thomas Jespersen
- Ting-Yu Lin
Approved RFCs
- RFC 771: std::iter::once.
- RFC 1030: 1.0 prelude additions.
- RFC 1048: split up fs::soft_link into os::unix::fs::symlink and os::windows::fs::{symlink_file, symlink_dir} .
- RFC 1054: Rename or replace
str::words
to side-step the ambiguity of “a word”. - RFC 1057: Add Sync to io::Error.
New RFCs
- Constants that depend on type parameters in generic code.
- Alter mem::forget to be safe.
- Scaling Rust's governance.
Notable Links
- A page of useful links for new contributors.
- Priorities after 1.0. This is where we're going. Your opinion matters.
- Mixing matching, mutation, and moves in Rust.
- How should we talk about mutability?
- Rust 1.0 launch event details. There will be meetups to attend.
- Regression report beta-2015-04-03 vs. beta-2015-04-17.
- Array slice strangeness. Just a question, but behold the tag team answer by huon, Gankro, and pnkfelix.
std::thread::scoped
found to be unsound. That awesome thing Rust can do? It can't actually.- Aaron Turon's Stanford talk (video).
- Help write Rust error explanations!. Michael Sproul is on the prowl. For better error messages.
- My Python's a little Rusty. Dan Callahan at PyCon 2015. Video.
- seanmonstar has created crates.io badges to plaster your README's with.
- Rust vs. Ruby: building an API.
- Building Rust programs with Docker - ad-hoc talk@containera.io (video)
Project Updates
- A skeletal animation demo in Piston.
- wrapping_macros. Macros for wrapping arithmetic.
- tempfile. Secure, cross-platform, temporary files.
- LlamaDB. A SQL database.
- twilio-rs. Library for working with Twilio.
- elmesque. Elm's std graphics modules ported to Rust and rendering to GL.
- trace. A syntax extension for tracing function execution.
Upcoming Events
A number of meetups will be celebrating 1.0. Watch this space!
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
"unsafe
restricts which code could contain undefined behavior, but it doesn't isolate the effects of that undefined behavior." - kmc on the limits of unsafety.
Thanks to tshepang for the tip. Submit your quotes for next week!.