Skip to content

Commit 600e136

Browse files
Merge branch 'master' into master
2 parents d19dcac + a9e62d0 commit 600e136

File tree

1 file changed

+114
-72
lines changed

1 file changed

+114
-72
lines changed

draft/2025-09-17-this-week-in-rust.md

Lines changed: 114 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ and just ask the editors to select the category.
3838
-->
3939

4040
### Official
41+
* [crates.io phishing campaign](https://blog.rust-lang.org/2025/09/12/crates-io-phishing-campaign/)
4142

4243
### Foundation
4344

@@ -48,75 +49,59 @@ and just ask the editors to select the category.
4849
### Project/Tooling Updates
4950
* [Cot v0.4: Particularly Lazy](https://mackow.ski/blog/cot-v04-particularly-lazy/)
5051
* [Announcing Diesel 2.3](https://diesel.rs/news/2_3_0_release.html)
52+
* [Rerun 0.25.0 - Syntax highlighting, table filtering, transparent objects](https://github.com/rerun-io/rerun/releases/tag/0.25.0)
53+
* [Introducing Obelisk 0.24.1](https://obeli.sk/blog/introducing-obelisk-0-24-1/)
54+
* [Introducing CurveForge](https://smartnets.etrovub.be/posts/introducing-curveforge/)
55+
* [hotpath 0.2.5 - a simple performance and memory profiler](https://github.com/pawurb/hotpath)
5156

5257
### Observations/Thoughts
53-
* [Rust Algorithm Bites – Validating a Binary Search Tree](https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html)
5458
* [The pirate-based logic of Rust shared references](http://ais523.me.uk/blog/logic-of-shared-references.html)
59+
* [Embedded async debugging and inspect-embassy](https://tweedegolf.nl/en/blog/161/embedded-async-debugging-and-inspect-embassy)
60+
* [Be Simple](https://corrode.dev/blog/simple/)
61+
* [Why We Built Our Own SQL Parser From Scratch: A Rust Implementation Story](https://www.databend.com/blog/category-engineering/2025-09-10-query-parser/)
62+
* [Comparing transitive dependency version resolution in Rust and Java](https://blog.frankel.ch/dependency-version-resolution-rust-java/)
63+
* [Trade-offs in designing DSLs](https://forgestream.idverse.com/blog/20250916-dsl-trade-offs/)
64+
* [Rust Algorithm Bites – Validating a Binary Search Tree](https://d34dl0ck.me/rust-algorithm-bites-validate-bst/index.html)
5565

5666
### Rust Walkthroughs
5767
* [Axum Backend Series: Docker, Database and Connection Pooling](https://blog.0xshadow.dev/posts/backend-engineering-with-axum/axum-database-setup-using-docker/)
5868
* [The Hidden Rules Behind Rust Functions & Closures](https://blog.cuongle.dev/p/the-hidden-rules-behind-rust-functions)
69+
* [Rust unit testing: asynchronous code](https://jorgeortiz.dev/posts/rust_unit_testing_async_code/)
70+
* [Ray Tracing in One Weekend - In Rust](https://buttondown.com/dabeaz/archive/new-video-ray-tracing-in-one-weekend-in-rust/)
71+
* [New Schematic - How to save $327.6 million using Rust](https://newschematic.org/blog/how-to-save-327-6-million-using-rust/)
5972

6073
### Research
6174

6275
### Miscellaneous
76+
* [audio] [Netstack.FM — A Podcast About Networking and Rust](https://netstack.fm/#episode-5)
77+
* [video] [Jan David Nose Interview, Rust Infrastructure Team (Rust Project Content @ RustConf 2025)](https://www.youtube.com/watch?v=r7i-2wHtNjw)
6378
* [August 2025 Rust Jobs Report](https://filtra.io/rust/jobs-report/aug-25)
6479

6580
## Crate of the Week
6681

67-
<!-- COTW goes here -->
82+
This week's crate is [asciinema](https://crates.io/crates/asciinema), a well-known command-line tool for recording, replaying and streaming terminal sessions recently rewritten in Rust.
83+
84+
Despite a lack of suggestions, llogiq is plenty happy with his choice.
6885

6986
[Please submit your suggestions and votes for next week][submit_crate]!
7087

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

7390
## Calls for Testing
74-
An important step for feature implementation is for people to experiment with the
91+
An important step for RFC implementation is for people to experiment with the
7592
implementation and give feedback, especially before stabilization.
7693

77-
If you are a feature implementer and would like your feature to appear in this list, add a
94+
If you are a feature implementer and would like your RFC to appear in this list, add a
7895
`call-for-testing` label to your RFC along with a comment providing testing instructions and/or
7996
guidance on which aspect(s) of the feature need testing.
8097

81-
<!-- If there are new CfT items this week, use: -->
82-
<!--
83-
[Repo Name](Repo URL)
84-
* [<Feature name>](<Feature URL>)
85-
* [Testing steps](<Testing Steps URL>)
86-
-->
87-
<!-- where `Repo Name` and `Repo URL` are one of:
88-
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
89-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
90-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
91-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
92-
-->
93-
94-
<!-- For all `Repo Names` with no new CfT items this week: use (removing the repos for which new
95-
CfT items did appear, of course) -->
96-
<!--
9798
* *No calls for testing were issued this week by
9899
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
99100
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
100101
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
101102
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
102-
-->
103-
* *No calls for testing were issued this week by [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
104-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
105-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
106-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
107103

108104
[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.
109-
-->
110-
111-
### [RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
112-
113-
### [Rust](https://github.com/rust-lang/rust/labels/call-for-testing)
114-
115-
### [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
116-
117-
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
118-
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
119-
need testing.
120105

121106
## Call for Participation; projects and speakers
122107

@@ -141,17 +126,82 @@ If you are a Rust project owner and are looking for contributors, please submit
141126
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
142127

143128
<!-- CFPs go here, use this format: * [**event name**](URL to CFP)| Date CFP closes in YYYY-MM-DD | city,state,country | Date of event in YYYY-MM-DD -->
144-
<!-- or if none - *No Calls for papers or presentations were submitted this week.* -->
129+
*No Calls for papers or presentations were submitted this week.*
145130

146131
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a [PR to TWiR](https://github.com/rust-lang/this-week-in-rust) or by reaching out on [X (formerly Twitter)](https://x.com/ThisWeekInRust) or [Mastodon](https://mastodon.social/@thisweekinrust)!
147132

148133
## Updates from the Rust Project
149134

150-
<!-- Rust updates go here -->
135+
379 pull requests were [merged in the last week][merged]
136+
137+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-09-09..2025-09-16
138+
139+
#### Compiler
140+
* [implement `#[rustc_align_static(N)]` on `static`s](https://github.com/rust-lang/rust/pull/146178)
141+
* [move more early buffered lints to dyn lint diagnostics](https://github.com/rust-lang/rust/pull/145881)
142+
* [make `AssocItem` aware of its impl kind](https://github.com/rust-lang/rust/pull/145186)
143+
* [match clang's `va_arg` assembly on arm targets](https://github.com/rust-lang/rust/pull/144549)
144+
* [reject invalid literal suffixes in tuple indexing, tuple `struct` indexing, and `struct` field name position](https://github.com/rust-lang/rust/pull/145463)
145+
* [sort array trait implementation suggestions correctly](https://github.com/rust-lang/rust/pull/146403)
146+
* [strip frontmatter in fewer places](https://github.com/rust-lang/rust/pull/146340)
147+
* [miri: fix release/scquire synchonization for loads from the store buffer](https://github.com/rust-lang/miri/pull/4577)
148+
* [miri: make a basic hello world work on wasip2](https://github.com/rust-lang/miri/pull/4582)
149+
150+
#### Library
151+
* [constify Eq, Ord, PartialOrd](https://github.com/rust-lang/rust/pull/144847)
152+
* [implement `Sum` and `Product` for `f16` and `f128`](https://github.com/rust-lang/rust/pull/146300)
153+
* [inclusive `Range`s: change `end` to `last`](https://github.com/rust-lang/rust/pull/144765)
154+
* [make `Barrier` `RefUnwindSafe` again](https://github.com/rust-lang/rust/pull/146322)
155+
* [stabilize `BTree{Map,Set}::extract_if`](https://github.com/rust-lang/rust/pull/145471)
156+
* [support integer literals in `${concat()}`](https://github.com/rust-lang/rust/pull/146308)
157+
158+
#### Cargo
159+
* [cli: Allow completions for third-party subcommand names](https://github.com/rust-lang/cargo/pull/15961)
160+
* [completer: Added completion for `--features` flag](https://github.com/rust-lang/cargo/pull/15309)
161+
* [complete: Show local crates/features over other members](https://github.com/rust-lang/cargo/pull/15956)
162+
* [frontmatter: Try alternative len code fences](https://github.com/rust-lang/cargo/pull/15952)
163+
* [manifest: Show error source to users](https://github.com/rust-lang/cargo/pull/15939)
164+
* [publish: Switch the 'ctrl-c on wait' line to a help message](https://github.com/rust-lang/cargo/pull/15942)
165+
166+
#### Rustdoc
167+
* [Correctly handle literal search on paths](https://github.com/rust-lang/rust/pull/146448)
168+
169+
#### Clippy
170+
* [`elidable_lifetime_names`: avoid overlapping spans in suggestions](https://github.com/rust-lang/rust-clippy/pull/15667)
171+
* [`len_zero`: don't eagerly call `GenericArgs::type_at`](https://github.com/rust-lang/rust-clippy/pull/15660)
172+
* [`multiple_unsafe_ops_per_block`: ignore unsafe ops from `.await` desugaring](https://github.com/rust-lang/rust-clippy/pull/15654)
173+
* [`needless_closure`: don't lint on `AsyncFn*`s](https://github.com/rust-lang/rust-clippy/pull/15649)
174+
* [`needless_return`: fix false positive with `cfg`d code after return](https://github.com/rust-lang/rust-clippy/pull/15669)
175+
* [`ref_option`: don't lint in external and proc-macros](https://github.com/rust-lang/rust-clippy/pull/15668)
176+
* [`semicolon_inside_block`: don't lint if block is in parens](https://github.com/rust-lang/rust-clippy/pull/15626)
177+
* [`use_self`: don't early-return if the outer type has no lifetimes](https://github.com/rust-lang/rust-clippy/pull/15611)
178+
* [add suggestion to `cast_sign_loss` and `cast_possible_wrap` using the `cast_{un,}signed()` methods](https://github.com/rust-lang/rust-clippy/pull/15384)
179+
* [fix `as_underscore` to only suggest when it's suggestable](https://github.com/rust-lang/rust-clippy/pull/15652)
180+
* [fix `invalid_upcast_comparisons` wrongly unmangled macros](https://github.com/rust-lang/rust-clippy/pull/15663)
181+
* [fix `useless_attribute` false positive on `deprecated_in_future`](https://github.com/rust-lang/rust-clippy/pull/15645)
182+
* [recognize canonical `?` pattern with `Result`](https://github.com/rust-lang/rust-clippy/pull/15680)
183+
184+
#### Rust-Analyzer
185+
* [add more workaround hacks for incorrect startup diagnostics](https://github.com/rust-lang/rust-analyzer/pull/20402)
186+
* [fix `LifetimeParam::lifetime_bounds` invalid implement](https://github.com/rust-lang/rust-analyzer/pull/20624)
187+
* [fix extra semicolon before else in let-stmt](https://github.com/rust-lang/rust-analyzer/pull/20657)
188+
* [fix indent for `unresolved_field` fixes](https://github.com/rust-lang/rust-analyzer/pull/20613)
189+
* [always coerce in a cast, even when there are unknown types](https://github.com/rust-lang/rust-analyzer/pull/20649)
190+
* [don't mark unknown type as implementing every notable trait](https://github.com/rust-lang/rust-analyzer/pull/20665)
191+
* [don't output an empty generic parameters list in `generate_function`](https://github.com/rust-lang/rust-analyzer/pull/20653)
192+
* [don't trigger two flychecks when saving files that are part of targets](https://github.com/rust-lang/rust-analyzer/pull/20635)
193+
* [fix expand macro recursively not working correctly for nested macro calls](https://github.com/rust-lang/rust-analyzer/pull/20612)
194+
* [fix normalization in the new solver](https://github.com/rust-lang/rust-analyzer/pull/20647)
195+
* [infinite loop while elaborting predicates](https://github.com/rust-lang/rust-analyzer/pull/20654)
196+
* [make `#[target_feature]` always safe on WASM](https://github.com/rust-lang/rust-analyzer/pull/20642)
197+
* [more precise clause filtering for `explicit_*_predicates_of`](https://github.com/rust-lang/rust-analyzer/pull/20671)
198+
* [only compute unstable paths on nightly toolchains for IDE features](https://github.com/rust-lang/rust-analyzer/pull/20517)
199+
* [resolve paths to snapshot test libraries absolutely](https://github.com/rust-lang/rust-analyzer/pull/20639)
200+
* [migrate `InferenceTable` into next-solver](https://github.com/rust-lang/rust-analyzer/pull/20578)
151201

152202
### Rust Compiler Performance Triage
153203

154-
Difficult week to interpret, because a positive change in [#145910](https://github.com/rust-lang/rust/pull/145910) skewes the results more negative in our benchmarks. Overall result is probably still slightly negative, because there's more work from added features. On the other hand, we also have a nice improvement in reducing the number of query dependencies in compiler's tracking system in [#145186](https://github.com/rust-lang/rust/pull/145186).
204+
Difficult week to interpret, because a positive change in [#145910](https://github.com/rust-lang/rust/pull/145910) performs a bit worse in our benchmarks than it would in the real world. Overall result is probably still slightly negative, because there's more work from added features. On the other hand, we also have a nice improvement in reducing the number of query dependencies in compiler's incremental system in [#145186](https://github.com/rust-lang/rust/pull/145186).
155205

156206
Triage done by **@panstromek**.
157207
Revision range: [f13ef0d7..52618eb3](https://perf.rust-lang.org/?start=f13ef0d75d834c826c9479a5d244bcfb9891df45&end=52618eb338609df44978b0ca4451ab7941fd1c7a&absolute=false&stat=instructions%3Au)
@@ -170,54 +220,42 @@ Revision range: [f13ef0d7..52618eb3](https://perf.rust-lang.org/?start=f13ef0d75
170220
1 Regression, 1 Improvement, 6 Mixed; 3 of them in rollups
171221
36 artifact comparisons made in total
172222

173-
[Full report here](https://github.com/rust-lang/rustc-perf/blob/e0539d750ab104f1bd884f60a21a1e0355981d20/triage/2025/2025-09-15.md)
223+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/888c0a24417c3883373ae0844f760f8300176b90/triage/2025/2025-09-15.md)
174224

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

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

180-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
181-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
182-
<!-- * []() -->
183-
184-
<!--
185-
### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
186-
<!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
187-
<!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
188-
-->
230+
* *No RFCs were approved this week.*
189231

190232
### Final Comment Period
191233

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

195-
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
196-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
197-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
198-
<!-- * [disposition: ] []() -->
199-
200237
#### Tracking Issues & PRs
201-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
202-
<!-- or if none entered FCP this week, use: -->
203-
<!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
204-
<!-- * [disposition: ] []() -->
205-
206238
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
207-
208-
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
209-
210-
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
211-
212-
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
213-
214-
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
239+
* [Allow &raw `[mut | const]` for union field in safe code](https://github.com/rust-lang/rust/pull/141469)
240+
* [Deny-by-default never type lints](https://github.com/rust-lang/rust/pull/146167)
241+
* [Opportunistically split `!=` to successfully parse never type](https://github.com/rust-lang/rust/pull/145536)
242+
* [Allow specifying multiple bounds for same associated item, except in trait objects](https://github.com/rust-lang/rust/pull/146593)
243+
* [rustdoc: hide `#[repr]` if it isn't part of the public ABI](https://github.com/rust-lang/rust/pull/116882)
244+
245+
*No Items entered Final Comment Period this week for
246+
[Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period),
247+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
248+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+),
249+
[Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
250+
[Leadership Council](https://github.com/rust-lang/leadership-council/issues?q=state%3Aopen%20label%3Afinal-comment-period) or
251+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
252+
253+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
215254

216255
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
217-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
218-
<!-- or if there are no new or updated RFCs this week, use: -->
219-
<!-- * *No New or Updated RFCs were created this week.* -->
220-
<!-- * [new|updated] []() -->
256+
* [RFC: `#[cfg(since(rust, "1.95"))]` for Rust-version conditional compilation](https://github.com/rust-lang/rfcs/pull/3857)
257+
* [Mitigation enforcement](https://github.com/rust-lang/rfcs/pull/3855)
258+
* [RFC for `#[stable(since)]`](https://github.com/rust-lang/rfcs/pull/3854)
221259

222260
## Upcoming Events
223261

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

342380
# Quote of the Week
343381

344-
<!-- QOTW goes here -->
382+
> **Real Question:** is an array a struct/tuple, or is it an enum?
383+
384+
[Lokathor on github](https://github.com/rust-lang/rust/pull/146509#discussion_r2346807413)
385+
386+
Thanks to [Theemathas](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1716) for the suggestion!
345387

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

0 commit comments

Comments
 (0)