179 lines
12 KiB
Markdown
179 lines
12 KiB
Markdown
Title: This Week in Rust 221
|
||
Number: 221
|
||
Date: 2018-02-13
|
||
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
|
||
|
||
* 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.
|
||
* [Closing out an incredible week in Rust](https://aturon.github.io/2018/02/09/amazing-week/).
|
||
* [Maximally minimal specialization: always applicable impls](http://smallcultfollowing.com/babysteps/blog/2018/02/09/maximally-minimal-specialization-always-applicable-impls/).
|
||
* [Announcing the 2018 domain Working Groups](https://internals.rust-lang.org/t/announcing-the-2018-domain-working-groups/6737).
|
||
* [Async/await IV: An even better proposal](https://boats.gitlab.io/blog/post/2018-02-07-async-iv-an-even-better-proposal/).
|
||
* [Async/await V: Getting back to the futures](https://boats.gitlab.io/blog/post/2018-02-08-async-v-getting-back-to-the-futures/).
|
||
* [How Rust is Tilde’s competitive advantage](https://www.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf).
|
||
* [Guitar effects in Rust](http://rickyhan.com/jekyll/update/2018/02/06/rust-guitar-pedal-effects-dsp.html).
|
||
* [Rust embedded: Memory safe DMA transfers](http://blog.japaric.io/safe-dma/).
|
||
* [ripgrep 0.8.0 released: Configuration files, compressed file search, and true colors](https://github.com/BurntSushi/ripgrep/releases/tag/0.8.0).
|
||
* [Tokio reform and the road to 0.2](https://tokio.rs/blog/2018-02-tokio-reform-shipped/).
|
||
* [Introducing a wee allocator for WebAssembly](http://fitzgeraldnick.com/2018/02/09/wee-alloc.html).
|
||
* [RLSL (Rust -> SPIR-V compiler) progress report](https://maikklein.github.io/rlsl-progress-report/).
|
||
* [This week in Rust docs 92](https://guillaumegomez.github.io/this-week-in-rust-docs/blog/this-week-in-rust-docs-92).
|
||
* [podcast] [Rusty Spike Podcast - episode 18](https://rusty-spike.blubrry.net/2018/02/08/episode-18-feb-7-2018/). Reddit, a whitepaper, an academic paper, FOSDEM (and the lines), and AV1.
|
||
* [podcast] [New Rustacean: Crates you should know: Serde](http://www.newrustacean.com/show_notes/cysk/serde/).
|
||
* [RustFest 2018](https://blog.rustfest.eu/next-stop-paris). 26 May - 27 May 2018 in Paris.
|
||
|
||
# Crate of the Week
|
||
|
||
This week sadly had to go without a crate for lack of votes.
|
||
|
||
[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.
|
||
|
||
* [Get started with these beginner-friendly issues](https://www.rustaceans.org/findwork/starters).
|
||
* [github-rs: Pure Rust bindings to the Github API](https://github.com/mgattozzi/github-rs/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22) needs help with some beginner-friendly issues.
|
||
* [gutenberg: Make content::Section hold references](https://github.com/Keats/gutenberg/issues/205). Gutenberg is an opinionated static site generator with everything built-in.
|
||
|
||
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
|
||
|
||
117 pull requests were [merged in the last week][merged]
|
||
|
||
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2017-02-05..2018-02-12
|
||
|
||
* epochs: [rustc](https://github.com/rust-lang/rust/pull/48014) and [cargo](https://github.com/rust-lang/cargo/pull/5011) (RFC [#2052](https://rust-lang.github.io/rfcs/2052-epochs.html))
|
||
* [rustc: upgrade to LLVM 6](https://github.com/rust-lang/rust/pull/47828)
|
||
* [customizable extended tools](https://github.com/rust-lang/rust/pull/48015)
|
||
* [fix ICE for mismatched args on target without span](https://github.com/rust-lang/rust/pull/48047)
|
||
* [proc_macro: don't panic parsing `..=`](https://github.com/rust-lang/rust/pull/48036)
|
||
* [implement `?` macro repetition](https://github.com/rust-lang/rust/pull/47752)
|
||
* [warn about more ignored bounds in type aliases](https://github.com/rust-lang/rust/pull/48020)
|
||
* [do not ignore lifetime bounds in Copy impls](https://github.com/rust-lang/rust/pull/47877)
|
||
* [add filtering options to `rustc_on_unimplemented`](https://github.com/rust-lang/rust/pull/47613)
|
||
* [rustc: Add `#[rustc_args_required_const]`](https://github.com/rust-lang/rust/pull/48018)
|
||
* [rustc_mir: insert a dummy access to places being matched on, when building MIR](https://github.com/rust-lang/rust/pull/48092)
|
||
* [emit data::Impl in save-analysis](https://github.com/rust-lang/rust/pull/47657)
|
||
* [ui tests: diff from old (expected) to new (actual) instead of backwards](https://github.com/rust-lang/rust/pull/47978)
|
||
* [NLL: improve `DefiningTy::Const`](https://github.com/rust-lang/rust/pull/47957)
|
||
* [NLL: add false edges out of infinite loops](https://github.com/rust-lang/rust/pull/47802)
|
||
* [stabilize `use_nested_groups`](https://github.com/rust-lang/rust/pull/47948)
|
||
* [implement `TrustedLen` for `Take<Repeat>` and `Take<RangeFrom>`](https://github.com/rust-lang/rust/pull/47944)
|
||
* [override `try_(r)fold` for RangeInclusive](https://github.com/rust-lang/rust/pull/48012)
|
||
* [add some APIs to ptr::NonNull](https://github.com/rust-lang/rust/pull/47631)
|
||
* [add `-Zteach` documentation](https://github.com/rust-lang/rust/pull/47843)
|
||
* [update book](https://github.com/rust-lang/rust/pull/47753)
|
||
* [fix rustdoc ICE on macros defined within functions](https://github.com/rust-lang/rust/pull/47959)
|
||
* [make resolution backtracking smarter](https://github.com/rust-lang/cargo/pull/4834)
|
||
* [do not rename packages on `cargo new`](https://github.com/rust-lang/cargo/pull/5013)
|
||
|
||
## New Contributors
|
||
|
||
* bobtwinkles
|
||
* Martin Algesten
|
||
* Peter Hrvola
|
||
* Yury Delendik
|
||
|
||
## 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 1909: Unsized rvalues](https://github.com/rust-lang/rfcs/pull/1909).
|
||
* [RFC 2145: Type privacy and private-in-public lints](https://github.com/rust-lang/rfcs/pull/2145).
|
||
* [RFC 2116: Fallible collection allocation 1.0](https://github.com/rust-lang/rfcs/pull/2116).
|
||
|
||
## 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: merge] [Issues are not feature requests](https://github.com/rust-lang/rfcs/pull/2299).
|
||
* [disposition: merge] [Allow trivial constraints to appear in where clauses](https://github.com/rust-lang/rfcs/pull/2056).
|
||
* [disposition: merge] [impl-only-use](https://github.com/rust-lang/rfcs/pull/2166). The `use …::{… as …}` syntax can now accept `_` as alias to a trait to only import the implementations of such a trait.
|
||
* [disposition: merge] [or-patterns in if / while let expressions](https://github.com/rust-lang/rfcs/pull/2175).
|
||
* [disposition: merge] [Formally define repr(u32, i8, etc...) and repr(C) on enums with payloads](https://github.com/rust-lang/rfcs/pull/2195).
|
||
* [disposition: merge] [Finalize syntax of `impl Trait` and `dyn Trait` with multiple bounds](https://github.com/rust-lang/rfcs/pull/2250).
|
||
* [disposition: merge] [`?` repetition in macro rules](https://github.com/rust-lang/rfcs/pull/2298).
|
||
* [disposition: postpone] [Allow fields in traits that map to lvalues in impl'ing type](https://github.com/rust-lang/rfcs/pull/1546).
|
||
* [disposition: postpone] [Fix the handling of uninhabited types in pattern matching](https://github.com/rust-lang/rfcs/pull/1872).
|
||
* [disposition: postpone] [Unions 1.2](https://github.com/rust-lang/rfcs/pull/1897).
|
||
* [disposition: postpone] [Allow destructuring of structs that implement Drop](https://github.com/rust-lang/rfcs/pull/2061).
|
||
* [disposition: postpone] [Adding unsafe modules and unsafe blocks outside functions](https://github.com/rust-lang/rfcs/pull/2148).
|
||
* [disposition: close] [Guard Clause Flow Typing](https://github.com/rust-lang/rfcs/pull/2221).
|
||
* [disposition: close] [Legal double reference](https://github.com/rust-lang/rfcs/pull/2268).
|
||
* [disposition: close] [Add match/in statements](https://github.com/rust-lang/rfcs/pull/2144).
|
||
|
||
## New RFCs
|
||
|
||
* [Stable SIMD in Rust](https://github.com/rust-lang/rfcs/pull/2325).
|
||
* [Officially adopt Ferris as the mascot for the current epoch](https://github.com/rust-lang/rfcs/pull/2328).
|
||
* [Prior art](https://github.com/rust-lang/rfcs/pull/2333). A section to the RFC template where RFC authors may discuss the experience of other programming languages.
|
||
* [Amend RFC 0141 Lifetime elision: Mention deduplicated lifetimes](https://github.com/rust-lang/rfcs/pull/2330).
|
||
|
||
# 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.
|
||
|
||
* [Feb 15. Cambridge, UK - Rust Meetup](https://www.meetup.com/Cambridge-Rust-Meetup/events/mgtcwnyxdbtb/).
|
||
* [Feb 17. Chennai, India - Monthly Meetup - February](https://www.meetup.com/mad-rs/events/247446699/).
|
||
* [Feb 18. Rust Dev in Mountain View - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxdbxb/).
|
||
* [Feb 21. Vilnius, Lithuania - Rust Meetup #2](https://www.meetup.com/Rust-in-Vilnius/events/244401223/).
|
||
* [Feb 21. Rust Community Team Meeting at #rust-community on irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-community).
|
||
* [Feb 21. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-docs).
|
||
* [Feb 22. Rust release triage](https://internals.rust-lang.org/t/release-cycle-triage-proposal/3544).
|
||
* [Feb 22. Rust London User Group - LDN Talks: February 2018](https://www.meetup.com/Rust-London-User-Group/events/246860921/).
|
||
* [Feb 22. Minneapolis, US - February 2018 Meetup](https://www.meetup.com/RustMN/events/247512052/).
|
||
* [Feb 25. Rust Dev in Mountain View - Open Table / Icebreaker: what projects are you working on](https://www.meetup.com/Rust-Dev-in-Mountain-View/events/glnfcpyxdbxb/).
|
||
* [Feb 27. Rust Community Content Subteam Meeting at #rust-content on irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-content)
|
||
* [Feb 28. Rust Community Team Meeting at #rust-community on irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-community).
|
||
* [Feb 28. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-docs).
|
||
* [Feb 28. Rust Events Team Meeting](https://t.me/joinchat/EkKINhHCgZ9llzvPidOssA).
|
||
|
||
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).*
|