Title: This Week in Rust 78
Date: 2015-04-20
Category: This Week in Rust

Hello and welcome to another issue of *This Week in Rust*!
[Rust](http://rust-lang.org) 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!](mailto:corey@octayn.net?subject=This%20Week%20in%20Rust%20Suggestion)
Want to get involved? [We love
contributions](https://github.com/rust-lang/rust/wiki/Note-guide-for-new-contributors).

*This Week in Rust* is openly developed [on GitHub](https://github.com/cmr/this-week-in-rust).
If you find any errors or omissions in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls).

# What's cooking on master?

108 pull requests were [merged in the last week][merged], and 5 [RFC PRs][rfcs].

[merged]: https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-04-13..2015-04-20
[rfcs]: https://github.com/rust-lang/rfcs/pulls?q=is%3Apr+is%3Amerged+merged%3A2015-04-13..2015-04-20

Now you can follow breaking changes *[as they happen][BitRust]*! Or, [in html][BitRust2].

[BitRust]: http://rawgit.com/mrmonday/bitrust/gh-pages/index.html
[BitRust2]: http://killercup.github.io/bitrust/

# Breaking Changes

* [Add `Sync` to the bounds of `io::Error`](https://github.com/rust-lang/rust/pull/24133).
* [Make `FromRawFd::from_raw_fd` unsafe](https://github.com/rust-lang/rust/pull/24251).
* [Destabilize `format_args!` internals](https://github.com/rust-lang/rust/pull/24312).
* [Check for overflow in arithmetic negation](https://github.com/rust-lang/rust/pull/24500).

# Other Changes

* [Add `Default` trait for `AtomicBool`, `AtomicIsize`, `AtomicUsize`](https://github.com/rust-lang/rust/pull/24329).
* [rustdoc: Another round of improvements](https://github.com/rust-lang/rust/pull/24396).
* [Move optimized `String::from_str` to `String::from`](https://github.com/rust-lang/rust/pull/24517).
* Several patches adding extended error explanations have appeared: [1](https://github.com/rust-lang/rust/pull/24542), [2](https://github.com/rust-lang/rust/pull/24552), [3](https://github.com/rust-lang/rust/pull/24525). 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](https://github.com/rust-lang/rfcs/pull/771).
* [RFC 1030: 1.0 prelude additions](https://github.com/rust-lang/rfcs/pull/1030).
* [RFC 1048: split up fs::soft_link into os::unix::fs::symlink and os::windows::fs::{symlink_file, symlink_dir} ](https://github.com/rust-lang/rfcs/pull/1048).
* [RFC 1054: Rename or replace `str::words` to side-step the ambiguity of “a word”](https://github.com/rust-lang/rfcs/pull/1054).
* [RFC 1057: Add Sync to io::Error](https://github.com/rust-lang/rfcs/pull/1057).

# New RFCs

* [Constants that depend on type parameters in generic code](https://github.com/rust-lang/rfcs/pull/1062).
* [Alter mem::forget to be safe](https://github.com/rust-lang/rfcs/pull/1066).
* [Scaling Rust's governance](https://github.com/rust-lang/rfcs/pull/1068).

# Notable Links

* [A page of useful links for new contributors](http://www.ncameron.org/rust.html).
* [Priorities after 1.0](http://internals.rust-lang.org/t/priorities-after-1-0/1901/54). This is where we're going. Your opinion matters.
* [Mixing matching, mutation, and moves in Rust](http://blog.rust-lang.org/2015/04/17/Enums-match-mutation-and-moves.html).
* [How should we talk about mutability?](http://internals.rust-lang.org/t/how-should-we-talk-about-mutability/1882)
* [Rust 1.0 launch event details](http://users.rust-lang.org/t/rust-1-0-launch-event-details-action-required-for-event-organizers/1025). There will be meetups to attend.
* [Regression report beta-2015-04-03 vs. beta-2015-04-17](http://internals.rust-lang.org/t/regression-report-beta-2015-04-03-vs-beta-2015-04-17/1931).
* [Array slice strangeness](http://www.reddit.com/r/rust/comments/330tu1/array_slice_strangeness/). Just a question, but behold the tag team answer by huon, Gankro, and pnkfelix.
* [`std::thread::scoped` found to be unsound](http://www.reddit.com/r/rust/comments/32jmf8/stdthreadscoped_found_to_be_unsound/). That awesome thing Rust can do? It can't actually.
* [Aaron Turon's Stanford talk (video)](http://www.reddit.com/r/rust/comments/32fxlo/aaron_turon_stanfords_talk_on_rust/).
* [Help write Rust error explanations!](http://www.reddit.com/r/rust/comments/32jdq9/help_write_rust_error_explanations/). Michael Sproul is on the prowl. For better error messages.
* [My Python's a little Rusty](https://www.youtube.com/watch?v=3CwJ0MH-4MA). Dan Callahan at PyCon 2015. Video.
* seanmonstar has created [crates.io badges to plaster your README's with](http://seanmonstar.com/post/116574828167/merit-badge).
* [Rust vs. Ruby: building an API](http://serdardogruyol.com/rust-vs-ruby-building-an-api/).
* [Building Rust programs with Docker - ad-hoc talk@containera.io (video)](https://www.youtube.com/watch?v=JJdevVjAmmQ)

# Project Updates

* [A skeletal animation demo in Piston](https://www.reddit.com/r/rust_gamedev/comments/32g6h7/piston_skeletal_animation_demo/).
* [wrapping_macros](https://github.com/lfairy/wrapping_macros). Macros for wrapping arithmetic.
* [tempfile](http://www.reddit.com/r/rust/comments/32n864/tempfile_temporary_file_library/). Secure, cross-platform, temporary files.
* [LlamaDB](http://www.reddit.com/r/rust/comments/32wqa7/wip_llamadb_a_simple_sql_database_written_in_rust/). A SQL database.
* [twilio-rs](http://www.reddit.com/r/rust/comments/336syv/twiliors_rust_library_for_working_with_twilio/). Library for working with Twilio.
* [elmesque](https://github.com/mitchmindtree/elmesque). [Elm](http://elm-lang.org)'s std graphics modules ported to Rust and rendering to GL.
* [trace](https://github.com/gsingh93/trace). A syntax extension for tracing function execution.

# Upcoming Events

* [4/20. Paris](http://www.meetup.com/Rust-Paris).
* [4/22. The Columbus Rust Society](http://www.meetup.com/columbus-rs/).
* [4/28. Sydney](http://www.meetup.com/Rust-Sydney/events/221993570/).

A number of meetups will be [celebrating
1.0](http://users.rust-lang.org/t/rust-1-0-launch-event-details-action-required-for-event-organizers/1025/6). Watch this space!

If you are running a Rust event please add it to the [calendar] to get
it mentioned here. Email [Erick Tryzelaar][erickt] or [Brian
Anderson][brson] for access.

[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com
[erickt]: mailto:erick.tryzelaar@gmail.com
[brson]: mailto:banderson@mozilla.com

# 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](https://www.reddit.com/r/rust/comments/32wqa7/wip_llamadb_a_simple_sql_database_written_in_rust/cqfoh41).

Thanks to tshepang for the tip. [Submit your quotes for next week!][submit].

[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328
