Skip to content

Commit 5dd680c

Browse files
authored
Merge branch 'master' into master
2 parents 7726853 + 2c20a48 commit 5dd680c

File tree

1 file changed

+105
-66
lines changed

1 file changed

+105
-66
lines changed

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

Lines changed: 105 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -39,62 +39,48 @@ and just ask the editors to select the category.
3939
### Newsletters
4040

4141
### Project/Tooling Updates
42-
[Embedded DHT Sensor Library](https://rust-dd.com/post/building-a-rust-library-for-dht11-sensor-a-step-by-step-guide)
42+
* [Embedded DHT Sensor Library](https://rust-dd.com/post/building-a-rust-library-for-dht11-sensor-a-step-by-step-guide)
43+
* [Rust eBooks Nightly: always up-to-date Rust books in EPUB, AZW3, MOBI, PDF](https://artur-sulej.github.io/rust-ebooks/)
44+
* [git-cliff 2.10.0 is released! (a highly customizable changelog generator)](https://git-cliff.org/blog/2.10.0)
45+
* [Nutype 0.6.2](https://github.com/greyblake/nutype/releases/tag/v0.6.2) - supports `derive_unsafe` attribute to derive arbitrary third party traits.
4346

4447
### Observations/Thoughts
4548

4649
### Rust Walkthroughs
47-
[Using ESP32 as a Rust Beginner](https://rust-dd.com/post/introduction-to-embedded-systems-with-rust-a-beginner-s-guide-using-esp32)
50+
* [Using ESP32 as a Rust Beginner](https://rust-dd.com/post/introduction-to-embedded-systems-with-rust-a-beginner-s-guide-using-esp32)
51+
* [The Signal Protocol Explained #2: Implementing the Double Ratchet Algorithm in Rust](https://kerkour.com/signal-protocol-double-ratchet-rust)
52+
* [The Design and Implementation of Extensible Variants for Rust in CGP (Extensible Data Types Part 4)](https://contextgeneric.dev/blog/extensible-datatypes-part-4/)
4853

4954
### Research
5055

5156
### Miscellaneous
5257

58+
* [100 Exercises to Learn Rust: RustRover Edition](https://blog.jetbrains.com/education/2025/07/28/rust-exercises-rustrover/)
59+
5360
## Crate of the Week
5461

55-
<!-- COTW goes here -->
62+
This week's crate is [qop](https://github.com/cchexcode/qop), a standalone SQL migration tool.
63+
64+
Thanks to [Alexander Weber](https://users.rust-lang.org/t/crate-of-the-week/2704/1454) for the self-suggestion!
5665

5766
[Please submit your suggestions and votes for next week][submit_crate]!
5867

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

6170
## Calls for Testing
62-
An important step for feature implementation is for people to experiment with the
71+
An important step for RFC implementation is for people to experiment with the
6372
implementation and give feedback, especially before stabilization.
6473

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

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

9683
[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.
97-
-->
9884

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

@@ -134,58 +120,111 @@ If you are an event organizer hoping to expand the reach of your event, please s
134120

135121
## Updates from the Rust Project
136122

137-
<!-- Rust updates go here -->
123+
428 pull requests were [merged in the last week][merged]
124+
125+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-07-22..2025-07-29
126+
127+
#### Compiler
128+
* [avoid unnecessary `new_adt`/`new_fn_def` calls](https://github.com/rust-lang/rust/pull/144425)
129+
* [`loop_match`: suggest extracting to a `const` item](https://github.com/rust-lang/rust/pull/143585)
130+
131+
#### Library
132+
* [add `Rev::into_inner`](https://github.com/rust-lang/rust/pull/144278)
133+
* [str: mark unstable `round_char_boundary` feature functions as const](https://github.com/rust-lang/rust/pull/144472)
134+
135+
#### Cargo
136+
* [schema: Expose `IndexPackage`, the description of a package within a Registry Index](https://github.com/rust-lang/cargo/pull/15770)
137+
* [allow using Cargo-as-a-library with gix's reqwest backend](https://github.com/rust-lang/cargo/pull/15653)
138+
* [fix: `no-proc-macro` is overridden by subsequent edges](https://github.com/rust-lang/cargo/pull/15764)
139+
* [timings: make graphs scalable to user's window](https://github.com/rust-lang/cargo/pull/15766)
140+
* [use `gix` for `cargo package`](https://github.com/rust-lang/cargo/pull/15534)
141+
142+
#### Rustdoc
143+
* [rustdoc: add ways of collapsing all impl blocks](https://github.com/rust-lang/rust/pull/141663)
144+
145+
#### Clippy
146+
* [`cast-lossless` should not suggest when casting type is from macro input](https://github.com/rust-lang/rust-clippy/pull/15358)
147+
* [correct help message for `arc_with_non_send_sync`](https://github.com/rust-lang/rust-clippy/pull/15332)
148+
* [detect prefixed attributes as duplicated](https://github.com/rust-lang/rust-clippy/pull/15212)
149+
* [fix `empty_structs_with_brackets` suggesting wrongly on generics](https://github.com/rust-lang/rust-clippy/pull/15355)
150+
* [fix `if_then_some_else_none` false positive when require type coercion](https://github.com/rust-lang/rust-clippy/pull/15267)
151+
* [fix `ip_constant` when call wrapped in extra parens](https://github.com/rust-lang/rust-clippy/pull/15339)
152+
* [fix `let_unit_value` suggesting wrongly for format macros](https://github.com/rust-lang/rust-clippy/pull/15085)
153+
* [fix `match_single_binding` wrongly handling scope](https://github.com/rust-lang/rust-clippy/pull/15060)
154+
* [fix `module_name_repetitions` false positive on exported macros](https://github.com/rust-lang/rust-clippy/pull/15319)
155+
* [fix `unused_async` false positive on function with `todo!`](https://github.com/rust-lang/rust-clippy/pull/15308)
156+
* [`unnecessary_map_or`: don't add parens if the parent expr…](https://github.com/rust-lang/rust-clippy/pull/15345)
157+
158+
#### Rust-Analyzer
159+
* [add ide-assist: `generate_impl_trait` for `generate_impl`](https://github.com/rust-lang/rust-analyzer/pull/19938)
160+
* [change rename self to parameter use `Self` type](https://github.com/rust-lang/rust-analyzer/pull/20285)
161+
* [fix `generate_trait_from_impl` whitespace after vis](https://github.com/rust-lang/rust-analyzer/pull/20297)
162+
* [fix fold doc comment for multiline param list fn](https://github.com/rust-lang/rust-analyzer/pull/20302)
163+
* [consider all produced artifacts for proc-macro dylib search](https://github.com/rust-lang/rust-analyzer/pull/20319)
164+
* [fix incorrect build script version check](https://github.com/rust-lang/rust-analyzer/pull/20317)
165+
* [fix runnables extra env not substituting env vars](https://github.com/rust-lang/rust-analyzer/pull/20313)
166+
* [ignore `Destruct` bounds again](https://github.com/rust-lang/rust-analyzer/pull/20318)
167+
* [parse `for<'a> [const]`](https://github.com/rust-lang/rust-analyzer/pull/20281)
168+
* [use `TempDir` for copied lockfiles](https://github.com/rust-lang/rust-analyzer/pull/20290)
138169

139170
### Rust Compiler Performance Triage
140171

141-
<!-- Perf results go here -->
172+
A week with lots of mixed results, including a few benchmarks that appear to be
173+
newly bimodal, which made some of the results look closer to noise than signal.
174+
Overall, however, the week ended as a slight improvement.
175+
176+
Triage done by **@simulacrum**.
177+
Revision range: [3f9f20f7..e3514bde](https://perf.rust-lang.org/?start=3f9f20f71dd945fe7d044e274094a53c90788269&end=e3514bde96d2d13586337a48db77fa64b850d249&absolute=false&stat=instructions%3Au)
178+
179+
1 Regressions, 2 Improvements, 9 Mixed; 2 of them in rollups
180+
38 artifact comparisons made in total
181+
182+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2025/2025-07-28.md)
142183

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

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

148-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
149-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
150-
<!-- * []() -->
151-
152-
<!--
153-
### [Approved Major Change Proposals (MCP)](https://forge.rust-lang.org/compiler/mcp.html)
154-
<!~~ MCPs occur infrequently, so this section is commented out by default. ~~>
155-
<!~~ MCPs which have been approved or rejected this week go here, use this format: * [major change accepted|rejected] [Topic](URL) ~~>
156-
-->
189+
* *No RFCs were approved this week.*
157190

158191
### Final Comment Period
159192

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

163-
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
164-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
165-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
166-
<!-- * [disposition: ] []() -->
167-
168196
#### Tracking Issues & PRs
169-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
170-
<!-- or if none entered FCP this week, use: -->
171-
<!-- * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
172-
<!-- * [disposition: ] []() -->
173-
174197
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
175-
176-
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
177-
178-
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
179-
180-
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
181-
182-
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
198+
* [Allow the global allocator to use thread-local storage and std::thread::current()](https://github.com/rust-lang/rust/pull/144465)
199+
* [Tracking Issue for str::{floor, ceil}\_char\_boundary](https://github.com/rust-lang/rust/issues/93743)
200+
* [Check coroutine upvars in dtorck constraint](https://github.com/rust-lang/rust/pull/144156)
201+
* [Tracking Issue for arithmetic and certain bitwise ops on `AtomicPtr`](https://github.com/rust-lang/rust/issues/99108)
202+
* [Add lint against dangling pointers from local variables](https://github.com/rust-lang/rust/pull/144322)
203+
* [`apply_member_constraints`: fix placeholder check](https://github.com/rust-lang/rust/pull/142071)
204+
* [Remove the `#[no_sanitize]` attribute in favor of `#[sanitize(xyz = "on|off")`]](https://github.com/rust-lang/rust/pull/142681)
205+
* [Port `#[should_panic]` to the new attribute parsing infrastructure](https://github.com/rust-lang/rust/pull/143808)
206+
* [emit `StorageLive` and schedule `StorageDead` for `let` - `else`'s bindings after matching](https://github.com/rust-lang/rust/pull/143028)
207+
* [lower pattern bindings in the order they're written and base drop order on primary bindings' order](https://github.com/rust-lang/rust/pull/143764)
208+
* [Upgrade semicolon_in_expressions_from_macros from warn to deny](https://github.com/rust-lang/rust/pull/144369)
209+
* [Stabilize const TypeId::of](https://github.com/rust-lang/rust/pull/144133)
210+
* [Mark all deprecation lints in name resolution as deny-by-default and report-in-deps](https://github.com/rust-lang/rust/pull/143929)
211+
* [Tracking Issue for arithmetic that panics on overflow ( `strict_*` operations)](https://github.com/rust-lang/rust/issues/118260)
212+
* [[rustdoc] Display unsafe attrs with edition 2024 `unsafe()` wrappers.](https://github.com/rust-lang/rust/pull/143662)
213+
214+
##### [Rust RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period),
215+
* [Demote `x86_64-apple-darwin` from Tier 1 to Tier 2 with host tools](https://github.com/rust-lang/rfcs/pull/3841)
216+
* [RFC: enable `derive(From)` for single-field structs](https://github.com/rust-lang/rfcs/pull/3809)
217+
218+
*No Items entered Final Comment Period this week for
219+
[Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc),
220+
[Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+),
221+
[Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc) or
222+
[Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc).*
223+
224+
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
183225

184226
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
185-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
186-
<!-- or if there are no new or updated RFCs this week, use: -->
187-
<!-- * *No New or Updated RFCs were created this week.* -->
188-
<!-- * [new|updated] []() -->
227+
* [new] [Demote x86\_64-apple-darwin from Tier 1 to Tier 2 with host tools](https://github.com/rust-lang/rfcs/pull/3841)
189228

190229
## Upcoming Events
191230

@@ -231,10 +270,6 @@ Rusty Events between 2025-07-30 - 2025-08-27 🦀
231270
* 2025-09-02 - 2025-09-05 | Hybrid (Seattle, WA, US) | [RustConf](https://rustconf.com/)
232271
* [**RustConf 2025**](https://rustconf.com/)
233272

234-
### Africa
235-
* 2025-07-23 - 2025-08-21 | Ikot Akpaden, Mkpat Enin, Akwa Ibom State, NG | [Rust Nigeria](https://x.com/RustNigeria)
236-
* [**Rust Developers Training Program: Akwa Ibom State University. 21 July - 21 Aug 2025.**](https://docs.google.com/forms/d/e/1FAIpQLScQXHuFAw_Z11q0W0FZSVwQMyPSa6ReT3tW7ZUtoGbcLPBxkA/viewform)
237-
238273
### Europe
239274
* 2025-07-30 | Amsterdam, NL | [Rust Developers Amsterdam Group](https://www.meetup.com/rust-amsterdam-group)
240275
* [**Rust Meetup @ BlockTech**](https://www.meetup.com/rust-amsterdam-group/events/308548455)
@@ -331,7 +366,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
331366

332367
# Quote of the Week
333368

334-
<!-- QOTW goes here -->
369+
> The same compute logic runs on all targets, written entirely in regular Rust. No shader or kernel languages are used.
370+
371+
[Christian Legnitto on the rust-gpu blog](https://rust-gpu.github.io/blog/2025/07/25/rust-on-every-gpu/) showing off a demo compiling Rust to all major GPU platforms + web.
372+
373+
Despite a lack of suggestions, llogiq is remarkably pleased with his choice.
335374

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

0 commit comments

Comments
 (0)