173 lines
11 KiB
Markdown
173 lines
11 KiB
Markdown
Title: This Week in Rust 234
|
|
Number: 234
|
|
Date: 2018-05-15
|
|
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
|
|
|
|
* 🎈🎉 [Announcing Rust 1.26](https://blog.rust-lang.org/2018/05/10/Rust-1.26.html). 🎉🎈
|
|
* 🎈🎉 [Rust turns three](https://blog.rust-lang.org/2018/05/15/Rust-turns-three.html). 🎉🎈
|
|
* [How Rust 1.26 more than tripled the speed of my code](http://troubles.md/posts/the-power-of-compilers/).
|
|
* [Notes on impl Trait](https://www.reddit.com/r/rust/comments/8ik620/notes_on_impl_trait/).
|
|
* [Entity-Component-System architecture for UI in Rust](https://raphlinus.github.io/personal/2018/05/08/ecs-ui.html).
|
|
* [Performance experiments with matrix multiplication](https://vorner.github.io/2018/05/12/Mat-perf.html).
|
|
* [Cortex-M library development now possible on beta and the path towards stable embedded Rust](https://users.rust-lang.org/t/cortex-m-library-development-now-possible-on-beta-and-the-path-towards-stable-embedded-rust/17420).
|
|
* [nom 4.0 released: faster, safer, simpler parsers](http://unhandledexpression.com/general/2018/05/14/nom-4-0-faster-safer-simpler-parsers.html).
|
|
* [This week in Rust docs 105](https://guillaumegomez.github.io/this-week-in-rust-docs/blog/this-week-in-rust-docs-105).
|
|
* [This week in Rust and WebAssembly 2](https://rustwasm.github.io/2018/05/14/this-week-in-rust-wasm-002.html).
|
|
* [These weeks in dev tools issue 4](https://www.ncameron.org/blog/these-weeks-in-dev-tools-issue-4/).
|
|
* [podcast] [New Rustacean: Rust 1.26](https://newrustacean.com/show_notes/e023/). impl trait, match on references, Results from main, and more. A good way to mark three years since Rust 1.0!
|
|
|
|
# Crate of the Week
|
|
|
|
This week's crate is [Askama](https://crates.io/crates/askama), a Jinja-like type-safe compiled templating engine. Thanks to [Icefoxen](https://users.rust-lang.org/u/Icefoxen) 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.
|
|
|
|
* [rustc-guide](https://github.com/rust-lang-nursery/rustc-guide) is a project to write a short guide about how the rust compiler works, and it needs your help. There are some [easier issues](https://github.com/rust-lang-nursery/rustc-guide/issues?q=is%3Aissue+is%3Aopen+label%3AEasy), [issues which might require a bit of investigation/code reading](https://github.com/rust-lang-nursery/rustc-guide/issues?q=is%3Aissue+is%3Aopen+label%3AMedium), and [issues which probably require some advanced knowledge or a lot of time](https://github.com/rust-lang-nursery/rustc-guide/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3AHard).
|
|
* [easy] [gfx-rs: Set buffers mutability qualifiers on Metal compute pipelines](https://github.com/gfx-rs/gfx/issues/1999). gfx-rs is a high-performance, bindless graphics API for Rust.
|
|
* [easy] [gfx-rs: Set threadGroupSizeIsMultipleOfThreadExecutionWidth on Metal compute pipelines](https://github.com/gfx-rs/gfx/issues/1998).
|
|
* [easy] [gfx-rs: Use set_bytes for short temporary data in Metal internal shaders](https://github.com/gfx-rs/gfx/issues/1997).
|
|
* [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
|
|
|
|
153 pull requests were [merged in the last week][merged]
|
|
|
|
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2018-05-07..2018-05-14
|
|
|
|
* [set PrepareForThinLTO flag when using ThinLTO](https://github.com/rust-lang/rust/pull/50684)
|
|
* [typeck: fix ICE with struct update syntax](https://github.com/rust-lang/rust/pull/50643)
|
|
* [typeck: save the index of private fields](https://github.com/rust-lang/rust/pull/50693)
|
|
* [use `SmallVec` for `DepNodeIndex` within `dep_graph`](https://github.com/rust-lang/rust/pull/50565)
|
|
* [inline `Span` methods](https://github.com/rust-lang/rust/pull/50564)
|
|
* [don't use Lock for heavily accessed `CrateMetadata::cnum_map`](https://github.com/rust-lang/rust/pull/50532)
|
|
* [do not silently truncate offsets for `read_at`/`write_at` on emscripten](https://github.com/rust-lang/rust/pull/50634)
|
|
* [fix `panic` for binaries built during tests](https://github.com/rust-lang/cargo/pull/5513)
|
|
* [fix volatile_store and nontemporal_store](https://github.com/rust-lang/rust/pull/50648)
|
|
* [rustc: leave space for fields of uninhabited types to allow partial initialization](https://github.com/rust-lang/rust/pull/50622)
|
|
* [rustc: don't trip an assertion for enums with present but uninhabited variants](https://github.com/rust-lang/rust/pull/50735)
|
|
* [rustc: allow an edition's feature on that edition](https://github.com/rust-lang/rust/pull/50663)
|
|
* [rustc: include semicolon when removing `extern crate`](https://github.com/rust-lang/rust/pull/50670)
|
|
* [improve single-use and zero-use lifetime lints](https://github.com/rust-lang/rust/pull/50440)
|
|
* [prevent infinite recursion of modules](https://github.com/rust-lang/rust/pull/50305)
|
|
* [fix self referential impl Trait substitutions](https://github.com/rust-lang/rust/pull/50694)
|
|
* [macros: Add a 'literal' fragment specifier](https://github.com/rust-lang/rust/pull/49835)
|
|
* [rename Pin to PinMut, and some more breaking changes](https://github.com/rust-lang/rust/pull/50497)
|
|
* [stabilize macro_lifetime_matcher](https://github.com/rust-lang/rust/pull/50385)
|
|
* [don't allocate when creating an empty BTree](https://github.com/rust-lang/rust/pull/50352)
|
|
* [only lookup types in one interner](https://github.com/rust-lang/rust/pull/50332)
|
|
* [idiom lints for removing `extern crate`](https://github.com/rust-lang/rust/pull/50260)
|
|
* [added missing implementation hint](https://github.com/rust-lang/rust/pull/50161)
|
|
* [make `String::new()` const](https://github.com/rust-lang/rust/pull/50460)
|
|
* [turn `ManuallyDrop::new` into a constant function](https://github.com/rust-lang/rust/pull/50148)
|
|
* [std: avoid `ptr::copy` if unnecessary in `vec::Drain`](https://github.com/rust-lang/rust/pull/50575)
|
|
* [add fn `into_inner(self) -> (Idx, Idx)` to RangeInclusive](https://github.com/rust-lang/rust/pull/50574)
|
|
* [./x.py test should be able to run individual tests](https://github.com/rust-lang/rust/pull/49729)
|
|
|
|
## New Contributors
|
|
|
|
* Aaron DeVore
|
|
* C Jones
|
|
* Collins Abitekaniza
|
|
* Isaac Whitfield
|
|
* Katrin Leinweber
|
|
* Martin Husemann
|
|
* Roman Stoliar
|
|
* Sebastian Köln
|
|
* Tim Allen
|
|
* Tomas Gavenciak
|
|
|
|
## 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:
|
|
|
|
* [RFC 2394: Async/await notation for ergonomic asynchronous IO](https://github.com/rust-lang/rfcs/pull/2394).
|
|
* [RFC 2420: Unreserve `proc`](https://github.com/rust-lang/rfcs/pull/2420).
|
|
|
|
## 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. [This week's FCPs][fcp] are:
|
|
|
|
[fcp]: https://github.com/rust-lang/rfcs/labels/final-comment-period
|
|
|
|
* [disposition: close] [The ConstDefault trait](https://github.com/rust-lang/rfcs/pull/2204).
|
|
|
|
## New RFCs
|
|
|
|
* [Rust style guide](https://github.com/rust-lang/rfcs/pull/2436).
|
|
* [Rustfmt stability](https://github.com/rust-lang/rfcs/pull/2437).
|
|
* [Simple postfix macros](https://github.com/rust-lang/rfcs/pull/2442).
|
|
* [Reserve `throw` and `fail` as keywords in edition 2018](https://github.com/rust-lang/rfcs/pull/2441).
|
|
* [DerefMove](https://github.com/rust-lang/rfcs/pull/2439). Add a new `DerefMove` trait that allows consuming a smart pointer to move its contents, as in `let x = *p`;
|
|
* [Deny the `overflowing_literals` lint for the 2018 edition](https://github.com/rust-lang/rfcs/pull/2438).
|
|
|
|
# Upcoming Events
|
|
|
|
The community team is trying to improve outreach to meetup organisers. Please fill out their [call for contact info](https://docs.google.com/forms/d/e/1FAIpQLSf52YXGhqBaHtCXtVna4iHYMK7IQaTqUW6V-ztsZC8C2TBInQ/viewform) if you are running or used to run a meetup.
|
|
|
|
* [May 19. Chennai, IN - Rust Monthly Meetup - May](https://www.meetup.com/mad-rs/events/250714467/).
|
|
* [May 20. Mountain View, US - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxhbbc/).
|
|
* [May 22. Paris, FR - Rust Paris meetup #42](https://www.meetup.com/Rust-Paris/events/250587163/).
|
|
* [May 22. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org](irc://irc.mozilla.org/rust-content).
|
|
* [May 23. Rust Community Team Meeting at #rust-community on irc.mozilla.org](irc://irc.mozilla.org/rust-community).
|
|
* [May 23. Rust Events Team Meeting](https://t.me/joinchat/EkKINhHCgZ9llzvPidOssA).
|
|
* [May 23. Durham, US - Triangle Rustaceans - Async Programming With Tokio](https://www.meetup.com/triangle-rustaceans/events/kkjnpnyxhblc/).
|
|
* **[May 27. Paris, FR - RustFest Paris 2018](https://paris.rustfest.eu/)**.
|
|
* [May 27. Mountain View, US - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxhbkc/).
|
|
* [May 29. Dallas, US - Last Tuesday Meetup](https://www.meetup.com/Dallas-Rust/events/zfgwzmyxhbmc/).
|
|
* [May 30/31. Berlin, DE - Rust/WASM course around JSConf.EU](https://ti.to/asquera-event-ug/rust-wasm-wwwtf-2018/).
|
|
* [May 30. Berlin, DE - Berlin Mozilla Meetup - Rust Hack and Learn](https://www.meetup.com/Berlin-Mozilla-Meetup/events/tvmmslyxhbnc/).
|
|
* [May 30. Rust Community Team Meeting at #rust-community on irc.mozilla.org](irc://irc.mozilla.org/rust-community).
|
|
* [May 30. Vancouver, CA - Rust Study/Hack/Hang-out night](https://www.meetup.com/Vancouver-Rust/events/ckwdlpyxhbnc/).
|
|
|
|
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
|
|
|
|
*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
|
|
|
|
*No quote was selected for QotW.*
|
|
|
|
[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).*
|