171 lines
9.5 KiB
Markdown
171 lines
9.5 KiB
Markdown
Title: This Week in Rust 128
|
||
Number: 128
|
||
Date: 2016-05-02
|
||
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? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us 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/blob/master/CONTRIBUTING.md).
|
||
|
||
*This Week in Rust* is openly developed [on GitHub](https://github.com/cmr/this-week-in-rust).
|
||
If you find any errors in this week's issue, [please submit a PR](https://github.com/cmr/this-week-in-rust/pulls).
|
||
|
||
This week's edition was edited by: [Vikrant](https://github.com/nasa42) and [llogiq](https://github.com/llogiq).
|
||
|
||
# Updates from Rust Community
|
||
|
||
## News & Blog Posts
|
||
|
||
* [Introducing MIR](http://blog.rust-lang.org/2016/04/19/MIR.html).
|
||
* [Myths and legends about integer overflow in Rust](https://huonw.github.io/blog/2016/04/myths-and-legends-about-integer-overflow-in-rust/).
|
||
* [How to run Ruby inside a Rust crate](http://anima-engine.org/blog/how-to-run-ruby-inside-a-crate/).
|
||
* [Porting a Haskell graphics framework to Rust](http://phaazon.blogspot.in/2016/04/porting-haskell-graphics-framework-to.html).
|
||
* [Mapping over Arrays in Rust](https://llogiq.github.io/2016/04/28/arraymap.html).
|
||
* [Optimizing matrix multiplication in Rust](http://www.suchin.co/2016/04/25/Matrix-Multiplication-In-Rust-Pt-1/).
|
||
* [Multithreaded matrix multiplication in Rust - Part II](https://athemathmo.github.io/2016/04/25/multithreading-multiplication-2.html).
|
||
* [Segfaults are our friends and teachers](http://kamalmarhubi.com/blog/2016/04/25/segfaults-are-our-friends-and-teachers/).
|
||
* [This week in Redox 14](http://www.redox-os.org/news/this-week-in-redox-14/).
|
||
* [This Week in Ruma 2016-04-24](https://www.ruma.io/news/this-week-in-ruma-2016-04-24/). Ruma is a Matrix client-server API written in Rust.
|
||
* [The state of Rust docs](https://facility9.com/2016/04/the-state-of-rust-docs-2016/).
|
||
|
||
## Notable New Crates & Project Updates
|
||
|
||
* [Rust project changelog for 2016-04-29](https://users.rust-lang.org/t/rust-project-changelog-for-2016-04-29/5613). Updates to bitflags, lazy_static, regex, rust-mode, rustup, uuid.
|
||
* [Xi Editor](https://github.com/google/xi-editor). A modern editor with a backend written in Rust.
|
||
* [rure](https://github.com/rust-lang-nursery/regex/tree/master/regex-capi). A C API for the regex crate.
|
||
* [cassowary-rs](https://github.com/dylanede/cassowary-rs). A Rust implementation of the Cassowary constraint solving algorithm.
|
||
* [Sapper](https://github.com/sappworks/sapper). A lightweight web framework built on async hyper, implemented in Rust language.
|
||
* [servo-vdom](https://github.com/LorenVS/servo-vdom). A modified servo browser which accepts content patches over an IPC channel.
|
||
* [rustr and rustinr](http://rustr.org/). Rust library for working with R, and an R package to generate Rust interfaces.
|
||
* [Rorschach](https://github.com/meh/rorschach). Pretty print binary blobs based on common layout definition.
|
||
|
||
# Crate of the Week
|
||
|
||
This week's Crate of the Week is [arrayvec](https://crates.io/crates/arrayvec), which gives us a `Vec`-like interface over plain arrays for those instances where you don't want the indirection. Thanks to [ehiggs](https://users.rust-lang.org/users/ehiggs) for the suggestion!
|
||
|
||
[Submit your suggestions for next week][submit_crate]!
|
||
|
||
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
|
||
|
||
# Call for Participation
|
||
|
||
Always wanted to contribute to open-source projects but didn't know where to start?
|
||
Every week we highlight some tasks from the Rust community for you to pick and get started!
|
||
|
||
Some of these tasks may also have mentors available, visit the task page for more information.
|
||
|
||
* [easy] [Help improve DuckDuckGo's Rust-related searches](https://www.reddit.com/r/rust/comments/4gujbf/help_improve_duckduckgos_rustrelated_searches/).
|
||
* [easy] [rust: Add error explanations for all error codes](https://github.com/rust-lang/rust/issues/32777).
|
||
* [easy] [servo/highfive: Add a comment when a PR receives a push](https://github.com/servo/highfive/issues/101).
|
||
* [easy] [servo/devices: Minimize duplication for unsupported platforms](https://github.com/servo/devices/issues/8).
|
||
|
||
If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines].
|
||
|
||
[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821
|
||
|
||
# Updates from Rust Core
|
||
|
||
92 pull requests were [merged in the last week][merged].
|
||
|
||
[merged]: https://github.com/issues?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2016-04-25..2016-05-02
|
||
|
||
* [new `Entry::key()` method](https://github.com/rust-lang/rust/pull/33148)
|
||
* [`Clone::clone()` no longer deep-clones `Copy` types](https://github.com/rust-lang/rust/pull/31414)
|
||
* [`IPV6_V6ONLY` removed](https://github.com/rust-lang/rust/pull/33263) (breaking change!)
|
||
* [`-Z save_analysis` now uses JSON format](https://github.com/rust-lang/rust/pull/33208)
|
||
* [`trans::collector` improvements](https://github.com/rust-lang/rust/pull/33171)
|
||
* [`pub(restricted)` on tuple struct fields](https://github.com/rust-lang/rust/pull/33161)
|
||
* [simplify AST→HIR lowering by removing reproducibility](https://github.com/rust-lang/rust/pull/33296)
|
||
* [New "Rust Friends" page](https://github.com/rust-lang/rust-www/pull/346)
|
||
|
||
## New Contributors
|
||
|
||
* Andy Russell
|
||
* Brayden Winterton
|
||
* Demetri Obenour
|
||
* Ergenekon Yigit
|
||
* Jonathan Turner
|
||
* Michael Tiller
|
||
* Timothy McRoy
|
||
* Tomáš Hübelbauer
|
||
|
||
## Approved RFCs
|
||
|
||
Changes to Rust follow the Rust [RFC (request for comments)
|
||
process](https://github.com/rust-lang/rfcs#rust-rfcs). These
|
||
are the RFCs that were approved for implementation this week:
|
||
|
||
*No RFCs were approved this week!*.
|
||
|
||
## Final Comment Period
|
||
|
||
Every week [the team](https://rust-lang.org/team.html) announces the
|
||
'final comment period' for RFCs and key PRs which are reaching a
|
||
decision. Express your opinions now. [This week's FCPs][fcp] are:
|
||
|
||
[fcp]: https://github.com/rust-lang/rfcs/labels/final-comment-period
|
||
|
||
* [Float-free libcore](https://github.com/rust-lang/rfcs/pull/1596).
|
||
* [`as_millis` function on `std::time::Duration`](https://github.com/rust-lang/rfcs/pull/1547).
|
||
* [Add `TryFrom` and `TryInto` traits](https://github.com/rust-lang/rfcs/pull/1542).
|
||
* [Add workspaces to Cargo](https://github.com/rust-lang/rfcs/pull/1525).
|
||
* [Specifying that `<T as Clone>::clone(&t)` where `T: Copy` should be equivalent to `ptr::read(&t)`](https://github.com/rust-lang/rfcs/pull/1521).
|
||
* [Proposal for thread affinity](https://github.com/rust-lang/rfcs/pull/1480).
|
||
* [Add `#[repr(align = "N")]`](https://github.com/rust-lang/rfcs/pull/1358).
|
||
|
||
## New RFCs
|
||
|
||
* [Introduce `dyn` keyword](https://github.com/rust-lang/rfcs/pull/1603).
|
||
* [Amend RFC 1268 with a more feasible proposal post-specialization](https://github.com/rust-lang/rfcs/pull/1600).
|
||
* [Associated type constructors (a form of higher-kinded polymorphism)](https://github.com/rust-lang/rfcs/pull/1598).
|
||
|
||
# Upcoming Events
|
||
|
||
* 5/4. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
|
||
* [5/4. OpenTechSchool Berlin: Rust Hack and Learn](http://www.meetup.com/opentechschool-berlin/).
|
||
* [5/4. Cologne / Germany: Rust Anniversary Meetup](http://www.meetup.com/de-DE/Rust-Cologne-Bonn/events/230641335/).
|
||
* [5/4. Wellington Rust meetup](http://www.meetup.com/Wellington-Rust-Meetup/events/230650719/).
|
||
* 5/5. Rust London Meetup #5 at Mozilla London.
|
||
* [5/5. Rust Sydney Hack-night](http://www.meetup.com/Rust-Sydney/events/230536981/).
|
||
* [5/9. Seattle Rust Meetup](https://www.eventbrite.com/e/mozilla-rust-seattle-meetup-tickets-12222326307?aff=erelexporg).
|
||
* [5/10. (San Diego) Eat– Drink– Rust! Downtown Rust Meetup](http://www.meetup.com/San-Diego-Rust/events/230492925/).
|
||
* [5/10. Rust NYC: Systems Programming (in Rust) and Tasting (in Beer)](http://www.meetup.com/Rust-NYC/events/230401806/).
|
||
* [5/11. Rust Boulder/Denver Monthly Meeting](http://www.meetup.com/Rust-Boulder-Denver/).
|
||
* [5/11. Rust LA Monthly Meetup - Hack Night](http://www.meetup.com/Rust-Los-Angeles/events/230365091/).
|
||
* [5/12. Columbus Rust Society](http://www.meetup.com/columbus-rs/).
|
||
* [5/12. Rust Bay Area](http://www.meetup.com/Rust-Bay-Area/events/230624722/).
|
||
* [5/13. Rust Meetup Darmstadt](http://www.meetup.com/de-DE/Rust-Rhein-Main/events/230396961/).
|
||
* [5/13. Hack Chiapas, Autonomous University of Chiapas, Mexico](http://hackchiapas.com/).
|
||
* [5/16. Rust Paris](http://www.meetup.com/Rust-Paris).
|
||
* [5/17. Moscow Rust Conference](https://rustycrate.ru/%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8/2016/04/25/colaboratory-rust.html).
|
||
|
||
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
|
||
|
||
# fn work(on: RustProject) -> Money
|
||
|
||
*No jobs listed for this week.*
|
||
|
||
*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!*
|
||
|
||
# Quote of the Week
|
||
|
||
> In general, enough layers of Rc/RefCell will make anything work.
|
||
|
||
[gkoz on TRPLF](https://users.rust-lang.org/t/how-to-get-static-lifetime/5552/8).
|
||
|
||
Thanks to [birkenfeld](https://users.rust-lang.org/users/birkenfeld) for the suggestion.
|
||
|
||
[Submit your quotes for next week][submit]!
|
||
|
||
[submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328
|