Title: This Week in Rust 238 Number: 238 Date: 2018-06-12 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 a pull request](https://github.com/cmr/this-week-in-rust). 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). # Updates from Rust Community ## News & Blog Posts * [Understanding the difference between `Box`, `&Trait`, `impl Trait`, and `dyn Trait`](https://joshleeb.com/posts/rust-traits-and-trait-objects/). * [varkor joins the Compiler Team](https://internals.rust-lang.org/t/please-welcome-varkor-to-the-compiler-team/7716)! * [First screenshot of Dota2 running on gfx-portabilty with Metal backend](https://www.reddit.com/r/rust/comments/8pmniu/first_screenshot_of_dota2_running_on/). * [Actix – an actor framework for Rust](https://simplabs.com/blog/2018/06/11/actix.html). * [Migrating to Actix from Rocket](https://noyez.gitlab.io/post/2018-06-11-rocket-to-actix/). * [A Rust-based unikernel: First version of a Rust-based libOS](https://hermitcore.org/2018/06/06/A-Rust-based-Unikernel/). * [Where do Rust threads come from](http://www.squidarth.com/rc/rust/concurrency/2018/06/09/rust-threads-detach.html)? * [To do a Rust GUI](https://www.vandenoever.info/blog/2018/06/09/to-do-a-rust-gui.html). * [Integrating QML and Rust: Creating a QMetaObject at compile time](https://woboq.com/blog/qmetaobject-from-rust.html). * [crates.rs: An alternative to crates.io](https://crates.rs/). * [nphysics: A Physics engine in Rust now has 3D demos running in modern browsers](http://demo.nphysics.org/). * [podcast] [Rusty Spike Podcast - episode 32](https://rusty-spike.blubrry.net/2018/06/07/episode-32-jun-6-2018/). 1.26.2 release, the arch (video and site), compiler speed-ups, crates.rs, and more thoughts on the Rust design process. # Crate of the Week This week's crate is [clap-verbosity-flag](https://crates.io/crates/clap-verbosity-flag), a small crate to easily add a verbosity setting to Rust command line applications. Thanks to [Yoshuawuyts](https://users.rust-lang.org/u/yoshuawuyts) for the suggestion! [Submit your suggestions and votes 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. * [Sponsor work on Rust](https://aturon.github.io/sponsor/)! * [wasm-pack has several open good first issues available to new contributors](https://github.com/ashleygwilliams/wasm-pack/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22). * [Get started with these beginner-friendly issues](https://www.rustaceans.org/findwork/starters). 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 110 pull requests were [merged in the last week][merged] [merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2018-06-04..2018-06-11 * [Keyword unreservations (pure, sizeof, alignof, offsetof)](https://github.com/rust-lang/rust/pull/51196) (RFC [#2421](https://rust-lang.github.io/rfcs/2421-unreservations-2018.html)) * [parser: split `+=` into `+` and `=` where `+` is explicitly requested (such as generics)](https://github.com/rust-lang/rust/pull/51068) * [enable fall through past $:lifetime matcher](https://github.com/rust-lang/rust/pull/51480) * [deny `#[cfg]` and `#[cfg_attr]` on generic parameters](https://github.com/rust-lang/rust/pull/51283) * [include parens to type parameter](https://github.com/rust-lang/rust/pull/50205) * [use scope tree depths to speed up `nearest_common_ancestor`](https://github.com/rust-lang/rust/pull/51394) * [avoid useless Vec clones in `pending_obligations`](https://github.com/rust-lang/rust/pull/51412) * [NLL performance boost](https://github.com/rust-lang/rust/pull/51399) * [NLL: report type moved from behind borrow of array/slice](https://github.com/rust-lang/rust/pull/51247) * [deduplicate auto traits in trait objects](https://github.com/rust-lang/rust/pull/51276) * [remove dependency on fmt_macros from typeck](https://github.com/rust-lang/rust/pull/51380) * [re-enable trivial bounds](https://github.com/rust-lang/rust/pull/51042) * [use spans pointing at the inside of a rustdoc attribute](https://github.com/rust-lang/rust/pull/51391) * [suggest parentheses when a struct literal needs them](https://github.com/rust-lang/rust/pull/51360) * [suggest not mutably borrowing a mutable reference](https://github.com/rust-lang/rust/pull/51242) * [add deprecation lint for duplicated `macro_export`s](https://github.com/rust-lang/rust/pull/50143) * [accept `..` in incorrect position to avoid further errors](https://github.com/rust-lang/rust/pull/51201) * [fix the use of closures within `#[panic_implementation]`](https://github.com/rust-lang/rust/pull/51368) * [refactor the const eval diagnostic API](https://github.com/rust-lang/rust/pull/51316) * [check array indices in constant propagation](https://github.com/rust-lang/rust/pull/51308) * [`ScalarPairs` are offset==0 field + other non-zst field](https://github.com/rust-lang/rust/pull/51307/files) * [blocking Rayon queries](https://github.com/rust-lang/rust/pull/50699/files) * [reexport `fmt::Alignment` into `std`](https://github.com/rust-lang/rust/pull/51333) * [add `Future` and task system to the standard library](https://github.com/rust-lang/rust/pull/51263) * [futures: add a few blanket impls to `std`](https://github.com/rust-lang/rust/pull/51442) * [fix confusing error message for sub_instant](https://github.com/rust-lang/rust/pull/51255) * [stabilize `Iterator::step_by`](https://github.com/rust-lang/rust/pull/51320) * [stabilize `iterator_repeat_with`](https://github.com/rust-lang/rust/pull/51200) * [stabilize `entry-or-default`](https://github.com/rust-lang/rust/pull/51079) * [stabilize unit tests with non-`()` return type](https://github.com/rust-lang/rust/pull/51298) * [cargo: allow rustc bootstrap to use unstable features even though it's using a beta-cargo](https://github.com/rust-lang/cargo/pull/5613) * [fix crate-name option in rustdoc](https://github.com/rust-lang/rust/pull/51256) * [rustbuild: allow enabling incremental via config.toml](https://github.com/rust-lang/rust/pull/51317) * [rustbuild: do not require stage 2 compiler for rustdoc](https://github.com/rust-lang/rust/pull/51436) ## 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://www.rust-lang.org/team.html) announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now. ### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) * [disposition: close] [Reserve `throw` and `fail` as keywords in edition 2018](https://github.com/rust-lang/rfcs/pull/2441). ### [Tracking Issues & PRs](https://github.com/rust-lang/rust/labels/final-comment-period) * [disposition: merge] [Exhaustive integer matching](https://github.com/rust-lang/rust/pull/50912). * [disposition: merge] [Stabilize `std::path::Path::ancestors`](https://github.com/rust-lang/rust/pull/50894). * [disposition: merge] [Add ability to apply custom derive to union types](https://github.com/rust-lang/rust/pull/50383). * [disposition: merge] [Tracking issue for `ToOwned::clone_into` (`toowned_clone_into`)](https://github.com/rust-lang/rust/issues/41263). * [disposition: merge] [Tracking issue for "macro naming and modularisation" (RFC #1561)](https://github.com/rust-lang/rust/issues/35896). * [disposition: merge] [Tracking issue for promoting `!` to a type (RFC 1216)](https://github.com/rust-lang/rust/issues/35121). ## New RFCs * [Add lint warning for inner function marked as `#[test]`](https://github.com/rust-lang/rfcs/pull/2471). # Upcoming Events ### Online * [Jun 19. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org](irc://irc.mozilla.org/rust-content). * [Jun 20. Rust Community Team Meeting at #rust-community on irc.mozilla.org](irc://irc.mozilla.org/rust-community). * [Jun 20. Rust Events Team Meeting](https://t.me/joinchat/EkKINhHCgZ9llzvPidOssA). * [Jun 27. Rust Community Team Meeting at #rust-community on irc.mozilla.org](irc://irc.mozilla.org/rust-community). ### Europe * [Jun 21. Cambridge, GB - Cambridge Rust Meetup](https://www.meetup.com/Cambridge-Rust-Meetup/events/pzwshpyxjbcc/). * [Jun 27. Berlin, DE - OpenTechSchool - Rust Hack and Learn](https://www.meetup.com/opentechschool-berlin/events/251675898/). ### North America * [Jun 14. Columbus, US - Columbus Rust Society - Monthly Meeting](https://www.meetup.com/columbus-rs/events/dbcfrpyxjbsb/). * [Jun 14. San Diego, US - San Diego Rust June Meetup](https://www.meetup.com/San-Diego-Rust/events/251001684/). * [Jun 14. Utah Valley, US - Utah Rust meetup](https://docs.google.com/document/d/1O8S7IEfDw-3jTN74CWCuKYl_UWxTLd6-epz7NOMDYRg). * [Jun 14. Arlington, US - Rust DC - Mid-month Rustful](https://www.meetup.com/RustDC/events/250848451). * [Jun 17. Mountain View, US - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxjbwb/). * [Jun 19. Denver, US - Rust Boulder/Denver - June Meetup in Boulder](https://www.meetup.com/Rust-Boulder-Denver/events/250076478/). * [Jun 19. Kitchener, CA - Graph Mining in Rust & Your Project Demos](https://www.meetup.com/Rust-KW/events/251426929/). * [Jun 24. Mountain View, US - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxjbgc/). * [Jun 26. Dallas, US - Last Tuesday Meetup](https://www.meetup.com/Dallas-Rust/events/zfgwzmyxjbjc/). * [Jun 26. New York City, US - Procedural Macros - parse JSX using nom](https://www.meetup.com/Rust-NYC/events/251490499/). * [Jun 27. Vancouver, CA - Rust Study/Hack/Hang-out night](https://www.meetup.com/Vancouver-Rust/events/dqldspyxjbkc/). * [Jun 28. San Francisco, US - Rust Bay Area - Zero Knowledge Proof Macros and Cernan (data pipelining)](https://www.meetup.com/Rust-Bay-Area/events/244156617/). * **[Aug 17. Portland, US - RustConf 2018](http://rustconf.com/).** Registration is now open. If you are running a Rust event please add it to the [calendar] to get it mentioned here. Email the [Rust Community Team][community] for access. [calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com [community]: mailto:community-team@rust-lang.org # Rust Jobs * [Rust Engineer at Commure, Inc. San Francisco, US](https://news.ycombinator.com/item?id=16968087). *Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!* # Quote of the Week > explicit lifetimes no longer scare me the way they used to. – Nicholas Nethercote on [his blog](https://blog.mozilla.org/nnethercote/2018/06/05/how-to-speed-up-the-rust-compiler-some-more-in-2018) (selected by llogiq per one unanimous vote) [Please submit your quotes for next week][submit]! [submit]: http://users.rust-lang.org/t/twir-quote-of-the-week/328 *This Week in Rust is edited by: [nasa42](https://github.com/nasa42) and [llogiq](https://github.com/llogiq).*