|
| 1 | +Title: This Week in Rust 423 |
| 2 | +Number: 423 |
| 3 | +Date: 2021-12-29 |
| 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 programming language empowering everyone to build reliable and efficient software. |
| 8 | +This is a weekly summary of its progress and community. |
| 9 | +Want something mentioned? Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) or [send us a pull request](https://github.com/rust-lang/this-week-in-rust). |
| 10 | +Want to get involved? [We love contributions](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md). |
| 11 | + |
| 12 | +*This Week in Rust* is openly developed [on GitHub](https://github.com/rust-lang/this-week-in-rust). |
| 13 | +If you find any errors in this week's issue, [please submit a PR](https://github.com/rust-lang/this-week-in-rust/pulls). |
| 14 | + |
| 15 | +## Updates from Rust Community |
| 16 | + |
| 17 | +### Official |
| 18 | + |
| 19 | +### Foundation |
| 20 | + |
| 21 | +### Project/Tooling Updates |
| 22 | + |
| 23 | +### Observations/Thoughts |
| 24 | + |
| 25 | +### Rust Walkthroughs |
| 26 | + |
| 27 | +### Miscellaneous |
| 28 | + |
| 29 | +## Crate of the Week |
| 30 | + |
| 31 | +This week's crate is [kajiya](https://github.com/EmbarkStudios/kajiya), an experimental real-time global illumination renderer made with Rust and Vulkan. |
| 32 | + |
| 33 | +llogiq is pretty pleased with himself for this suggestion. |
| 34 | + |
| 35 | +[Please submit your suggestions and votes for next week][submit_crate]! |
| 36 | + |
| 37 | +[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704 |
| 38 | + |
| 39 | +## Call for Participation |
| 40 | + |
| 41 | +Always wanted to contribute to open-source projects but didn't know where to start? |
| 42 | +Every week we highlight some tasks from the Rust community for you to pick and get started! |
| 43 | + |
| 44 | +Some of these tasks may also have mentors available, visit the task page for more information. |
| 45 | + |
| 46 | +If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines]. |
| 47 | + |
| 48 | +[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821 |
| 49 | + |
| 50 | +## Updates from the Rust Project |
| 51 | + |
| 52 | +340 pull requests were [merged in the last week][merged] |
| 53 | + |
| 54 | +[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-12-13..2021-12-20 |
| 55 | + |
| 56 | +* [add user seed to `-Z randomize-layout`](https://github.com/rust-lang/rust/pull/91932) |
| 57 | +* [improve suggestion to change struct field to `&mut`](https://github.com/rust-lang/rust/pull/91516) |
| 58 | +* [suggest to specify a target triple when lang item is missing](https://github.com/rust-lang/rust/pull/91820) |
| 59 | +* [tweak errors coming from `for`-loop, `?` and `.await` desugaring](https://github.com/rust-lang/rust/pull/90939) |
| 60 | +* [show the unused type for `unused_results` lint](https://github.com/rust-lang/rust/pull/91818) |
| 61 | +* [recover on invalid operators `<>` and `<=>`](https://github.com/rust-lang/rust/pull/91597) |
| 62 | +* [perf: manually implement `Hash` for `DefId`](https://github.com/rust-lang/rust/pull/91660) |
| 63 | +* [enable `#[thread_local]` for all windows-msvc targets](https://github.com/rust-lang/rust/pull/92042) |
| 64 | +* [add entry_ref API to HashMap](https://github.com/rust-lang/hashbrown/pull/301) |
| 65 | +* [add `[T]::as_simd`(`_mut`)](https://github.com/rust-lang/rust/pull/91479) |
| 66 | +* [add `BinaryHeap::try_reserve` and `BinaryHeap::try_reserve_exact`](https://github.com/rust-lang/rust/pull/91529) |
| 67 | +* [add `io::Error::other`](https://github.com/rust-lang/rust/pull/91947) |
| 68 | +* [avoid sorting in hash map stable hashing](https://github.com/rust-lang/rust/pull/91837) |
| 69 | +* [constify (most) `Option` methods](https://github.com/rust-lang/rust/pull/91928) |
| 70 | +* [constify `bool::then`{,`_some`}](https://github.com/rust-lang/rust/pull/91918) |
| 71 | +* [make `MaybeUninit::zeroed` `const`](https://github.com/rust-lang/rust/pull/91851) |
| 72 | +* [mark defaulted `PartialEq`/`PartialOrd` methods as const](https://github.com/rust-lang/rust/pull/91439) |
| 73 | +* [optimize `vec::retain` performance](https://github.com/rust-lang/rust/pull/91527) |
| 74 | +* [readd `track_caller` to `Result::from_residual`](https://github.com/rust-lang/rust/pull/91752) |
| 75 | +* [stabilize `destructuring_assignment`](https://github.com/rust-lang/rust/pull/90521) |
| 76 | +* [stabilize `iter::zip`](https://github.com/rust-lang/rust/pull/91881) |
| 77 | +* [stabilize `asm!` and `global_asm!`](https://github.com/rust-lang/rust/pull/91728) |
| 78 | +* [remove `P: Unpin` bound on `impl Stream for Pin`](https://github.com/rust-lang/rust/pull/92020) |
| 79 | +* [futures: add `StreamExt::count` method](https://github.com/rust-lang/futures-rs/pull/2495) |
| 80 | +* [futures: limit `FuturesUnordered` max value of `yield_every`](https://github.com/rust-lang/futures-rs/pull/2527) |
| 81 | +* [cargo: detect filesystem loop during walking the projects](https://github.com/rust-lang/cargo/pull/10188) |
| 82 | +* [cargo: display alias target on 'cargo help <alias>`](https://github.com/rust-lang/cargo/pull/10193) |
| 83 | +* [rustdoc: fix source code page sidebar on mobile](https://github.com/rust-lang/rust/pull/91905) |
| 84 | +* [clippy: add `unnecessary_to_owned` lint](https://github.com/rust-lang/rust-clippy/pull/7978) |
| 85 | +* [clippy: don't emit `return_self_not_must_use` lint if `Self` already is marked as `#[must_use]`](https://github.com/rust-lang/rust-clippy/pull/8146) |
| 86 | +* [clippy: ensure that `return_self_not_must_use` is not emitted if the method already has `#[must_use]`](https://github.com/rust-lang/rust-clippy/pull/8143) |
| 87 | +* [clippy: fix `SAFETY` comment tag casing in `undocumented_unsafe_blocks`](https://github.com/rust-lang/rust-clippy/pull/8138) |
| 88 | +* [rustfmt: prevent duplicate comma when formatting struct pattern with ".."](https://github.com/rust-lang/rustfmt/pull/5090) |
| 89 | + |
| 90 | +### Rust Compiler Performance Triage |
| 91 | + |
| 92 | +Unfortunately a change introduced in [rust-lang/rust#89836](https://github.com/rust-lang/rust/pull/89836) has made performance across different compiler artifacts much more variable by embedding compiler version information (including a git commit hash) in demangled symbol names. This means that even if two compiler artifacts are built from the same exact source code (with only the git commit changed), the compiler will have slightly different performance characteristics. This makes comparisons across pull requests virtually impossible. |
| 93 | + |
| 94 | +The compiler team is still deciding what to do to handle this, but in the mean time, performance testing is largely broken. This issue is currently being tracked in[rust-lang/rustc-perf#1126](https://github.com/rust-lang/rustc-perf/issues/1126). |
| 95 | + |
| 96 | +Triage done by **@rylev**. |
| 97 | +Revision range: [404c847..3d57c61](https://perf.rust-lang.org/?start=404c8471aba60c2d837fa728e7c729a0f52d5830&end=3d57c61a9e04dcd3df633f41142009d6dcad4399&absolute=false&stat=instructions%3Au) |
| 98 | + |
| 99 | +2 Regressions, 2 Improvements, 23 Mixed; 9 of them in rollups |
| 100 | +38 comparisons made in total |
| 101 | + |
| 102 | +[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-12-21.md) |
| 103 | + |
| 104 | +### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master) |
| 105 | + |
| 106 | +Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These |
| 107 | +are the RFCs that were approved for implementation this week: |
| 108 | + |
| 109 | +* [Thread local Cell methods.](https://github.com/rust-lang/rfcs/pull/3184) |
| 110 | + |
| 111 | +### Final Comment Period |
| 112 | + |
| 113 | +Every week [the team](https://www.rust-lang.org/team.html) announces the |
| 114 | +'final comment period' for RFCs and key PRs which are reaching a |
| 115 | +decision. Express your opinions now. |
| 116 | + |
| 117 | +#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) |
| 118 | + |
| 119 | +* *No new RFCs entered Final Comment Period this week.* |
| 120 | + |
| 121 | +#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc) |
| 122 | + |
| 123 | +* [disposition: merge] [Add UnwindSafe to Once](https://github.com/rust-lang/rust/pull/90625) |
| 124 | +* [disposition: merge] [Allow reverse iteration of lowercase'd/uppercase'd chars](https://github.com/rust-lang/rust/pull/88858) |
| 125 | + |
| 126 | +### [New RFCs](https://github.com/rust-lang/rfcs/pulls) |
| 127 | + |
| 128 | +* *No new RFCs were published this week.* |
| 129 | + |
| 130 | +## Upcoming Events |
| 131 | + |
| 132 | +Rusty Events between 12/22/2021 - 1/15/2022 🦀 |
| 133 | + |
| 134 | +### Online |
| 135 | + |
| 136 | +* [December 23, 2021 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/ttjjqsyccqbfc/) |
| 137 | +* [December 28, 2021 | Dallas, TX, US | **Dallas Rust - Last Tuesday** | Dallas Rust](https://www.meetup.com/Dallas-Rust/events/jqxqwryccqblc/) |
| 138 | +* [January 5, 2022 | Indianapolis, IN, US | **Indy.rs - with Social Distancing** | Indy Rust](https://www.meetup.com/indyrs/events/qwtdjsydccbhb/) |
| 139 | +* [January 6, 2022 | Nürnberg, DE | **Rust Nürnberg online #8**| Rust Nuremberg](https://www.meetup.com/rust-noris/events/282344613/) |
| 140 | +* [January 8, 2022 | Various cities | **Rust GameDev Monthly Meetup** | Rust GameDev](https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com) |
| 141 | +* [January 11, 2022 | Seattle, WA, US | **Monthly meetup** | Seattle Rust Meetup](https://www.meetup.com/Seattle-Rust-Meetup/events/gskksrydccbpb/) |
| 142 | +* [January 12, 2022 | Boulder, CO, US | **Monthly Meetup** | Boulder Elixir and Rust](https://www.meetup.com/boulder-elixir-rust/events/zvxcsrydccbqb/) |
| 143 | +* [January 12, 2022 | Los Angeles, CA, US | **Live Coding Session - Mob Programming a Rust Code Kata [Virtual] Jan. 2022** | Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/282580016/) |
| 144 | +* [January 12, 2022 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/gjrtqsydccbqb/) |
| 145 | + |
| 146 | + |
| 147 | +### North America |
| 148 | +* [January 6, 2022 | Austin, TX, US | **Rust Lunch** | Rust ATX](https://www.meetup.com/rust-atx/events/282756864/) |
| 149 | +* [January 12, 2022 | Atlanta, GA, US | **Grab a beer with fellow Rustaceans** | Rust Atlanta](https://www.meetup.com/Rust-ATL/events/lhpkmsydccbqb/) |
| 150 | +* [January 13, 2022 | Columbus, OH, US | **Monthly Meeting** | Columbus Rust Society](https://www.meetup.com/columbus-rs/events/dpkhgrydccbrb/) |
| 151 | + |
| 152 | + |
| 153 | +If you are running a Rust event please add it to the [calendar] to get |
| 154 | +it mentioned here. Please remember to add a link to the event too. |
| 155 | +Email the [Rust Community Team][community] for access. |
| 156 | + |
| 157 | +[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com |
| 158 | +[community]: mailto:[email protected] |
| 159 | + |
| 160 | +# Rust Jobs |
| 161 | + |
| 162 | +*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!* |
| 163 | + |
| 164 | +# Quote of the Week |
| 165 | + |
| 166 | +> Important crab-related diagnostics improvement shipping in nightly |
| 167 | +> [@rustlang](https://twitter.com/rustlang) |
| 168 | +> |
| 169 | +> ``` |
| 170 | +> error: Ferris cannot be used as an identifier |
| 171 | +> --> src/main.rs:2:9 |
| 172 | +> | |
| 173 | +> 2 | let 🦀 = 123; |
| 174 | +> | ^^ help: try using their name instead: `ferris` |
| 175 | +> 3 | |
| 176 | +> 4 | for i in 0..🦀 { |
| 177 | +> | |
| 178 | +> ``` |
| 179 | +
|
| 180 | +– [Mara Bos on twitter](https://twitter.com/m_ou_se/status/1471077145258647554) |
| 181 | +
|
| 182 | +Thanks to [Julian Wollersberger](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1147) for the suggestion! |
| 183 | +
|
| 184 | +[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328) |
| 185 | +
|
| 186 | +*This Week in Rust is edited by: [nellshamrell](https://github.com/nellshamrell), [llogiq](https://github.com/llogiq), [cdmistman](https://github.com/cdmistman), [ericseppanen](https://github.com/ericseppanen), [extrawurst](https://github.com/extrawurst), [andrewpollack](https://github.com/andrewpollack), [U007D](https://github.com/U007D), [kolharsam](https://github.com/kolharsam), [joelmarcey](https://github.com/joelmarcey), [mariannegoldin](https://github.com/mariannegoldin).* |
| 187 | +
|
| 188 | +*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)* |
| 189 | +
|
| 190 | +<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/k5nsab/this_week_in_rust_367/)</small> |
0 commit comments