Skip to content

Commit 4cf3685

Browse files
authored
Merge branch 'master' into patch-16
2 parents 3be5d5f + 53beefb commit 4cf3685

File tree

1 file changed

+145
-46
lines changed

1 file changed

+145
-46
lines changed

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

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

35+
3536
### Official
3637

3738
### Foundation
3839

3940
### Newsletters
4041
* [The Embedded Rustacean Issue #47](https://www.theembeddedrustacean.com/p/the-embedded-rustacean-issue-47)
42+
* [Rust Trends Issue #66](https://rust-trends.com/newsletter/rust-rewinded-debug-smarter-build-faster/)
4143

4244
### Project/Tooling Updates
45+
* [Are We Embedded Yet? #2](https://jslazak.com/are-we-embedded-yet-2/)
46+
47+
* [Meilisearch 1.15 - new typo tolerance setting, comparison operators for string filters, and improved support for Chinese](https://www.meilisearch.com/blog/meilisearch-1-15)
4348

4449
### Observations/Thoughts
50+
* [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/)
51+
* [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)
52+
* [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)
53+
* [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/)
54+
* [Rust For Foundational Software](https://corrode.dev/blog/foundational-software/)
55+
* [10 years of betting on Rust](https://tably.com/tably/10-years-of-betting-on-rust)
56+
* [Report on variadic generics discussions at RustWeek 2025.](https://poignardazur.github.io/2025/06/07/report-on-variadics-rustweek/)
57+
* [Zero-cost Functional Records in Rust](https://ecency.com/rust-lang/@jonwolski/zero-cost-functional-records-in-rust)
58+
* [A plan for SIMD](https://linebender.org/blog/a-plan-for-simd/)
59+
* [When is a Rust function "unsafe"?](https://crescentro.se/posts/when-unsafe/)
60+
* [video playlist] [RustWeek 2025](https://www.youtube.com/playlist?list=PL8Q1w7Ff68DCEXiGidlM0DMn8ztjlUlez)
61+
* [audio] [What's New in Rust 1.79 and 1.80](https://rustacean-station.org/episode/rust-1.79-1.80/)
62+
* [audio] [Rust at Work with Ran Reichman Co-Founder and CEO of Flarion](https://rustacean-station.org/episode/ran-reichman/)
63+
64+
* [Nine Rules for Scientific Libraries in Rust](https://medium.com/@carlmkadie/nine-rules-for-scientific-libraries-in-rust-6e5e33a6405b)
65+
66+
* [Rust on a Diet](https://blog.veeso.dev/blog/en/rust-on-a-diet/)
4567

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

4875
### Research
4976

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

5281
## Crate of the Week
5382

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

5687
[Please submit your suggestions and votes for next week][submit_crate]!
5788

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

6091
## Calls for Testing
61-
6292
An important step for RFC implementation is for people to experiment with the
63-
implementation and give feedback, especially before stabilization. The following
64-
RFCs would benefit from user testing before moving forward:
93+
implementation and give feedback, especially before stabilization.
6594

66-
<!-- Calls for Testing go here, use this format:
67-
* [<RFC Topic>](<RFC URL>)
68-
* [Tracking Issue](<Tracking Issue URL>)
69-
* [Testing steps](<Testing Steps URL>)
70-
-->
71-
<!-- or if there are no new or updated RFCs this week, use: -->
72-
<!-- * *No New or Updated RFCs were created this week.* -->
73-
<!-- Remember to remove the `call-for-testing` label from the RFC so that the maintainer can signal for testers again, if desired. -->
95+
If you are a feature implementer and would like your RFC to appear in this list, add a
96+
`call-for-testing` label to your RFC along with a comment providing testing instructions and/or
97+
guidance on which aspect(s) of the feature need testing.
98+
99+
* *No calls for testing were issued this week by [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
100+
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
101+
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
102+
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
103+
104+
[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.
74105

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

@@ -110,58 +141,122 @@ If you are an event organizer hoping to expand the reach of your event, please s
110141

111142
## Updates from the Rust Project
112143

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

115203
### Rust Compiler Performance Triage
116204

117-
<!-- Perf results go here -->
205+
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.
206+
207+
Triage done by **@panstromek**.
208+
Revision range: [2fc3deed..c31cccb7](https://perf.rust-lang.org/?start=2fc3deed9fcb8762ad57191e0195f06f7543e4a5&end=c31cccb7b5cc098b1a8c1794ed38d7fdbec0ccb0&absolute=false&stat=instructions%3Au)
209+
210+
**Summary**:
211+
212+
| (instructions:u) | mean | range | count |
213+
|:----------------------------------:|:-----:|:---------------:|:-----:|
214+
| Regressions ❌ <br /> (primary) | 3.1% | [0.3%, 8.5%] | 22 |
215+
| Regressions ❌ <br /> (secondary) | 0.6% | [0.2%, 0.9%] | 3 |
216+
| Improvements ✅ <br /> (primary) | -1.0% | [-3.4%, -0.2%] | 151 |
217+
| Improvements ✅ <br /> (secondary) | -3.5% | [-66.5%, -0.2%] | 146 |
218+
| All ❌✅ (primary) | -0.4% | [-3.4%, 8.5%] | 173 |
219+
220+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/7a1e00ae0a30c783bdfa8e3c35e3b49ce88b58e9/triage/2025-06-09.md)
118221

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

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

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

134229
### Final Comment Period
135230

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

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

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

166261
## Upcoming Events
167262

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

314409
# Quote of the Week
315410

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

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

0 commit comments

Comments
 (0)