Skip to content

Commit ec8a76e

Browse files
authored
Merge branch 'master' into patch-93350
2 parents 910b4f9 + fef7651 commit ec8a76e

File tree

1 file changed

+136
-46
lines changed

1 file changed

+136
-46
lines changed

draft/2025-06-11-this-week-in-rust.md

Lines changed: 136 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -32,46 +32,68 @@ and just ask the editors to select the category.
3232
3333
-->
3434

35+
3536
### Official
3637

3738
### Foundation
3839

3940
### Newsletters
4041

4142
### Project/Tooling Updates
43+
* [Are We Embedded Yet? #2](https://jslazak.com/are-we-embedded-yet-2/)
4244

4345
### Observations/Thoughts
46+
* [Rewriting SymCrypt in Rust to modernize Microsoft’s cryptographic library](https://www.microsoft.com/en-us/research/blog/rewriting-symcrypt-in-rust-to-modernize-microsofts-cryptographic-library/)
47+
* [Why doesn’t Rust care more about compiler performance?](https://kobzol.github.io/rust/rustc/2025/06/09/why-doesnt-rust-care-more-about-compiler-performance.html)
48+
* [Hedge funds are replacing a programming language with Rust, but it's not C++](https://www.efinancialcareers.com/news/rust-replacing-c-programming-language-hedge-fund)
49+
* [The Concurrency Trap: How An Atomic Counter Stalled A Pipeline](https://www.conviva.com/platform/the-concurrency-trap-how-an-atomic-counter-stalled-a-pipeline/)
50+
* [Rust For Foundational Software](https://corrode.dev/blog/foundational-software/)
51+
* [10 years of betting on Rust](https://tably.com/tably/10-years-of-betting-on-rust)
52+
* [Report on variadic generics discussions at RustWeek 2025.](https://poignardazur.github.io/2025/06/07/report-on-variadics-rustweek/)
53+
* [Zero-cost Functional Records in Rust](https://ecency.com/rust-lang/@jonwolski/zero-cost-functional-records-in-rust)
54+
* [A plan for SIMD](https://linebender.org/blog/a-plan-for-simd/)
55+
* [When is a Rust function "unsafe"?](https://crescentro.se/posts/when-unsafe/)
56+
* [video playlist] [RustWeek 2025](https://www.youtube.com/playlist?list=PL8Q1w7Ff68DCEXiGidlM0DMn8ztjlUlez)
4457
* [audio] [What's New in Rust 1.79 and 1.80](https://rustacean-station.org/episode/rust-1.79-1.80/)
4558
* [audio] [Rust at Work with Ran Reichman Co-Founder and CEO of Flarion](https://rustacean-station.org/episode/ran-reichman/)
4659

4760
### Rust Walkthroughs
61+
* [Introduction to embedded development with Rust: Overview of the ecosystem](https://kerkour.com/introduction-to-embedded-development-with-rust)
62+
* [Achieving <100 ms Latency for Remote Control with WebRTC](https://gethopp.app/blog/latency-exploration)
63+
* [Patterns for Modeling Overlapping Variant Data in Rust](https://mcmah309.github.io/posts/patterns-for-modeling-overlapping-variant-data-in-rust/)
64+
* [Is Rust faster than C?](https://steveklabnik.com/writing/is-rust-faster-than-c/)
65+
* [video] [Introducing facet: Reflection for Rust](https://www.youtube.com/watch?v=0mqFCqw_XvI)
4866

4967
### Research
5068

5169
### Miscellaneous
70+
* [Getting A Read On Rust With Trainer, Consultant, and Author Herbert Wolverson](https://filtra.io/rust/interviews/ardan-jun-25)
71+
* [video] [Julian Hofer - Pixi: the missing companion to cargo](https://www.youtube.com/watch?v=Hso3TQx13b0)
5272

5373
## Crate of the Week
5474

55-
<!-- COTW goes here -->
75+
This week's crate is [optics](https://crates.io/crates/optics), a typesafe, fully featured lens library.
76+
77+
Thanks to [Akos Vandra](https://users.rust-lang.org/t/crate-of-the-week/2704/1442) for the self-suggestion!
5678

5779
[Please submit your suggestions and votes for next week][submit_crate]!
5880

5981
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
6082

6183
## Calls for Testing
62-
6384
An important step for RFC implementation is for people to experiment with the
64-
implementation and give feedback, especially before stabilization. The following
65-
RFCs would benefit from user testing before moving forward:
85+
implementation and give feedback, especially before stabilization.
6686

67-
<!-- Calls for Testing go here, use this format:
68-
* [<RFC Topic>](<RFC URL>)
69-
* [Tracking Issue](<Tracking Issue URL>)
70-
* [Testing steps](<Testing Steps URL>)
71-
-->
72-
<!-- or if there are no new or updated RFCs this week, use: -->
73-
<!-- * *No New or Updated RFCs were created this week.* -->
74-
<!-- Remember to remove the `call-for-testing` label from the RFC so that the maintainer can signal for testers again, if desired. -->
87+
If you are a feature implementer and would like your RFC to appear in this list, add a
88+
`call-for-testing` label to your RFC along with a comment providing testing instructions and/or
89+
guidance on which aspect(s) of the feature need testing.
90+
91+
* *No calls for testing were issued this week by [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
92+
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
93+
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
94+
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
95+
96+
[Let us know](https://github.com/rust-lang/this-week-in-rust/issues) if you would like your feature to be tracked as a part of this list.
7597

7698
### [RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
7799

@@ -111,58 +133,122 @@ If you are an event organizer hoping to expand the reach of your event, please s
111133

112134
## Updates from the Rust Project
113135

114-
<!-- Rust updates go here -->
136+
516 pull requests were [merged in the last week][merged]
137+
138+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-06-03..2025-06-10
139+
140+
#### Compiler
141+
142+
* [add (back) `unsupported_calling_conventions` lint to reject more invalid calling conventions](https://github.com/rust-lang/rust/pull/141435)
143+
* [add a new `mismatched-lifetime-syntaxes` lint](https://github.com/rust-lang/rust/pull/138677)
144+
* [fast path for stalled obligations on self ty](https://github.com/rust-lang/rust/pull/141681)
145+
* [simplify and optimize `VecCache`'s `SlotIndex::from_index`](https://github.com/rust-lang/rust/pull/142095)
146+
* [rework `collect_and_apply` to not rely on size hint for optimization](https://github.com/rust-lang/rust/pull/141652)
147+
* [miri: TB: add flag to disable the more precise interior mutability tracking](https://github.com/rust-lang/miri/pull/4376)
148+
* [miri: native-lib: allow multiple libraries and/or dirs](https://github.com/rust-lang/miri/pull/4372)
149+
150+
#### Library
151+
152+
* [stabilise `os_string_pathbuf_leak`](https://github.com/rust-lang/rust/pull/137992)
153+
* [stabilize `const_eq_ignore_ascii_case`](https://github.com/rust-lang/rust/pull/142065)
154+
* [stabilize `nonnull_provenance`](https://github.com/rust-lang/rust/pull/142238)
155+
* [stabilize `sha512`, `sm3` and `sm4` for x86](https://github.com/rust-lang/rust/pull/140767)
156+
* [stabilize `tcp_quickack`](https://github.com/rust-lang/rust/pull/129121)
157+
* [bootstrap: build std sans leaf frame pointers](https://github.com/rust-lang/rust/pull/141800)
158+
* [make `NonZero<char>` possible](https://github.com/rust-lang/rust/pull/141001)
159+
* [optimize `Seek::stream_len` impl for `File`](https://github.com/rust-lang/rust/pull/125087)
160+
161+
#### Clippy
162+
163+
* [`doc_suspicious_footnotes`: lint text that looks like a footnote](https://github.com/rust-lang/rust-clippy/pull/14708)
164+
* [`missing_const_for_fn`: consider constness of instance](https://github.com/rust-lang/rust-clippy/pull/14759)
165+
* [`zombie_processes`: do not complain about early early returns](https://github.com/rust-lang/rust-clippy/pull/14912)
166+
* [add new lint: `ip_constant`](https://github.com/rust-lang/rust-clippy/pull/14878)
167+
* [do not lint macro generated codes](https://github.com/rust-lang/rust-clippy/pull/14976)
168+
* [do not recurse indefinitely while checking for inner mutability](https://github.com/rust-lang/rust-clippy/pull/14965)
169+
* [fix `branches_sharing_code` suggests wrongly when dealing with macros](https://github.com/rust-lang/rust-clippy/pull/14907)
170+
* [fix `create_dir` ignores paths in suggestions](https://github.com/rust-lang/rust-clippy/pull/15011)
171+
* [fix `match_single_binding` misses curlies on type signatures](https://github.com/rust-lang/rust-clippy/pull/15017)
172+
* [fix `std_instead_of_core` FP when part of the `use` cannot be replaced](https://github.com/rust-lang/rust-clippy/pull/15016)
173+
* [fix `unnecessary_debug_formatting` FP inside `Debug` impl](https://github.com/rust-lang/rust-clippy/pull/14955)
174+
* [fix false positive for `unused_unit`](https://github.com/rust-lang/rust-clippy/pull/14962)
175+
* [fix suggestion-causes-error of `print_literal` and `write_literal`](https://github.com/rust-lang/rust-clippy/pull/14961)
176+
* [introduce `coerce_container_to_any`](https://github.com/rust-lang/rust-clippy/pull/14812)
177+
* [invert suggestion if pointer is tested for non-nullness](https://github.com/rust-lang/rust-clippy/pull/15015)
178+
* [lint reversed ordering in partial ord impl](https://github.com/rust-lang/rust-clippy/pull/14945)
179+
* [use interned strings when possible, for efficiency purposes](https://github.com/rust-lang/rust-clippy/pull/14963)
180+
181+
#### Rust-Analyzer
182+
183+
* [better parser recovery for macro calls in type bound position](https://github.com/rust-lang/rust-analyzer/pull/19933)
184+
* [add `dyn` keyword inlay hints](https://github.com/rust-lang/rust-analyzer/pull/19922)
185+
* [implement attribute completions for diagnostics module](https://github.com/rust-lang/rust-analyzer/pull/19908)
186+
* [always include quickfixes for diagnostics, even when diagnostics are disabled](https://github.com/rust-lang/rust-analyzer/pull/19935)
187+
* [do not error at impls for unsized types that do not include `where Self: Sized` items](https://github.com/rust-lang/rust-analyzer/pull/19963)
188+
* [record macro calls for fields in `ChildBySource` impls](https://github.com/rust-lang/rust-analyzer/pull/19937)
189+
* [record macro calls in signatures in `ChildBySource` impls](https://github.com/rust-lang/rust-analyzer/pull/19932)
190+
* [stabilize the "JSON is not Rust" diagnostic](https://github.com/rust-lang/rust-analyzer/pull/19949)
191+
* [stabilize unlinked file diagnostic](https://github.com/rust-lang/rust-analyzer/pull/19936)
192+
* [hir-ty: add incremental tests checking for `infer` invalidation](https://github.com/rust-lang/rust-analyzer/pull/19914)
193+
* [make `Semantics<'db, DB>` support `Semantics<'db, dyn HirDatabase>`, take two](https://github.com/rust-lang/rust-analyzer/pull/19930)
115194

116195
### Rust Compiler Performance Triage
117196

118-
<!-- Perf results go here -->
197+
Mostly positive week, with a lot of improvements in the type system, especially in new solver and one big win in caching code. Regressions come from new warnings, with outsized impact on one benchmark with a lot of generated code.
198+
199+
Triage done by **@panstromek**.
200+
Revision range: [2fc3deed..c31cccb7](https://perf.rust-lang.org/?start=2fc3deed9fcb8762ad57191e0195f06f7543e4a5&end=c31cccb7b5cc098b1a8c1794ed38d7fdbec0ccb0&absolute=false&stat=instructions%3Au)
201+
202+
**Summary**:
203+
204+
| (instructions:u) | mean | range | count |
205+
|:----------------------------------:|:-----:|:---------------:|:-----:|
206+
| Regressions ❌ <br /> (primary) | 3.1% | [0.3%, 8.5%] | 22 |
207+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 0.9%] | 3 |
208+
| Improvements ✅ <br /> (primary) | -1.0% | [-3.4%, -0.2%] | 151 |
209+
| Improvements ✅ <br /> (secondary) | -3.5% | [-66.5%, -0.2%] | 146 |
210+
| All ❌✅ (primary) | -0.4% | [-3.4%, 8.5%] | 173 |
211+
212+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/7a1e00ae0a30c783bdfa8e3c35e3b49ce88b58e9/triage/2025-06-09.md)
119213

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

122216
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
123217
are the RFCs that were approved for implementation this week:
124218

125-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
126-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
127-
<!-- * []() -->
128-
129-
<!--
130-
### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
131-
<!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
132-
<!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
133-
-->
219+
* *No RFCs were approved this week.*
134220

135221
### Final Comment Period
136222

137223
Every week, [the team](https://www.rust-lang.org/team.html) announces the 'final comment period' for RFCs and key PRs
138224
which are reaching a decision. Express your opinions now.
139225

140-
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
141-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
142-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
143-
<!-- * [disposition: ] []() -->
144-
145226
#### Tracking Issues & PRs
146-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
147-
<!-- or if none entered FCP this week, use: -->
148-
<!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
149-
<!-- * [disposition: ] []() -->
150-
151227
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
152-
153-
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
154-
155-
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
156-
157-
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
158-
159-
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
228+
* [Tracking Issue for `mixed_integer_ops_unsigned_sub`](https://github.com/rust-lang/rust/issues/126043)
229+
* [Allow storing `format_args!()` in variable](https://github.com/rust-lang/rust/pull/140748)
230+
* [Tracking Issue for File lock API](https://github.com/rust-lang/rust/issues/130994)
231+
* [Sized Hierarchy: Part I](https://github.com/rust-lang/rust/pull/137944)
232+
* [Allow volatile access to non-Rust memory, including address 0](https://github.com/rust-lang/rust/pull/141260)
233+
* [const-eval: allow constants to refer to mutable/external memory, but reject such constants as patterns](https://github.com/rust-lang/rust/pull/140942)
234+
* [Report never type lints in dependencies](https://github.com/rust-lang/rust/pull/141937)
235+
* [builtin dyn impl no guide inference](https://github.com/rust-lang/rust/pull/141352)
236+
* [Change `core::iter::Fuse`'s Default impl to do what its docs say it does](https://github.com/rust-lang/rust/pull/140985)
237+
* [Stabilize derive(CoercePointee)](https://github.com/rust-lang/rust/pull/133820)
238+
* [impl `Default` for `array::IntoIter`](https://github.com/rust-lang/rust/pull/141574)
239+
* [Added `Clone` implementation for `ChunkBy`](https://github.com/rust-lang/rust/pull/138016)
240+
241+
*No Items entered Final Comment Period this week for
242+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
243+
[Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
244+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+),
245+
[Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period) or
246+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
247+
248+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
160249

161250
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
162-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
163-
<!-- or if there are no new or updated RFCs this week, use: -->
164-
<!-- * *No New or Updated RFCs were created this week.* -->
165-
<!-- * [new|updated] []() -->
251+
* [new] [RFC: Dedented String Literals](https://github.com/rust-lang/rfcs/pull/3830)
166252

167253
## Upcoming Events
168254

@@ -314,7 +400,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
314400

315401
# Quote of the Week
316402

317-
<!-- QOTW goes here -->
403+
> Gaze not into the abyss, lest you become recognized as an ***abyss domain expert***, and they expect you keep gazing into the damn thing.
404+
405+
[Nick Mathewson on twitter](https://x.com/nickm_tor/status/860234274842324993?lang=en)
406+
407+
Thanks to [robin](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1696) for the suggestion!
318408

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

0 commit comments

Comments
 (0)