|
| 1 | +Title: This Week in Rust 418 |
| 2 | +Number: 418 |
| 3 | +Date: 2021-11-18 |
| 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 [starship](https://github.com/starship/starship), a fast featureful customizable UNIX terminal prompt. |
| 32 | + |
| 33 | +Thanks to [matchai](https://users.rust-lang.org/t/crate-of-the-week/2704/984) for the 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 | +273 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-11-08..2021-11-15 |
| 55 | + |
| 56 | +* [proc_macro: add an expand_expr method to TokenStream](https://github.com/rust-lang/rust/pull/87264) (literals only for now) |
| 57 | +* [type inference for inline consts](https://github.com/rust-lang/rust/pull/89561) |
| 58 | +* [add support for specifying multiple clobber_abi in `asm!`](https://github.com/rust-lang/rust/pull/89316) |
| 59 | +* [LLVM: fix nondeterminism in debuginfo generation](https://github.com/rust-lang/llvm-project/pull/118) |
| 60 | +* [don't abort compilation after giving a lint error](https://github.com/rust-lang/rust/pull/87337) |
| 61 | +* [do not emit overlap errors for impls failing the orphan check](https://github.com/rust-lang/rust/pull/89550) |
| 62 | +* [implement diagnostic for `String` conversion](https://github.com/rust-lang/rust/pull/90645) |
| 63 | +* [miri: detect uninitialized integers and floats](https://github.com/rust-lang/rust/pull/88670) |
| 64 | +* [re-enable `copy`(`_nonoverlapping`) debug-checks](https://github.com/rust-lang/rust/pull/90041) |
| 65 | +* [specialize array cloning for `Copy` types](https://github.com/rust-lang/rust/pull/90755) |
| 66 | +* [replace `Copy`/`Clone` compiler magic on arrays with library impls](https://github.com/rust-lang/rust/pull/86041) |
| 67 | +* [optimize `BinaryHeap::extend` from `Vec`](https://github.com/rust-lang/rust/pull/88282) |
| 68 | +* [optimize `Eq` and `Hash` for `Path`/`PathBuf`](https://github.com/rust-lang/rust/pull/90596) |
| 69 | +* [optimize pattern matching](https://github.com/rust-lang/rust/pull/90746) |
| 70 | +* [stabilize `const_raw_ptr_deref` for `*const T`](https://github.com/rust-lang/rust/pull/89551) |
| 71 | +* [stabilize format args capture](https://github.com/rust-lang/rust/pull/90473) |
| 72 | +* [extend the const swap feature](https://github.com/rust-lang/rust/pull/90644) |
| 73 | +* [don't destructure args tuple in `format_args!`](https://github.com/rust-lang/rust/pull/90485) |
| 74 | +* [portable-simd: use new bitmask intrinsics with byte arrays](https://github.com/rust-lang/portable-simd/pull/159) |
| 75 | +* [portable-simd: add `Simd::from_slice`](https://github.com/rust-lang/portable-simd/pull/177) |
| 76 | +* [portable-simd: rotate_{left,right} -> rotate_lanes_{left,right}](https://github.com/rust-lang/portable-simd/pull/181) |
| 77 | +* [clippy: add Clippy version to Clippy's lint list](https://github.com/rust-lang/rust-clippy/pull/7813) |
| 78 | +* [clippy: add minimum supported Rust version to `deprecated_cfg_attr`](https://github.com/rust-lang/rust-clippy/pull/7944) |
| 79 | +* [clippy: fix `explicit_counter_loop` suggestion for non-`usize` types](https://github.com/rust-lang/rust-clippy/pull/7950) |
| 80 | +* [clippy: fix `semicolon_if_nothing_returned` FP on `let-else` stmts](https://github.com/rust-lang/rust-clippy/pull/7955) |
| 81 | +* [clippy: fix suggestion for deref expressions in `redundant_pattern_matching`](https://github.com/rust-lang/rust-clippy/pull/7949) |
| 82 | +* [clippy: lint for bool to integer casts in `cast_lossless`](https://github.com/rust-lang/rust-clippy/pull/7948) |
| 83 | +* [clippy: make `let_underscore_lock` also detect `parking_lot` locks](https://github.com/rust-lang/rust-clippy/pull/7957) |
| 84 | +* [clippy: new lint `index_refutable_slice` to avoid slice indexing](https://github.com/rust-lang/rust-clippy/pull/7643) |
| 85 | +* [clippy: `swap` lints now check if there is `no_std` or `no_core` attribute](https://github.com/rust-lang/rust-clippy/pull/7877) |
| 86 | +* [clippy: `option_if_let_else`: don't expand macros in suggestion](https://github.com/rust-lang/rust-clippy/pull/7974) |
| 87 | +* [rustup: optimization: parse manifest only once](https://github.com/rust-lang/rustup/pull/2898) |
| 88 | + |
| 89 | +### Rust Compiler Performance Triage |
| 90 | + |
| 91 | +A large amount of noise in the comparisons this week, likely due to new |
| 92 | +probabilistic query hash verification increasing likelihood of changes in each |
| 93 | +benchmark; solutions are being tracked in [rustc-perf#1105]. |
| 94 | + |
| 95 | +Otherwise, though, the week largely amounted to a neutral one for performance. |
| 96 | +There were some regressions, particularly in doc builds, as a result of the |
| 97 | +addition of portable SIMD. These are relatively speaking minor and primarily |
| 98 | +impact small crates. |
| 99 | + |
| 100 | +[rustc-perf#1105]: https://github.com/rust-lang/rustc-perf/issues/1105 |
| 101 | + |
| 102 | +Triage done by **@simulacrum**. |
| 103 | +Revision range: [eee8b9c7..934624f](https://perf.rust-lang.org/?start=eee8b9c7bafade55981d155dae71657f1cc55a22&end=934624fe5f66ce3fb8abf0597a6deb079783335f&absolute=false&stat=instructions%3Au) |
| 104 | + |
| 105 | +5 Regressions, 2 Improvements, 6 Mixed; 2 of them in rollups |
| 106 | + |
| 107 | +41 comparisons made in total |
| 108 | + |
| 109 | +[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-11-16.md) |
| 110 | + |
| 111 | +### Approved RFCs |
| 112 | + |
| 113 | +Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These |
| 114 | +are the RFCs that were approved for implementation this week: |
| 115 | + |
| 116 | +* *No RFCs were approved this week.* |
| 117 | + |
| 118 | +### Final Comment Period |
| 119 | + |
| 120 | +Every week [the team](https://www.rust-lang.org/team.html) announces the |
| 121 | +'final comment period' for RFCs and key PRs which are reaching a |
| 122 | +decision. Express your opinions now. |
| 123 | + |
| 124 | +### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) |
| 125 | + |
| 126 | +* [disposition: merge] [Add RFC float-next-up-down.](https://github.com/rust-lang/rfcs/pull/3173) |
| 127 | + |
| 128 | +### [Tracking Issues & PRs](https://github.com/rust-lang/rust/labels/final-comment-period) |
| 129 | + |
| 130 | +* [disposition: merge] [#![feature(maybe_uninit_extra,const_maybe_uninit_write)]](https://github.com/rust-lang/rust/issues/63567) |
| 131 | + |
| 132 | +### [New RFCs](https://github.com/rust-lang/rfcs/pulls) |
| 133 | + |
| 134 | +* [Add std::inputln()](https://github.com/rust-lang/rfcs/pull/3196) |
| 135 | +* [Fix link in RFC 2873](https://github.com/rust-lang/rfcs/pull/3195) |
| 136 | +* [return position impl trait in traits](https://github.com/rust-lang/rfcs/pull/3193) |
| 137 | + |
| 138 | +## Upcoming Events |
| 139 | + |
| 140 | +Rusty Events between 11/17-12/01 🦀 |
| 141 | + |
| 142 | +### Online |
| 143 | + |
| 144 | +* [November 17, 2021, Vancouver, BC, CA - Borrowing and Lifetimes through Metaphors - Vancouver Rust](https://www.meetup.com/Vancouver-Rust/events/zkqvjsyccpbwb/) |
| 145 | +* [November 17, 2021, Houston, TX, US - A Functional Introduction to Rust - Houston Functional Programming User Group](https://www.meetup.com/houston-functional-programming-users-group/events/281526282) |
| 146 | +* [November 17, 2021, Los Angeles, CA, US - Live Coding Session: Mob Programming a Rust Code Kata - Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/281944639) |
| 147 | +* [November 19, 2021, IR - The Second Rust Iran online meetup - Rust Iran Meetup](https://rust-meetup.ir/2021/11/19/second-meetup.html) |
| 148 | +* [November 20, 2021, RustFest Global 2021: Rust In Arts Edition - RustFest](https://rustfest.global/) |
| 149 | +* [November 23, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs](https://berline.rs/) |
| 150 | +* [November 30, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust](https://www.meetup.com/Dallas-Rust/events/jqxqwryccpbnc/) |
| 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 | +> If a normal add is [a waffle iron ](https://en.wikipedia.org/wiki/Waffle_iron), SIMD add is a |
| 167 | +> double or quadruple waffle iron. You can make 2 or 4 or more waffles at the same time. |
| 168 | +> |
| 169 | +> In case of waffles it would be called SIMW: **S** ingle **I** ron, **M** ultiple **W** affles. |
| 170 | +> |
| 171 | +> It's not multithreading - because you open and close the waffle iron for all the waffles at the |
| 172 | +> same time. |
| 173 | +
|
| 174 | +– [/u/EarthyFeet on /r/rust](https://www.reddit.com/r/rust/comments/qucind/stdsimd_is_now_available_on_nightly/hkpy4y4/) |
| 175 | + |
| 176 | +Editors note: Do yourself a favor, click the link and read the whole thread, it's pure gold (*chef's kiss*). |
| 177 | + |
| 178 | +Thanks to [Stephan Sokolow](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1137) for the suggestion! |
| 179 | + |
| 180 | +[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328) |
| 181 | + |
| 182 | +*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), [marriannegoldin](https://github.com/marriannegoldin).* |
| 183 | + |
| 184 | +*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)* |
| 185 | + |
| 186 | +<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/k5nsab/this_week_in_rust_367/)</small> |
0 commit comments