Skip to content

Commit 00e6995

Browse files
Merge branch 'master' into patch-1
2 parents 58115cc + dfecf47 commit 00e6995

File tree

1 file changed

+109
-66
lines changed

1 file changed

+109
-66
lines changed

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

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

35+
3536
### Official
37+
* [Stabilizing naked functions](https://blog.rust-lang.org/2025/07/03/stabilizing-naked-functions/)
3638

3739
### Foundation
3840

3941
### Newsletters
4042

4143
### Project/Tooling Updates
44+
* [toml v0.9](https://epage.github.io/blog/2025/07/toml-09/)
45+
* [Announcing dynify: Pin-init trait objects on the stack in stable Rust](https://www.reddit.com/r/rust/s/Xinstp8iSx)
46+
* [What's new in Ratatui 0.30.0?](https://www.youtube.com/live/nucLyibb5NU?si=copCqnEK7X5ZC9ry)
47+
* [Introducing Tyr, a new Rust DRM driver](https://www.collabora.com/news-and-blog/news-and-events/introducing-tyr-a-new-rust-drm-driver.html)
4248

4349
### Observations/Thoughts
50+
* [Bootstrapping Rust with GCC](https://fractalfir.github.io/generated_html/cg_gcc_bootstrap.html)
51+
* [The journey towards the best error handling in Rust web frameworks](https://mackow.ski/blog/towards-rust-web-best-errors/)
52+
* [Unsoundness and accidental features in the #\[target_feature\] attribute](https://predr.ag/blog/unsoundness-and-accidental-features-in-target-feature/)
53+
* [Tree-Structured Concurrency II: Replacing Background Tasks With Actors](https://blog.yoshuawuyts.com/replacing-tasks-with-actors/)
54+
* [Rapid Machine Learning Prototyping in Rust](https://ryuru.com/rapid-machine-learning-prototyping-in-rust/)
55+
* [330× faster: Four different ways to speed up your code](https://pythonspeed.com/articles/different-ways-speed/)
56+
* [Programming Extensible Data Types in Rust with CGP - Part 1: Modular App Construction and Extensible Builders](https://contextgeneric.dev/blog/extensible-datatypes-part-1/)
57+
* [Making Unsafe Rust a Little Safer: Find Memory Errors in Production with GWP-ASan](https://blog.colinbreck.com/making-unsafe-rust-a-little-safer-find-memory-errors-in-production-with-gwp-asan/)
58+
* [Deterministic Simulation Testing in Rust: A Theater Of State Machines](https://www.polarsignals.com/blog/posts/2025/07/08/dst-rust)
59+
* [Slint Material Components Tech Preview](https://slint.dev/blog/material-comp-tech-preview)
60+
* [Memory-safe malware: Rust challenges security researchers](https://www.techzine.eu/blogs/security/132626/memory-safe-malware-rust-challenges-security-researchers/)
4461

4562
### Rust Walkthroughs
63+
* [JavaScript is being rewritten in Rust](https://endform.dev/blog/js-is-being-rewritten-in-rust/)
64+
* [Rust Security Best Practices 2025](https://corgea.com/Learn/rust-security-best-practices-2025)
4665
* [From 'It Might Work' to 'It Will Work': Typestate in Rust](https://minikin.me/blog/typestate-in-rust)
4766

4867
### Research
@@ -51,59 +70,28 @@ and just ask the editors to select the category.
5170

5271
## Crate of the Week
5372

54-
<!-- COTW goes here -->
73+
This week's crate is [flac-coded](https://crates.io/crates/flac-codec), an implementation of (unsurprisingly) the Free Lossless Audio Codec (FLAC) file format.
74+
75+
Thanks to [tuffy](https://users.rust-lang.org/t/crate-of-the-week/2704/1449) for the self-suggestion!
5576

5677
[Please submit your suggestions and votes for next week][submit_crate]!
5778

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

6081
## Calls for Testing
61-
An important step for feature implementation is for people to experiment with the
82+
An important step for RFC implementation is for people to experiment with the
6283
implementation and give feedback, especially before stabilization.
6384

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

68-
<!-- If there are new CfT items this week, use: -->
69-
<!--
70-
[Repo Name](Repo URL)
71-
* [<Feature name>](<Feature URL>)
72-
* [Testing steps](<Testing Steps URL>)
73-
-->
74-
<!-- where `Repo Name` and `Repo URL` are one of:
75-
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
76-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
77-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
78-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
79-
-->
80-
81-
<!-- For all `Repo Names` with no new CfT items this week: use (removing the repos for which new
82-
CfT items did appear, of course) -->
83-
<!--
84-
* *No calls for testing were issued this week by
85-
[Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
86-
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
87-
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
88-
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
89-
-->
9089
* *No calls for testing were issued this week by [Rust](https://github.com/rust-lang/rust/labels/call-for-testing),
9190
[Rust language RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing),
9291
[Cargo](https://github.com/rust-lang/cargo/labels/call-for-testing) or
9392
[Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing).*
9493

9594
[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.
96-
-->
97-
98-
### [RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
99-
100-
### [Rust](https://github.com/rust-lang/rust/labels/call-for-testing)
101-
102-
### [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
103-
104-
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
105-
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
106-
need testing.
10795

10896
## Call for Participation; projects and speakers
10997

@@ -133,7 +121,72 @@ If you are an event organizer hoping to expand the reach of your event, please s
133121

134122
## Updates from the Rust Project
135123

136-
<!-- Rust updates go here -->
124+
588 pull requests were [merged in the last week][merged]
125+
126+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-07-01..2025-07-08
127+
128+
#### Compiler
129+
* [rewrite `macro_rules!` parser to not use the MBE engine itself](https://github.com/rust-lang/rust/pull/143070)
130+
* [loop match: fix 'no terminator on block'](https://github.com/rust-lang/rust/pull/143583)
131+
* [loop match: handle opaque patterns](https://github.com/rust-lang/rust/pull/143276)
132+
* [align attr fixes](https://github.com/rust-lang/rust/pull/143206)
133+
* [avoid suggesting traits from private dependencies](https://github.com/rust-lang/rust/pull/143038)
134+
* [detect more cases of `unused_parens` around types](https://github.com/rust-lang/rust/pull/142237)
135+
* [make metadata a workproduct and reuse it](https://github.com/rust-lang/rust/pull/114669)
136+
* [remove some unnecessary `unsafe` in VecCache](https://github.com/rust-lang/rust/pull/143406)
137+
* [start moving wf checking away from HIR](https://github.com/rust-lang/rust/pull/142030)
138+
139+
#### Library
140+
* [stabilize `mixed_integer_ops_unsigned_sub`](https://github.com/rust-lang/rust/pull/143236)
141+
* [add `Vec::into_chunks`](https://github.com/rust-lang/rust/pull/142138)
142+
* [add `const Rem`](https://github.com/rust-lang/rust/pull/143040)
143+
* [add methods for converting bool to `Result<(), E>`](https://github.com/rust-lang/rust/pull/142749)
144+
* [change `{Box,Arc,Rc,Weak}::into_raw` to only work with `A = Global`](https://github.com/rust-lang/rust/pull/141219)
145+
146+
#### Cargo
147+
* [publish: Stabilize multi-package publishing](https://github.com/rust-lang/cargo/pull/15636)
148+
* [implement package feature unification](https://github.com/rust-lang/cargo/pull/15684)
149+
* [report valid file name when we can't find a build target for `name = "foo.rs"`](https://github.com/rust-lang/cargo/pull/15707)
150+
151+
#### Miri
152+
* [improve errors for type validity assertion failures](https://github.com/rust-lang/rust/pull/143327)
153+
* [`shims::fs` adding more fields to FileMetadata](https://github.com/rust-lang/miri/pull/4444)
154+
155+
#### Rustdoc
156+
* [fix rustdoc not correctly showing attributes on re-exports](https://github.com/rust-lang/rust/pull/143083)
157+
* [don't treat methods under const impls or traits as const](https://github.com/rust-lang/rust/pull/143381)
158+
159+
#### Clippy
160+
* [`neg_multiply` should preserve parenthesis when method is called](https://github.com/rust-lang/rust-clippy/pull/15179)
161+
* [`doc_nested_refdefs`: do not falsely report checkboxes as refdefs](https://github.com/rust-lang/rust-clippy/pull/15146)
162+
* [`or_fun_call`: also lint `and` method for `Option`/`Result`](https://github.com/rust-lang/rust-clippy/pull/15073)
163+
* [do not lint intrinsics as empty loops](https://github.com/rust-lang/rust-clippy/pull/15201)
164+
* [do not remove `as` if it changes the type](https://github.com/rust-lang/rust-clippy/pull/15182)
165+
* [don't remove explicit cast to trait object pointer](https://github.com/rust-lang/rust-clippy/pull/15145)
166+
* [fix `std-instead-of-core` false positive when not all items come from the new crate](https://github.com/rust-lang/rust-clippy/pull/15165)
167+
* [`redundant_closure_call`: lint for closures with block](https://github.com/rust-lang/rust-clippy/pull/15144)
168+
* [improve floating point lint to handle ambiguous type](https://github.com/rust-lang/rust-clippy/pull/15133)
169+
* [handle potentially-shadowing bindings in `manual_let_else`](https://github.com/rust-lang/rust-clippy/pull/15118)
170+
* [propagate `accept-comment-above-attributes` to statements](https://github.com/rust-lang/rust-clippy/pull/15213)
171+
* [`return_and_then`: prevent false positives in case of a partially used expression](https://github.com/rust-lang/rust-clippy/pull/15115)
172+
173+
#### Rust-Analyzer
174+
* [add `AsMut`, `Borrow` and `BorrowMut` to minicore and `famous_defs`](https://github.com/rust-lang/rust-analyzer/pull/20132)
175+
* [add `fn load_workspace_into_db` variant for `ra_ap_load_cargo`'s fn `load_workspace`](https://github.com/rust-lang/rust-analyzer/pull/20144)
176+
* [always couple `--compile-time-deps` with](https://github.com/rust-lang/rust-analyzer/pull/20159)
177+
* [include `enum` variants in world symbols](https://github.com/rust-lang/rust-analyzer/pull/20185)
178+
* [fix a case where the link type was `None`](https://github.com/rust-lang/rust-analyzer/pull/20192)
179+
* [fix diverging destructuring assignments](https://github.com/rust-lang/rust-analyzer/pull/20179)
180+
* [fix some things with builtin derives](https://github.com/rust-lang/rust-analyzer/pull/20167)
181+
* [honor `rust-analyzer.cargo.noDeps` option when fetching sysroot metadata](https://github.com/rust-lang/rust-analyzer/pull/20148)
182+
* [improve diagnostic ranges for `macro_calls!`](https://github.com/rust-lang/rust-analyzer/pull/20160)
183+
* [fix incorrect closure capturing for let exprs](https://github.com/rust-lang/rust-analyzer/pull/20161)
184+
* [resolve HIR display length issues and improve adjustment tooltips](https://github.com/rust-lang/rust-analyzer/pull/20031)
185+
* [resolve item in match bind](https://github.com/rust-lang/rust-analyzer/pull/20120)
186+
* [improve flycheck and build script progress reporting](https://github.com/rust-lang/rust-analyzer/pull/20170)
187+
* [re-enable fixpoint iteration for variance computation](https://github.com/rust-lang/rust-analyzer/pull/20157)
188+
* [restructure proc-macro loading erros, differentiate hard error property on kind](https://github.com/rust-lang/rust-analyzer/pull/20156)
189+
* [workaround missing none group support in builtin macros](https://github.com/rust-lang/rust-analyzer/pull/20112)
137190

138191
### Rust Compiler Performance Triage
139192

@@ -144,47 +197,31 @@ If you are an event organizer hoping to expand the reach of your event, please s
144197
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
145198
are the RFCs that were approved for implementation this week:
146199

147-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
148-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
149-
<!-- * []() -->
150-
151-
<!--
152-
### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
153-
<!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
154-
<!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
155-
-->
200+
* [Declarative `macro_rules!` derive macros](https://github.com/rust-lang/rfcs/pull/3698)
201+
* [Declarative `macro_rules!` attribute macros](https://github.com/rust-lang/rfcs/pull/3697)
156202

157203
### Final Comment Period
158204

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

162-
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
163-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
164-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
165-
<!-- * [disposition: ] []() -->
166-
167208
#### Tracking Issues & PRs
168-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
169-
<!-- or if none entered FCP this week, use: -->
170-
<!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
171-
<!-- * [disposition: ] []() -->
172-
173209
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
174-
175-
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
176-
177-
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
210+
* [Tracking Issue for `const_slice_reverse`](https://github.com/rust-lang/rust/issues/135120)
178211

179212
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
213+
* [&str and &[u8] have the same layout](https://github.com/rust-lang/reference/pull/1848)
180214

181-
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
215+
*No Items entered Final Comment Period this week for
216+
[Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period),
217+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
218+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+) or
219+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
220+
221+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
182222

183223
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
184-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
185-
<!-- or if there are no new or updated RFCs this week, use: -->
186-
<!-- * *No New or Updated RFCs were created this week.* -->
187-
<!-- * [new|updated] []() -->
224+
* *No New or Updated RFCs were created this week.*
188225

189226
## Upcoming Events
190227

@@ -259,6 +296,8 @@ Rusty Events between 2025-07-09 - 2025-08-06 🦀
259296
* [**Lightning Talks July 2025**](https://www.meetup.com/rust-manchester/events/308085035)
260297
* 2025-07-30 | Amsterdam, NL | [Rust Developers Amsterdam Group](https://www.meetup.com/rust-amsterdam-group/events/)
261298
* [**Rust Meetup @ BlockTech**](https://www.meetup.com/rust-amsterdam-group/events/308548455)
299+
* 2025-07-31 | Augsburg, DE | [Rust Meetup Augsburg](https://rust-augsburg.github.io/meetup)
300+
* [**Rust Meetup #14: Prof. Dr. Claudia Meitinger - Embassy - Möglichkeiten und Herausforderungen im Modul "Interdisciplinary Project"**](https://rust-augsburg.github.io/meetup/Meetup_14.html)
262301

263302
### North America
264303
* 2025-07-03 | Montréal, QC, CA | [Rust Montréal](https://www.meetup.com/rust-montreal/events/)
@@ -312,7 +351,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
312351

313352
# Quote of the Week
314353

315-
<!-- QOTW goes here -->
354+
> You might be asking: why did you rewrite \[...\] in Rust? And yeah, I don’t really have a good reason. It’s a hobby project. Like gardening, but with more segfaults.
355+
356+
[Collin Richards on their blog](https://richardscollin.github.io/tmux-rs/)
357+
358+
Thanks to [robin](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1701) for the suggestion!
316359

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

0 commit comments

Comments
 (0)