Skip to content

Commit ca099d8

Browse files
authored
Merge branch 'master' into patch-4
2 parents baa01da + 8ce6919 commit ca099d8

File tree

1 file changed

+105
-6
lines changed

1 file changed

+105
-6
lines changed

draft/2025-08-27-this-week-in-rust.md

Lines changed: 105 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,24 @@ and just ask the editors to select the category.
4646
### Project/Tooling Updates
4747

4848
* [StrongBox: Simple, Safe Data Encryption for Rust](https://www.hezmatt.org/~mpalmer/blog/2025/08/27/strong-box-simple-safe-data-encryption-for-rust.html)
49+
* [Danube Messaging- Release 0.4.0 - Highlights](https://dev-state.com/posts/danube_update_040/)
4950

5051
### Observations/Thoughts
5152

53+
* [audio] [Netstack.FM — Episode 2: Hyper with Sean McArthur](https://netstack.fm/#episode-2)
54+
5255
### Rust Walkthroughs
56+
* [Rust for JavaScript Engineers - Building Connect-4](https://www.afloat.boats/posts/rust-for-javascript-engineers-pt-1)
5357

5458
### Research
5559

5660
### Miscellaneous
5761

5862
## Crate of the Week
5963

60-
<!-- COTW goes here -->
64+
This week's crate is [web-route](https://crates.io/crates/web-route), a library to ergonomically define and manage web server routes in Rust.
65+
66+
Thanks to [sidrubs](https://users.rust-lang.org/t/crate-of-the-week/2704/1463) for the self-suggestion!
6167

6268
[Please submit your suggestions and votes for next week][submit_crate]!
6369

@@ -139,11 +145,100 @@ If you are an event organizer hoping to expand the reach of your event, please s
139145

140146
## Updates from the Rust Project
141147

142-
<!-- Rust updates go here -->
148+
553 pull requests were [merged in the last week][merged]
149+
150+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-08-19..2025-08-26
151+
152+
#### Compiler
153+
* [demote `x86_64-apple-darwin` to Tier 2 with host tools](https://github.com/rust-lang/rust/pull/145252)
154+
* [`rustc_expand`: ensure stack in `InvocationCollector::visit_expr`](https://github.com/rust-lang/rust/pull/145410)
155+
* [account for impossible bounds making seemingly unsatisfyable dyn-to-dyn casts](https://github.com/rust-lang/rust/pull/145620)
156+
* [add lint against integer to pointer transmutes](https://github.com/rust-lang/rust/pull/144531)
157+
* [fix ICE when validating transmuting ZST to inhabited `enum`](https://github.com/rust-lang/rust/pull/145791)
158+
* [refactor attribute parsing to improve ergonomics and some diagnostics](https://github.com/rust-lang/rust/pull/145507)
159+
* [simplify span caches](https://github.com/rust-lang/rust/pull/145505)
160+
* [slightly optimize reading of source files](https://github.com/rust-lang/rust/pull/145848)
161+
* [miri: account for time spent tracing, use RDTSC for faster time](https://github.com/rust-lang/miri/pull/4524)
162+
* [miri: support weak definitions](https://github.com/rust-lang/miri/pull/4414)
163+
164+
#### Library
165+
* [`UnsafePinned::raw_get`: sync signature with get](https://github.com/rust-lang/rust/pull/145593)
166+
* [`bufreader::Buffer::backshift`: don't move the uninit bytes](https://github.com/rust-lang/rust/pull/145538)
167+
* [experiment: reborrow trait](https://github.com/rust-lang/rust/pull/145726)
168+
* [fix parameter order for `_by()` variants of `min` / `max`/ `minmax` in `std::cmp`](https://github.com/rust-lang/rust/pull/139357)
169+
* [fmt of non-decimal radix untangled](https://github.com/rust-lang/rust/pull/143730)
170+
* [implementation: `#[feature(nonpoison_rwlock)]`](https://github.com/rust-lang/rust/pull/144648)
171+
* [stabilize `const_array_each_ref`](https://github.com/rust-lang/rust/pull/143383)
172+
* [stabilize `const_pathbuf_osstring_new` feature](https://github.com/rust-lang/rust/pull/145464)
173+
* [hashbrown: un-bloat `get_inner` functions to restore lookup performance](https://github.com/rust-lang/hashbrown/pull/639)
174+
175+
#### Cargo
176+
* [cargo: linting system](https://github.com/rust-lang/cargo/pull/15865)
177+
* [cargo: suggest workspace hints for boolean dependencies](https://github.com/rust-lang/cargo/pull/15507)
178+
179+
#### Rustdoc
180+
* [add support for macro expansion in rustdoc source code pages](https://github.com/rust-lang/rust/pull/137229)
181+
* [make attributes render consistently](https://github.com/rust-lang/rust/pull/145782)
182+
* [render attributes in Field and Variants sections](https://github.com/rust-lang/rust/pull/145812)
183+
184+
#### Clippy
185+
* [clippy: `bool_comparison`: fix incorrect suggestion with `>`/`<` and macros](https://github.com/rust-lang/rust-clippy/pull/15513)
186+
* [clippy: `bool_comparison`: no longer lint on `!x != y`](https://github.com/rust-lang/rust-clippy/pull/15498)
187+
* [clippy: `cast_slice_from_raw_parts`: check for implicit cast to raw slice pointer](https://github.com/rust-lang/rust-clippy/pull/15437)
188+
* [clippy: `ptr_as_ptr`: fix incorrect suggestion with `pointer::cast` and macros](https://github.com/rust-lang/rust-clippy/pull/15514)
189+
* [clippy: `too_many_lines`: only highlight the function signature](https://github.com/rust-lang/rust-clippy/pull/15461)
190+
* [clippy: `unnecessary_mut_passed`: add structured suggestion](https://github.com/rust-lang/rust-clippy/pull/15438)
191+
* [clippy: `unused_unit`: don't lint on closure return types](https://github.com/rust-lang/rust-clippy/pull/15549)
192+
* [clippy: better check for `assign_op_pattern` in `const` context](https://github.com/rust-lang/rust-clippy/pull/15532)
193+
* [clippy: check f16 and f128 in `float_equality_without_abs`](https://github.com/rust-lang/rust-clippy/pull/15054)
194+
* [clippy: detect infinite loop in `async fn` not returning `!`](https://github.com/rust-lang/rust-clippy/pull/15545)
195+
* [clippy: do not replace `match` by `if` if any arm contains a binding](https://github.com/rust-lang/rust-clippy/pull/15352)
196+
* [clippy: fix `unnecessary_safety_comment` not linting for the first line](https://github.com/rust-lang/rust-clippy/pull/15354)
197+
* [clippy: fix `async_yields_async` wrongly unmangled macros](https://github.com/rust-lang/rust-clippy/pull/15553)
198+
* [clippy: fix `derivable_impls` suggests wrongly on `derive_const`](https://github.com/rust-lang/rust-clippy/pull/15535)
199+
* [clippy: fix `manual_is_ascii_check`: also add explicit type when linting `matches!`](https://github.com/rust-lang/rust-clippy/pull/15492)
200+
* [clippy: fix `or_then_unwrap`: suggestion preserves macro calls](https://github.com/rust-lang/rust-clippy/pull/15483)
201+
* [clippy: fix `semicolon_inside_block` false positive when attribute over expr is not enabled](https://github.com/rust-lang/rust-clippy/pull/15476)
202+
* [clippy: fix `unnested_or_patterns` false positive on structs with only shorthand field pats](https://github.com/rust-lang/rust-clippy/pull/15343)
203+
204+
#### Rust-Analyzer
205+
* [rust-analyzer: `replace_arith_op` not applicable on selected](https://github.com/rust-lang/rust-analyzer/pull/20512)
206+
* [rust-analyzer: add `ReturnExpr` completion suggest](https://github.com/rust-lang/rust-analyzer/pull/20507)
207+
* [rust-analyzer: add let in let-chain completion support](https://github.com/rust-lang/rust-analyzer/pull/20513)
208+
* [rust-analyzer: add an option to hide reborrows in adjustment inlay hints](https://github.com/rust-lang/rust-analyzer/pull/20520)
209+
* [rust-analyzer: fix `else` completion in `let _ = if x {} $0`](https://github.com/rust-lang/rust-analyzer/pull/20518)
210+
* [rust-analyzer: fix panic in `syntax_highlighting`](https://github.com/rust-lang/rust-analyzer/pull/20506)
211+
* [rust-analyzer: fix rust-analyzer-contributors reference](https://github.com/rust-lang/rust-analyzer/pull/20529)
212+
* [rust-analyzer: fix indentation in `move_guard_to_arm_body`](https://github.com/rust-lang/rust-analyzer/pull/20509)
213+
* [rust-analyzer: fix opaque generics](https://github.com/rust-lang/rust-analyzer/pull/20523)
214+
* [rust-analyzer: improve semicolon handling in `toggle_macro_delimiter`](https://github.com/rust-lang/rust-analyzer/pull/20534)
215+
* [rust-analyzer: infinite recursion while lowering assoc type bounds from supertraits](https://github.com/rust-lang/rust-analyzer/pull/20504)
216+
* [rust-analyzer: make import sorting order follow 2024 edition style](https://github.com/rust-lang/rust-analyzer/pull/20423)
217+
* [rust-analyzer: masquerade as nightly cargo when invoking flycheck with `-Zscript`](https://github.com/rust-lang/rust-analyzer/pull/20528)
218+
* [rust-analyzer: normalize all types when finishing inference](https://github.com/rust-lang/rust-analyzer/pull/20537)
219+
* [rust-analyzer: remove unnecessary `salsa::attach()` calls](https://github.com/rust-lang/rust-analyzer/pull/20502)
143220

144221
### Rust Compiler Performance Triage
145222

146-
<!-- Perf results go here -->
223+
Lot of regressions this week, mostly in rustdoc benchmarks from newly added features. The rest of the suite saw mostly small regressions in small benchmarks and also some improvements, notably from token tree parsing optimization in macro code, span optimization and ongoing work on new solver, which is not fully enabled, yet.
224+
225+
Triage done by **@panstromek**.
226+
Revision range: [239e8b1b..ee361e8f](https://perf.rust-lang.org/?start=239e8b1b47b34120287ec36b33228c1e177f0c38&end=ee361e8fca1c30e13e7a31cc82b64c045339d3a8&absolute=false&stat=instructions%3Au)
227+
228+
**Summary**:
229+
230+
| (instructions:u) | mean | range | count |
231+
|:----------------------------------:|:-----:|:--------------:|:-----:|
232+
| Regressions ❌ <br /> (primary) | 3.7% | [0.3%, 34.5%] | 42 |
233+
| Regressions ❌ <br /> (secondary) | 2.3% | [0.0%, 53.3%] | 79 |
234+
| Improvements ✅ <br /> (primary) | -0.5% | [-0.7%, -0.3%] | 9 |
235+
| Improvements ✅ <br /> (secondary) | -0.9% | [-2.8%, -0.0%] | 30 |
236+
| All ❌✅ (primary) | 3.0% | [-0.7%, 34.5%] | 51 |
237+
238+
5 Regressions, 1 Improvement, 7 Mixed; 6 of them in rollups
239+
38 artifact comparisons made in total
240+
241+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/76b6beef3a67f4c97f61745ea510b4c4a924046f/triage/2025/2025-08-25.md)
147242

148243
### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master)
149244

@@ -277,8 +372,8 @@ Rusty Events between 2025-08-27 - 2025-09-24 🦀
277372
* [**Reading Rust Meetup**](https://www.meetup.com/reading-rust-workshop/events/308944038)
278373
* 2025-09-11 | Bern, CH | [Rust Bern](https://www.meetup.com/rust-bern/events/)
279374
* [**2025 Rust Talks Bern #4 @Zühlke**](https://www.meetup.com/rust-bern/events/309903540)
280-
* 2025-09-16 | Berlin, DE | [Oxidize Conference] (https://oxidizeconf.com/)
281-
* [**Oxidize Conference**](https://oxidizeconf.com/)
375+
* 2025-09-16 | Berlin, DE | [Oxidize Conference] (https://oxidizeconf.com/)
376+
* [**Oxidize Conference**](https://oxidizeconf.com/)
282377
* 2025-09-16 | Leipzig, DE | [Rust - Modern Systems Programming in Leipzig](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/)
283378
* [**Topic TBD**](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/308592250)
284379
* 2025-09-17 | Girona, ES | [Rust Girona](https://lu.ma/rust-girona) | [Silicon Girona](https://silicongirona.club)
@@ -356,7 +451,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
356451

357452
# Quote of the Week
358453

359-
<!-- QOTW goes here -->
454+
> I `clone()` everything now. The Borrow Checker permits this small rebellion, this inefficiency. It knows I suffer more knowing my code is not idiomatic. Every `.clone()` is a confession of my failure. Every `Arc<Mutex>` a monument to my inadequacy.
455+
456+
[/u/TheEldenLorrdd on /r/rust](https://reddit.com/comments/1mwmei6)
457+
458+
Thanks to [Colin Terry](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1709) for the suggestion!
360459

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

0 commit comments

Comments
 (0)