|
| 1 | +Title: This Week in Rust 429 |
| 2 | +Number: 429 |
| 3 | +Date: 2022-02-09 |
| 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 | +### Newsletters |
| 24 | + |
| 25 | +### Research |
| 26 | + |
| 27 | +### Observations/Thoughts |
| 28 | + |
| 29 | +### Rust Walkthroughs |
| 30 | + |
| 31 | +### Miscellaneous |
| 32 | + |
| 33 | +## Crate of the Week |
| 34 | + |
| 35 | +This week we have two crates: [update-informer](https://github.com/mgrachev/update-informer), a |
| 36 | +library to embed an update check into your CLI project and |
| 37 | +[blake3](https://crates.io/crates/blake3), a fast cryptographic hash function. |
| 38 | + |
| 39 | +Thanks to [Grachev Mikhail](https://users.rust-lang.org/t/crate-of-the-week/2704/1014) and |
| 40 | +[Zac Burns](https://users.rust-lang.org/t/crate-of-the-week/2704/1014) for the suggestions! |
| 41 | + |
| 42 | +[Please submit your suggestions and votes for next week][submit_crate]! |
| 43 | + |
| 44 | +[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704 |
| 45 | + |
| 46 | +## Call for Participation |
| 47 | + |
| 48 | +Always wanted to contribute to open-source projects but didn't know where to start? |
| 49 | +Every week we highlight some tasks from the Rust community for you to pick and get started! |
| 50 | + |
| 51 | +Some of these tasks may also have mentors available, visit the task page for more information. |
| 52 | + |
| 53 | +If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines]. |
| 54 | + |
| 55 | +[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821 |
| 56 | + |
| 57 | +## Updates from the Rust Project |
| 58 | + |
| 59 | +327 pull requests were [merged in the last week][merged] |
| 60 | + |
| 61 | +[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2022-01-24..2022-01-31 |
| 62 | + |
| 63 | +* [LLVM: cherry-pick different fix for AArch64 truncating FP stores](https://github.com/rust-lang/llvm-project/pull/128) |
| 64 | +* [allow eliding GATs in expression position](https://github.com/rust-lang/rust/pull/92918) |
| 65 | +* [fix debuginfo for pointers/references to unsized types](https://github.com/rust-lang/rust/pull/93006) |
| 66 | +* [add note suggesting that predicate may be satisfied, but is not `const`](https://github.com/rust-lang/rust/pull/93358) |
| 67 | +* [ignore unwinding edges when checking for unconditional recursion](https://github.com/rust-lang/rust/pull/92889) |
| 68 | +* [don't suggest inaccessible fields](https://github.com/rust-lang/rust/pull/93039) |
| 69 | +* [implement stable overlap check considering negative traits](https://github.com/rust-lang/rust/pull/93175) |
| 70 | +* [improve selection errors for `~const` trait bounds](https://github.com/rust-lang/rust/pull/92256) |
| 71 | +* [improve suggestion for escaping reserved keywords](https://github.com/rust-lang/rust/pull/93395) |
| 72 | +* [suggest tuple-parentheses for enum variants](https://github.com/rust-lang/rust/pull/90677) |
| 73 | +* [fix the unsoundness in the `early_otherwise_branch` mir opt pass](https://github.com/rust-lang/rust/pull/91840) |
| 74 | +* [store `def_id_to_hir_id` as variant in hir_owner](https://github.com/rust-lang/rust/pull/93373) |
| 75 | +* [store `hir_id_to_def_id` in OwnerInfo](https://github.com/rust-lang/rust/pull/93301) |
| 76 | +* [use `indexmap` to avoid sorting `LocalDefId`s](https://github.com/rust-lang/rust/pull/90842) |
| 77 | +* [codegen\_gcc: correctly import foreign statics](https://github.com/rust-lang/rustc_codegen_gcc/pull/115) |
| 78 | +* [codegen\_gcc: support `-Zfunction-sections`](https://github.com/rust-lang/rustc_codegen_gcc/pull/118) |
| 79 | +* [codegen\_gcc: support 128-bit integers on platforms without native support](https://github.com/rust-lang/rustc_codegen_gcc/pull/103) |
| 80 | +* [codegen\_gcc: support upgrading the alignment of a global variable](https://github.com/rust-lang/rustc_codegen_gcc/pull/121) |
| 81 | +* [accommodate yield points in the `format_args` expansion](https://github.com/rust-lang/rust/pull/93461) |
| 82 | +* [add `Simd::cast`](https://github.com/rust-lang/portable-simd/pull/232) |
| 83 | +* [add `intrinsics::const_deallocate`](https://github.com/rust-lang/rust/pull/92274) |
| 84 | +* [add `os::unix::net::SocketAddr::from_path`](https://github.com/rust-lang/rust/pull/93239) |
| 85 | +* [make `NonNull::new` `const`](https://github.com/rust-lang/rust/pull/93236) |
| 86 | +* [make `char::DecodeUtf16::size_hist` more precise](https://github.com/rust-lang/rust/pull/93347) |
| 87 | +* [improve `Duration::try_from_secs_f32`/`64` accuracy by directly processing exponent and mantissa](https://github.com/rust-lang/rust/pull/90247) |
| 88 | +* [cargo: add bash completion for `cargo clippy`](https://github.com/rust-lang/cargo/pull/10347) |
| 89 | +* [cargo: do not ignore `--features` when `--all-features` is present](https://github.com/rust-lang/cargo/pull/10337) |
| 90 | +* [clippy: add `default_union_representation` lint](https://github.com/rust-lang/rust-clippy/pull/8289) |
| 91 | +* [clippy: don't lint `ptr_arg` for `&mut _` types in trait items](https://github.com/rust-lang/rust-clippy/pull/8369) |
| 92 | +* [clippy: fix underflow in `manual_split_once` lint](https://github.com/rust-lang/rust-clippy/pull/8250) |
| 93 | +* [clippy: fix bad suggestion on `numeric_literal`](https://github.com/rust-lang/rust-clippy/pull/8350) |
| 94 | +* [clippy: `single_match`: don't lint non-exhaustive matches; support tuples](https://github.com/rust-lang/rust-clippy/pull/8322) |
| 95 | + |
| 96 | +### Rust Compiler Performance Triage |
| 97 | + |
| 98 | +This was a relatively quiet week with regressions and improvements relatively equally each other out. The big exception is with a somewhat large regression in rustdoc which was needed for a large and important architectural change. This could lead to users see somewhat slower doc build times with more memory used especially in projects with large crate dependency graphs. |
| 99 | + |
| 100 | +Triage done by **@rylev**. |
| 101 | +Revision range: [c54dfee..1ea4851](https://perf.rust-lang.org/?start=c54dfee65126a0ac385d55389a316e89095a0713&end=1ea4851715893ee3f365a8ef09d47165e9a7864f&absolute=false&stat=instructions%3Au) |
| 102 | + |
| 103 | +2 Regressions, 4 Improvements, 2 Mixed; 1 of them in rollups |
| 104 | +35 comparisons made in total |
| 105 | + |
| 106 | +[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2022-02-02.md) |
| 107 | + |
| 108 | +### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master) |
| 109 | + |
| 110 | +Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These |
| 111 | +are the RFCs that were approved for implementation this week: |
| 112 | + |
| 113 | +* *No RFCs were approved this week.* |
| 114 | + |
| 115 | +### Final Comment Period |
| 116 | + |
| 117 | +Every week [the team](https://www.rust-lang.org/team.html) announces the |
| 118 | +'final comment period' for RFCs and key PRs which are reaching a |
| 119 | +decision. Express your opinions now. |
| 120 | + |
| 121 | +#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) |
| 122 | + |
| 123 | +* *No RFCs entered final comment period this week.* |
| 124 | + |
| 125 | +#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc) |
| 126 | + |
| 127 | +* [disposition: merge] [Rename `FilenameTooLong` to `FilenameInvalid` and also use it for Windows' `ERROR_INVALID_NAME`](https://github.com/rust-lang/rust/pull/90955) |
| 128 | +* [disposition: merge] [Add `From<u8>` for `ExitCode`](https://github.com/rust-lang/rust/pull/93445) |
| 129 | +* [disposition: merge] [Stabilise std::is_aarch64_feature_detected](https://github.com/rust-lang/rust/issues/86941) |
| 130 | +* [disposition: merge] [Impl {Add,Sub,Mul,Div,Rem,BitXor,BitOr,BitAnd}Assign<$t> for Wrapping<$t> for rust 1.61.0](https://github.com/rust-lang/rust/pull/93208) |
| 131 | +* [disposition: merge] [Tracking Issue for `int_abs_diff`](https://github.com/rust-lang/rust/issues/89492) |
| 132 | +* [disposition: merge] [Tracking Issue for total_cmp (on f32/f64)](https://github.com/rust-lang/rust/issues/72599) |
| 133 | +* [disposition: close] [Stabilize allow_fail test flag](https://github.com/rust-lang/rust/issues/46488) |
| 134 | + |
| 135 | +### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls) |
| 136 | + |
| 137 | +* [new] [RFC: Custom logo/favicon command-line flags](https://github.com/rust-lang/rfcs/pull/3226) |
| 138 | + |
| 139 | +## Upcoming Events |
| 140 | + |
| 141 | +Rusty Events between 2/2/2022 - 3/2/2022 🦀 |
| 142 | + |
| 143 | +### Online |
| 144 | + |
| 145 | +* [February 3, 2022 | Cardiff, UK | **Rust Book Study Session - Smart Pointers** | Rust and C++ Cardiff](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/283480500/) |
| 146 | +* [February 5 & 6, 2022 | Kyiv, UA | **Write a Game on Rust** | Rust Ukraine](https://dou.ua/calendar/42115/) |
| 147 | +* [February 8, 2022 | Saarbrücken, DE | **Meetup: 17u16** | Rust-Saar](https://www.meetup.com/Rust-Saar/events/283617274) |
| 148 | +* [February 8, 2022 | Seattle, WA, US | **Monthly meetup** | Seattle Rust Meetup](https://www.meetup.com/Seattle-Rust-Meetup/events/283213217/) |
| 149 | +* [February 9, 2022 | Los Angeles, CA, US | **Raphael Tessmer & Celeste, finding craters on a rusty planet** (Virtual) | Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/283232930/) |
| 150 | +* [February 9, 2022 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/282545292) |
| 151 | +* [February 15, 2022 | Indianapolis, IN, US | **Indy.rs - with Social Distancing** | Indy Rust](https://www.meetup.com/indyrs/events/283538948) |
| 152 | +* [February 15, 2022 | Washington, DC, US| **Mid-month Rustful** | Rust DC](https://www.meetup.com/RustDC/events/283351974/) |
| 153 | +* [February 16, 2022 | Vancouver, BC, CA | **Rust Study/Hack/Hang-out Night** | Vancouver Rust](https://www.meetup.com/Vancouver-Rust/events/283260386/) |
| 154 | +* [February 17, 2022 | München, DE | **Rust - beyond "Hello World"**| Agile Softwareentwicklung München](https://www.meetup.com/maibornwolff-software-engineering-netzwerk/events/283379985) |
| 155 | +* [February 17, 2022 | Nürnberg, DE | **Rust Nürnberg online #10**| Rust Nuremberg](https://www.meetup.com/rust-noris/events/283545751/) |
| 156 | +* [February 17, 2022 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/282545308) |
| 157 | +* [February 17, 2022 | Würzburg, DE | **Meet and chat about Rust** | Rust Würzburg Meetup Group](https://www.meetup.com/rust-wurzburg-meetup-group/events/283609518) |
| 158 | +* [February 22, 2022 | Dublin, IE | **Rust Dublin February Meetup** - Rust Dublin](https://www.meetup.com/Rust-Dublin/events/283613610) |
| 159 | +* [February 24, 2022 | Linz, AT | **Rust Meetup Linz - 19th Edition** | Rust Linz](https://www.meetup.com/Rust-Linz/events/283377693/) |
| 160 | + |
| 161 | + |
| 162 | +If you are running a Rust event please add it to the [calendar] to get |
| 163 | +it mentioned here. Please remember to add a link to the event too. |
| 164 | +Email the [Rust Community Team][community] for access. |
| 165 | + |
| 166 | +[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com |
| 167 | +[community]: mailto:[email protected] |
| 168 | + |
| 169 | +# Rust Jobs |
| 170 | + |
| 171 | +*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!* |
| 172 | + |
| 173 | +# Quote of the Week |
| 174 | + |
| 175 | +> * [`impl Not for !`](https://github.com/rust-lang/rust/pull/91122) (did you guess that "not never" is still "never"?) |
| 176 | +
|
| 177 | +– [llogiq on last week's TWiR](https://this-week-in-rust.org/blog/2022/01/26/this-week-in-rust-427) |
| 178 | + |
| 179 | +Thanks to [scottmcm](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1174) for the suggestion! |
| 180 | + |
| 181 | +[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328) |
| 182 | + |
| 183 | +*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).* |
| 184 | + |
| 185 | +*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)* |
| 186 | + |
| 187 | +<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/k5nsab/this_week_in_rust_367/)</small> |
0 commit comments