Skip to content

Commit 97ecbf0

Browse files
committed
Merge PR #3239
2 parents 5dc125a + 9594f17 commit 97ecbf0

File tree

1 file changed

+109
-27
lines changed

1 file changed

+109
-27
lines changed

draft/2022-05-11-this-week-in-rust.md

Lines changed: 109 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,26 @@ and just ask the editors to select the category.
4141

4242
### Observations/Thoughts
4343

44+
* [Programming languages are platforms, not products](https://kerkour.com/programming-languages-are-platforms)
4445
* [Introducing Rust in security research](https://tweedegolf.nl/en/blog/71/introducing-rust-in-security-research)
4546

4647
### Rust Walkthroughs
4748

49+
* [Building a crawler in Rust: Crawling a JSON API](https://kerkour.com/rust-crawler-json-api)
4850
* [Rust-raspberrypi-OS-tutorials: Tutorial 17 - Kernel Symbols](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/17_kernel_symbols#readme)
4951
* [Rust-raspberrypi-OS-tutorials: Tutorial 18 - Backtracing](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/18_backtrace#readme)
5052

5153
### Research
5254

5355
### Miscellaneous
5456

57+
* [Black Hat Rust discount: Happy 2022](https://kerkour.com/black-hat-rust-discount-happy-2022)
58+
5559
## Crate of the Week
5660

57-
<!-- COTW goes here -->
61+
This week's crate is [enum\_dispatch](https://crates.io/crates/enum_dispatch), a proc-macro-attribute to replace dynamic dispatch with enum dispatch to gain performance.
62+
63+
Thanks to [David Mason](https://users.rust-lang.org/t/crate-of-the-week/2704/1059) for the suggestion!
5864

5965
[Please submit your suggestions and votes for next week][submit_crate]!
6066

@@ -73,7 +79,57 @@ If you are a Rust project owner and are looking for contributors, please submit
7379

7480
## Updates from the Rust Project
7581

76-
<!-- Rust updates go here -->
82+
377 pull requests were [merged in the last week][merged]
83+
84+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2022-05-02..2022-05-09
85+
86+
* [rustc + avr = ❤️❤️ back again](https://github.com/rust-lang/llvm-project/pull/139)
87+
* [support tool lints with the `#[expect]` attribute](https://github.com/rust-lang/rust/pull/95542) (RFC [#2383](https://rust-lang.github.io/rfcs/2383-lint-reasons.html))
88+
* [remove `#[rustc_deprecated]`](https://github.com/rust-lang/rust/pull/95960)
89+
* [suggest fully qualified path with appropriate params](https://github.com/rust-lang/rust/pull/96772)
90+
* [report that opaque types are not allowed in impls even in the presence of other errors](https://github.com/rust-lang/rust/pull/96673)
91+
* [warn on unused `#[doc(hidden)]` attributes on trait impl items](https://github.com/rust-lang/rust/pull/96008)
92+
* [use source callsite in `check_argument_types` suggestion](https://github.com/rust-lang/rust/pull/96589)
93+
* [followups for method call error change](https://github.com/rust-lang/rust/pull/96155)
94+
* [don't cache results of coinductive cycle](https://github.com/rust-lang/rust/pull/96458)
95+
* [speed up `Token::{ident,lifetime}`](https://github.com/rust-lang/rust/pull/96683)
96+
* [overhaul `MacArgs`](https://github.com/rust-lang/rust/pull/96546)
97+
* [generalize "incoherent impls" impl for user defined types](https://github.com/rust-lang/rust/pull/96520)
98+
* [optimize `promote_consts` by caching the results of `validate_local`](https://github.com/rust-lang/rust/pull/96815)
99+
* [codegen\_gcc: implement more SIMD intrinsics](https://github.com/rust-lang/rustc_codegen_gcc/pull/172)
100+
* [codegen\_gcc: use the provided pointee type in `<Builder as BuilderMethods>::load`](https://github.com/rust-lang/rustc_codegen_gcc/pull/170)
101+
* [stabilize `bool::then_some`](https://github.com/rust-lang/rust/pull/96628)
102+
* [add a dedicated length-prefixing method to `Hasher`](https://github.com/rust-lang/rust/pull/94598)
103+
* [fix panic in `Path::strip_prefix`](https://github.com/rust-lang/rust/pull/93675)
104+
* [make `sys::windows::os_str::Slice` `repr(transparent)`](https://github.com/rust-lang/rust/pull/96802)
105+
* [futures: remove `Fuse`s from `select`, and only poll non-terminated streams](https://github.com/rust-lang/futures-rs/pull/2583)
106+
* [hashbrown: remove third copy operation for `RustcOccupiedEntry::insert`](https://github.com/rust-lang/hashbrown/pull/329)
107+
* [cargo: extend pkgid syntax with `@` support](https://github.com/rust-lang/cargo/pull/10582)
108+
* [cargo: improve support of condition compilation checking](https://github.com/rust-lang/cargo/pull/10566)
109+
* [cargo: when documenting private items in a binary, ignore warnings about links to private items](https://github.com/rust-lang/cargo/pull/10142)
110+
* [rust-analyzer: remove handling of `#[rustc_deprecated]`](https://github.com/rust-lang/rust-analyzer/pull/11983)
111+
* [rust-analyzer: lower values of char and byte literals](https://github.com/rust-lang/rust-analyzer/pull/12157)
112+
* [rust-analyzer: sort items by trait definition assist](https://github.com/rust-lang/rust-analyzer/pull/12142)
113+
* [rust-analyzer: allow auto importing starting segments of use items](https://github.com/rust-lang/rust-analyzer/pull/12188)
114+
* [rust-analyzer: don't show assoc. type binding completions when invalid](https://github.com/rust-lang/rust-analyzer/pull/12199)
115+
* [rust-analyzer: fix import insertion inserting after last comment in a file](https://github.com/rust-lang/rust-analyzer/pull/12197)
116+
* [rust-analyzer: fix panic when a macro passes a float token to another macro](https://github.com/rust-lang/rust-analyzer/pull/12178)
117+
* [rust-analyzer: fix snippets triggering where they shouldn't](https://github.com/rust-lang/rust-analyzer/pull/12175)
118+
* [rust-analyzer: remap float parts as integers when parsed as indices](https://github.com/rust-lang/rust-analyzer/pull/12185)
119+
* [rust-analyzer: resolve assoc. types of supertraits in the IDE layer](https://github.com/rust-lang/rust-analyzer/pull/12198)
120+
* [rust-analyzer: try not to invalidate state when the proc macro preference didn't change](https://github.com/rust-lang/rust-analyzer/pull/12171)
121+
* [rust-analyzer: fix macro expansion with float tokens](https://github.com/rust-lang/rust-analyzer/pull/12177)
122+
* [rust-analyzer: split float literal tokens at `.` to fix parsing of tuple field accesses](https://github.com/rust-lang/rust-analyzer/pull/12149)
123+
* [clippy: address `unnecessary_to_owned` false positive](https://github.com/rust-lang/rust-clippy/pull/8794)
124+
* [clippy: create lint against unexpectedly late drop for temporaries in match scrutinee expressions](https://github.com/rust-lang/rust/pull/94206)
125+
* [clippy: fix `cast_lossless` to avoid warning on `usize` to `f64` conversion](https://github.com/rust-lang/rust-clippy/pull/8778)
126+
* [clippy: ignore type aliases in `init_numbered_fields`](https://github.com/rust-lang/rust-clippy/pull/8780)
127+
* [clippy: lint `empty_lint_after_outer_attr` on argumentless macros](https://github.com/rust-lang/rust-clippy/pull/8790)
128+
* [clippy: move `only_used_in_recursion` to nursery](https://github.com/rust-lang/rust-clippy/pull/8783)
129+
* [clippy: optionally allow `expect` and `unwrap` in tests](https://github.com/rust-lang/rust-clippy/pull/8802)
130+
* [clippy: support negative ints in `manual_range_contains`](https://github.com/rust-lang/rust-clippy/pull/8763)
131+
* [clippy: `identity_op` false positive in front of if](https://github.com/rust-lang/rust-clippy/pull/8730)
132+
* [rustfmt: fix `wrap_comments` breaking up type links](https://github.com/rust-lang/rustfmt/pull/5262)
77133

78134
### Rust Compiler Performance Triage
79135

@@ -84,7 +140,7 @@ If you are a Rust project owner and are looking for contributors, please submit
84140
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
85141
are the RFCs that were approved for implementation this week:
86142

87-
<!-- Approved RFCs go here -->
143+
* *No RFCs were approved this week.*
88144

89145
### Final Comment Period
90146

@@ -94,41 +150,36 @@ decision. Express your opinions now.
94150

95151
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
96152

153+
* *No RFCs entered Final Comment Period this week.*
154+
97155
#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
98156

157+
* [disposition: merge] [Make RwLockReadGuard covariant](https://github.com/rust-lang/rust/pull/96820)
158+
* [disposition: merge] [Extend ptr::null and null_mut to all thin (including extern) types](https://github.com/rust-lang/rust/pull/94954)
159+
* [disposition: merge] [Modify MIR building to drop repeat expressions with length zero](https://github.com/rust-lang/rust/pull/95953)
160+
* [disposition: merge] [Tracking issue for explicit_generic_args_with_impl_trait](https://github.com/rust-lang/rust/issues/83701)
161+
99162
### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
100163

164+
* [new] [RFC: Precise Pre-release Deps](https://github.com/rust-lang/rfcs/pull/3263)
165+
* [new] [Rolling co-lead roles for T-compiler](https://github.com/rust-lang/rfcs/pull/3262/files)
166+
* [new] [RFC: extended_hrtbs](https://github.com/rust-lang/rfcs/pull/3261)
167+
* [new] [Deprecating UnwindSafe](https://github.com/rust-lang/rfcs/pull/3260)
101168

102169
## Upcoming Events
103170

104171
Rusty Events between 2022-05-11 - 2022-06-08 🦀
105172

106173
### Virtual
107174

108-
* 2022-05-04 | Indianapolis, IN, US | [Indy Rust](https://www.meetup.com/indyrs/)
109-
* [**Indy.rs - with Social Distancing**](https://www.meetup.com/indyrs/events/285121667/)
110-
* 2022-05-04 | Philadelphia, PA, US | [Rust Philly (Rust Philadelphia)](https://www.meetup.com/RustPhilly/)
111-
* [**Remote Book Club: Rust for Rustaceans Chapter Discussion**](https://www.meetup.com/RustPhilly/events/285282177/)
112-
* 2022-05-05 | Charlottesville, VA, US | [Charlottesville Rust Meetup](https://www.meetup.com/Charlottesville-Rust-Meetup/)
113-
* [**Dealing with failure: producing and consuming Errors in Rust**](https://www.meetup.com/Charlottesville-Rust-Meetup/events/285078007/)
114-
* 2022-05-09 | Philadelphia, PA, US | [Rust Philly (Rust Philadelphia)](https://www.meetup.com/RustPhilly/)
115-
* [**Mob Programming: Rome Tools**](https://www.meetup.com/RustPhilly/events/kkbktsydchbmb/)
116-
* 2022-05-10 | Berlin, DE | [OpenTechSchool Berlin](https://www.meetup.com/opentechschool-berlin/)
117-
* [**Rust Hack and Learn**](https://www.meetup.com/opentechschool-berlin/events/284399988/)
118-
* 2022-05-10 | Dallas, TX, US | [Dallas Rust](https://www.meetup.com/Dallas-Rust/)
119-
* [**Second Tuesday**](https://www.meetup.com/Dallas-Rust/events/vqtjcsydchbnb/)
120-
* 2022-05-10 | Rostock, DE | [Altow Academy](https://www.meetup.com/altow-academy/)
121-
* [**7. Rust Meetup Rostock**](https://www.meetup.com/altow-academy/events/283819127/)
122-
* 2022-05-10 | Saarbrücken, DE | [Rust-Saar](https://www.meetup.com/Rust-Saar/)
123-
* [**Meetup: 21u16**](https://www.meetup.com/Rust-Saar/events/285483060/)
124-
* 2022-05-10 | Seattle, WA, US | [Seattle Rust Meetup](https://www.meetup.com/Seattle-Rust-Meetup/)
125-
* [**Monthly meetup**](https://www.meetup.com/Seattle-Rust-Meetup/events/gskksrydchbnb/)
126175
* 2022-05-11 | Boulder, CO, US | [Boulder Elixir and Rust](https://www.meetup.com/boulder-elixir-rust/)
127176
* [**Monthly Meetup**](https://www.meetup.com/boulder-elixir-rust/events/zvxcsrydchbpb/)
128177
* 2022-05-11 | Malaysia, MY | [Rust Malaysia Meetup](https://rust-malaysia.github.io/meetup/)
129178
* [**Rust Malaysia Meetup**](https://forms.gle/Xe61Zebj6tY53HR7A)
130179
* 2022-05-12 | Nürnberg, DE | [Rust Nurnberg DE](https://www.meetup.com/rust-noris/)
131180
* [**Rust Nürnberg online**](https://www.meetup.com/rust-noris/events/tzjtssydchbqb/)
181+
* 2022-05-12 | San Diego, CA, US | [San Diego Rust](https://www.meetup.com/San-Diego-Rust/)
182+
* [**San Diego Rust May 2022 Tele-Meetup**](https://www.meetup.com/San-Diego-Rust/events/285767149/)
132183
* 2022-05-12 | Stuttgart, DE | [Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/)
133184
* [**Rust-Meetup**](https://www.meetup.com/Rust-Community-Stuttgart/events/swgrssydchbqb/)
134185
* 2022-05-17 | Washington, DC, US | [Rust DC](https://www.meetup.com/RustDC/)
@@ -147,29 +198,42 @@ Rusty Events between 2022-05-11 - 2022-06-08 🦀
147198
* [**Indy.rs - with Social Distancing**](https://www.meetup.com/indyrs/events/qwtdjsydcjbcb/)
148199
* 2022-06-01 | Philadelphia, PA, US | [Rust Philly (Rust Philadelphia)](https://www.meetup.com/RustPhilly/)
149200
* [**Remote Book Club: Rust for Rustaceans Chapter Discussion**](https://www.meetup.com/RustPhilly/events/qkbktsydcjbcb/)
201+
* 2022-06-07 | Buffalo, NY, US | [Buffalo Rust Meetup](https://www.meetup.com/Buffalo-Rust-Meetup/)
202+
* [**Buffalo Rust User Group, First Tuesdays**](https://www.meetup.com/Buffalo-Rust-Meetup/events/xgmfssydcjbkb/)
203+
* 2022-06-08 | Boulder, CO, US | [Boulder Elixir and Rust](https://www.meetup.com/boulder-elixir-rust/)
204+
* [**Monthly Meetup**](https://www.meetup.com/boulder-elixir-rust/events/zvxcsrydcjblb/)
150205

151206
### North America
152207

153208
* 2022-05-11 | Atlanta, GA, US | [Rust ATL](https://www.meetup.com/Rust-ATL/)
154209
* [**Grab a beer with fellow Rustaceans**](https://www.meetup.com/Rust-ATL/events/pczdssydchbpb/)
155210
* 2022-05-12 | Columbus, OH, US | [Columbus Rust Society](https://www.meetup.com/columbus-rs/)
156211
* [**Monthly Meeting**](https://www.meetup.com/columbus-rs/events/dpkhgrydchbqb/)
212+
* 2022-05-17 | Austin, TX, US | [Rust ATX](https://www.meetup.com/rust-atx/)
213+
* [**Rust Lunch**](https://www.meetup.com/rust-atx/events/285680468/)
157214
* 2022-05-17 | San Francisco, CA, US | [San Francisco Rust Study Group](https://www.meetup.com/san-francisco-rust-study-group/)
158215
* [**Rust Hacking in Person**](https://www.meetup.com/san-francisco-rust-study-group/events/wjkjssydchbwb/)
159216
* 2022-05-24 | San Francisco, CA, US | [Rust Bay Area](https://www.meetup.com/Rust-Bay-Area/)
160217
* [**(@ Google) What is soundness anyways?**](https://www.meetup.com/Rust-Bay-Area/events/285563981/)
218+
* 2022-06-08 | Atlanta, GA, US | [Rust ATL](https://www.meetup.com/Rust-ATL/)
219+
* [**Grab a beer with fellow Rustaceans**](https://www.meetup.com/Rust-ATL/events/pczdssydcjblb/)
161220

162221
### Europe
163222

164-
* 2022-05-06 | Zurich, CH | [Rust Zurich](https://www.meetup.com/Rust-Zurich/)
165-
* [**Rust programming language in the high-performance computing environment**](https://www.meetup.com/Rust-Zurich/events/285457518/)
166-
* 2022-05-09 | Helsinki, FI | [Finland Rust Meetup](https://www.meetup.com/Finland-Rust-Meetup/)
167-
* [**May meetup**](https://www.meetup.com/Finland-Rust-Meetup/events/285433622/)
223+
* 2022-05-17 | Stuttgart, DE | [Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/)
224+
* [**On Site Meetup**](https://www.meetup.com/Rust-Community-Stuttgart/events/285820373/)
225+
* 2022-05-18 | Stockholm, SE | [Stockholm Rust](https://www.meetup.com/Stockholm-Rust/)
226+
* [**Rust Meetup @AWS**](https://www.meetup.com/Stockholm-Rust/events/285701456/)
168227
* 2022-05-19 & 05-20 | Berlin, DE | [Entwickler.de](https://entwickler.de/)
169228
* [**Rust Summit (paid)**](https://entwickler.de/rust-summit)
170-
* 2022-05-24 | Amsterdam, NL | [Rust Developers Amsterdam Group](https://www.meetup.com/rust-amsterdam-group/)]
229+
* 2022-05-24 | Amsterdam, NL | [Rust Developers Amsterdam Group](https://www.meetup.com/rust-amsterdam-group/)
171230
* [**Rust Developer Meetup: Lightning Talks @ Fiberplane**](https://www.meetup.com/rust-amsterdam-group/events/285291653/)
172231

232+
### Oceania
233+
234+
* 2022-05-26 | Brisbane City, QL | [Rust Brisbane](https://www.meetup.com/Rust-Brisbane/)
235+
* [**May Meetup**](https://www.meetup.com/Rust-Brisbane/events/285665676/)
236+
173237
If you are running a Rust event please add it to the [calendar] to get
174238
it mentioned here. Please remember to add a link to the event too.
175239
Email the [Rust Community Team][community] for access.
@@ -191,11 +255,29 @@ They should be of the form:
191255
192256
-->
193257

258+
**Quickwit**
259+
260+
* [Senior Software Engineer, Rust & distributed systems (Remote, European/Asian time zones)](https://quickwit.io/jobs/distributed-software-engineer)
261+
262+
**Timescale**
263+
264+
* [Senior Rust Engineer - TimescaleDB Toolkit (Remote: UTC-5 to UTC-8)](https://www.timescale.com/careers/5920911002?gh_jid=5920911002)
265+
266+
**Tempus Ex**
267+
268+
* [Several full-time Rust positions available (San Francisco, CA, US, Atlanta, GA, US, Austin, TX, US, and Remote)](https://tempus-ex.com/careers)
269+
194270
*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!*
195271

196272
# Quote of the Week
197273

198-
<!-- QOTW goes here -->
274+
> At Cloudflare we have big Rust projects/teams and onboard new developers regularly.
275+
>
276+
> There is a learning curve. Rust is rigid and unforgiving, and noobs need assistance when the compiler says “no” (although error messages and Clippy do a good job for common mistakes).
277+
>
278+
> However, the big upside is that noobs can contribute safely to Rust projects. Rust limits severity of the damage an inexperienced programmer can cause. Once they manage to get the code to compile, it already has lots of correctness guarantees. “Bad” Rust code may just clone more than strictly necessary, or write 10 lines of code for something that has a helper method in the stdlib, but it won’t corrupt memory or blindly run the happy path without checking for errors. Rust prefers to be locally explicit, so it’s also easy to review.
279+
280+
[Kornel.Lesiński on lobste.rs](https://lobste.rs/s/ksj3ii/rust_is_hard_yes_does_it_matter)
199281

200282
[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)
201283

0 commit comments

Comments
 (0)