|
| 1 | +Title: This Week in Rust 97 |
| 2 | +Number: 97 |
| 3 | +Date: 2015-09-21 |
| 4 | +Category: This Week in Rust |
| 5 | + |
| 6 | +Hello and welcome to another issue of *This Week in Rust*! |
| 7 | +[Rust](http://rust-lang.org) is a systems language pursuing the trifecta: |
| 8 | +safety, concurrency, and speed. This is a weekly summary of its progress and |
| 9 | +community. Want something mentioned? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us an |
| 10 | +email ](mailto:[email protected]?subject=This%20Week%20in%20Rust%20Suggestion)! |
| 11 | +Want to get involved? [We love |
| 12 | +contributions](https://github.com/rust-lang/rust/wiki/Note-guide-for-new-contributors). |
| 13 | + |
| 14 | +*This Week in Rust* is openly developed [on GitHub](https://github.com/cmr/this-week-in-rust). |
| 15 | +If you find any errors in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls). |
| 16 | + |
| 17 | +This week's edition was edited by: [nasa42](https://github.com/nasa42) and [llogiq](https://github.com/llogiq). |
| 18 | + |
| 19 | + |
| 20 | +# Updates from Rust Community |
| 21 | + |
| 22 | +## News & Blog Posts |
| 23 | + |
| 24 | +* <img alt="balloon" class="emoji" title=":balloon:" src="https://cdn.discourse.org/business/images/emoji/emoji_one/balloon.png?v=0"><img alt="tada" class="emoji" title=":tada:" src="https://cdn.discourse.org/business/images/emoji/emoji_one/tada.png?v=0"> [Announcing Rust 1.3](http://blog.rust-lang.org/2015/09/17/Rust-1.3.html). <img alt="tada" class="emoji" title=":tada:" src="https://cdn.discourse.org/business/images/emoji/emoji_one/tada.png?v=0"><img alt="balloon" class="emoji" title=":balloon:" src="https://cdn.discourse.org/business/images/emoji/emoji_one/balloon.png?v=0"> |
| 25 | +* [Asynchronous IO in Rust](https://blog.skcript.com/asynchronous-io-in-rust-36b623e7b965). |
| 26 | +* [An introduction to timely dataflow](https://github.com/frankmcsherry/blog/blob/7a1174e80134c8ce5338d5c62864a2aae835da04/posts/2015-09-14.md). Dataflow computational model written in Rust. |
| 27 | +* [An introduction to timely dataflow, part 2.](https://github.com/frankmcsherry/blog/blob/master/posts/2015-09-18.md). Writing super-powerful operators that do whatever you want to the streams. |
| 28 | +* [A Pythonista's irresistible attraction to Rust](http://hardcoded.net/articles/pythonistas-irresistible-attraction-rust). |
| 29 | +* [Python Modules in Rust](https://ehiggs.github.io/2015/07/Python-Modules-In-Rust/). |
| 30 | +* [Fine-grained timing and energy profiling in Servo](http://blog.servo.org/2015/09/11/timing-energy/). |
| 31 | +* [Seeking Compilation-Independent Type IDs in Rust](http://davidlegare.ghost.io/seeking-compilation-independent-type-ids-in-rust/). |
| 32 | +* [Running Rust code on the 3DS 2: Electric Boogaloo](http://www.idolagames.com/running-rust-code-on-the-3ds-2-electric-boogaloo/). |
| 33 | +* [Specialize to reuse](https://aturon.github.io/blog/2015/09/18/reuse/). [Specialization](https://github.com/rust-lang/rfcs/pull/1210) supports clean, inheritance-like patterns out of the box. This post explains how, and discusses the interaction with the “virtual structs” saga. |
| 34 | +* [Eliminating branches in Rust](http://kamalmarhubi.com/blog/2015/09/15/eliminating-branches-in-rust-for-fun-but-not-much-profit/). |
| 35 | +* [Rust and the Monad trait - Not just higher kinded types](https://m4rw3r.github.io/rust-and-monad-trait/). |
| 36 | + |
| 37 | +## Notable New Crates |
| 38 | + |
| 39 | +* [rustlings](https://github.com/carols10cents/rustlings). Small exercises to get you used to reading and writing Rust code. Includes practice reading and responding to compiler messages! |
| 40 | +* [LALRPOP - an LR(1) parser generator for Rust](http://smallcultfollowing.com/babysteps/blog/2015/09/14/lalrpop/). |
| 41 | +* [Cuprum Pi](https://github.com/cuprumpi/cupi). A GPIO access library written on Rust for the Raspberry Pi. |
| 42 | +* [hostblock](https://github.com/cgag/hostblock). Rust cli app for managing sites blocked via the hosts file. |
| 43 | +* [Tokei](https://github.com/Aaronepower/tokei). A CLOC (Count Lines Of Code) program, written in Rust. |
| 44 | +* [rust.fish](https://github.com/bheesham/rust.fish). Tab completions for `rustc` and `cargo` in fish shell. |
| 45 | +* [rust-xdg](https://github.com/whitequark/rust-xdg). A library that makes it easy to follow the X Desktop Group specifications. |
| 46 | + |
| 47 | +# Updates from Rust Core |
| 48 | + |
| 49 | +116 pull requests were [merged in the last week][merged]. |
| 50 | + |
| 51 | +[merged]: https://github.com/issues?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2015-09-14..2015-09-21 |
| 52 | + |
| 53 | +## Notable changes |
| 54 | + |
| 55 | +* [Feature-gate `#[no_debug]` and `#[omit_gdb_pretty_printer_section]`](https://github.com/rust-lang/rust/pull/28522). |
| 56 | +* [Warn on `pub extern crate`](https://github.com/rust-lang/rust/pull/28486). |
| 57 | +* [Remove Visibility field from enum variants](https://github.com/rust-lang/rust/pull/28442). |
| 58 | +* [Add a blanket `impl` for `&mut std::fmt::Write`](https://github.com/rust-lang/rust/pull/28368). |
| 59 | +* [Implement overload-able augmented/compound assignments, like `a += b` via the `AddAssign` trait](https://github.com/rust-lang/rust/pull/28345). |
| 60 | +* [Implement empty structs with braces](https://github.com/rust-lang/rust/pull/28336). |
| 61 | +* [Split up lint interface into pre- and post-expansion lints](https://github.com/rust-lang/rust/pull/28349). |
| 62 | + |
| 63 | +## New Contributors |
| 64 | + |
| 65 | +* Bastien Dejean |
| 66 | +* Colin Wallace |
| 67 | +* David Szotten |
| 68 | +* Dongie Agnir |
| 69 | +* Michael McConville |
| 70 | +* Peter Reid |
| 71 | +* whitequark |
| 72 | + |
| 73 | +## Approved RFCs |
| 74 | + |
| 75 | +Changes to Rust follow the Rust [RFC (request for comments) |
| 76 | +process](https://github.com/rust-lang/rfcs#rust-rfcs). These |
| 77 | +are the RFCs that were approved for implementation this week: |
| 78 | + |
| 79 | +* [1199: Lay the ground work for building powerful SIMD functionality.](https://github.com/rust-lang/rfcs/pull/1199). |
| 80 | +* [1224: Update the RFC process with sub-teams, amongst other things.](https://github.com/rust-lang/rfcs/pull/1224). |
| 81 | +* [1238: Revise the Drop Check (`dropck`) part of Rust's static analyses](https://github.com/rust-lang/rfcs/pull/1238). |
| 82 | +* [1240: References into `repr(packed)` structs should be `unsafe`](https://github.com/rust-lang/rfcs/pull/1240). |
| 83 | + |
| 84 | +## Final Comment Period |
| 85 | + |
| 86 | +Every week [the team](https://rust-lang.org/team.html) announces the |
| 87 | +'final comment period' for RFCs and key PRs which are reaching a |
| 88 | +decision. Express your opinions now. [This week's FCPs][fcp] are: |
| 89 | + |
| 90 | +[fcp]: https://github.com/issues?utf8=%E2%9C%93&q=is%3Apr+org%3Arust-lang+label%3Afinal-comment-period+is%3Aopen |
| 91 | + |
| 92 | +* [Forbid wildcard dependencies on crates.io](https://github.com/rust-lang/rfcs/pull/1241). |
| 93 | +* [Amend #911 const-fn to allow unsafe const functions](https://github.com/rust-lang/rfcs/pull/1245). |
| 94 | +* [Place left arrow syntax (`place <- expr`)](https://github.com/rust-lang/rfcs/pull/1228). |
| 95 | + |
| 96 | +## New RFCs |
| 97 | + |
| 98 | +* [Machine-readable output of tests](https://github.com/rust-lang/rfcs/pull/1284). |
| 99 | +* [Improvements to the Time APIs](https://github.com/rust-lang/rfcs/pull/1288). |
| 100 | + |
| 101 | +# Upcoming Events |
| 102 | + |
| 103 | +* [9/23. Columbus Rust Society](http://www.meetup.com/columbus-rs/). |
| 104 | +* [9/25. Rust Wellington](http://www.meetup.com/Wellington-Rust-Meetup/events/225362848/). |
| 105 | +* [9/28. Rust Sydney Meetup](http://www.meetup.com/Rust-Sydney/events/225175121/). |
| 106 | +* 9/30. RustBerlin Hack and Learn. |
| 107 | +* [10/1. Rust Meetup Hamburg: Rusty Project Presentations](http://www.meetup.com/Rust-Meetup-Hamburg/events/225391520/). |
| 108 | + |
| 109 | +If you are running a Rust event please add it to the [calendar] to get |
| 110 | +it mentioned here. Email [Erick Tryzelaar][erickt] or [Brian |
| 111 | +Anderson][brson] for access. |
| 112 | + |
| 113 | +[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com |
| 114 | +[erickt]: mailto:[email protected] |
| 115 | + |
| 116 | + |
| 117 | +# fn work(on: RustProject) -> Money |
| 118 | + |
| 119 | +*No jobs listed for this week. Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!* |
| 120 | + |
| 121 | +# Crate of the Week |
| 122 | + |
| 123 | +This is a new part of this weekly installation, where we will write about a crate that some of you may not know. |
| 124 | +Please nominate a crate of your choice at the [rust-users thread](https://users.rust-lang.org/t/crate-of-the-week/2704/15) so we can write about it next week. |
| 125 | + |
| 126 | +This week, Crate of the Week is **[lazy_static](https://crates.io/crates/lazy_static)**. Thanks go to [stebalien](https://users.rust-lang.org/users/stebalien) for the suggestion. |
| 127 | + |
| 128 | +This week's Crate of the Week does something some won't know is possible, and does it in a natural way. You know how in some languages you have to run through hoops to correctly lazily instantiate stuff? Not in Rust, for thanks to the [lazy_static](https://crates.io/crates/lazy_static) crate you just put your static values inside a `lazy_static! { ... }` block, pay a modest runtime cost on lookup and be done. |
| 129 | + |
| 130 | +Btw, this aligns very well with the C++ adage *"... and what you pay for, you couldn't have written any better"*. |
| 131 | + |
| 132 | +# Quote of the Week |
| 133 | + |
| 134 | +*Transmute is taking a dog, sawing its front legs off, gluing on a pair of buffalo wings and telling it it's a duck so it damn well better start quacking |
| 135 | +You should not be surprised when you end up with a pile of gore and a dead dog instead of an actual duck :-P* — Quxxy |
| 136 | + |
| 137 | +Thanks to [Ms2ger](https://users.rust-lang.org/users/Ms2ger) for the tip. [Submit your quotes for next week!][submit]. |
| 138 | + |
| 139 | +[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328 |
0 commit comments