Skip to content

Commit 40f148c

Browse files
committed
C/QotW and notable changes
1 parent d24d1cc commit 40f148c

File tree

1 file changed

+134
-3
lines changed

1 file changed

+134
-3
lines changed

draft/2025-02-19-this-week-in-rust.md

Lines changed: 134 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ and just ask the editors to select the category.
5050

5151
## Crate of the Week
5252

53-
<!-- COTW goes here -->
53+
This week's crate is [httpmock](https://crates.io/crates/httpmock), which is quite unsurprisingly a HTTP mocking library for Rust.
54+
55+
Thanks to [Jacob Pratt](https://users.rust-lang.org/t/crate-of-the-week/2704/1409) for the suggestion!
5456

5557
[Please submit your suggestions and votes for next week][submit_crate]!
5658

@@ -109,7 +111,132 @@ If you are an event organizer hoping to expand the reach of your event, please s
109111

110112
## Updates from the Rust Project
111113

112-
<!-- Rust updates go here -->
114+
498 pull requests were [merged in the last week][merged]
115+
116+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-02-11..2025-02-18
117+
118+
* [make `-O` mean `OptLevel::Aggressive`](https://github.com/rust-lang/rust/pull/135439)
119+
* [`rustc_target`: Add the fp16 target feature for AArch32](https://github.com/rust-lang/rust/pull/136813)
120+
* [add x86-sse2 (32bit) ABI that requires SSE2 target feature](https://github.com/rust-lang/rust/pull/137037)
121+
* [add cygwin target](https://github.com/rust-lang/rust/pull/134999)
122+
* [HIR analysis: Remove unnecessary abstraction over list of clauses](https://github.com/rust-lang/rust/pull/137100)
123+
* [AIX: expect `EINVAL` for `pthread_mutex_destroy`](https://github.com/rust-lang/rust/pull/136908)
124+
* [`abi_unsupported_vector_types`: say which type is the problem](https://github.com/rust-lang/rust/pull/137092)
125+
* [`invalid_from_utf8[_unchecked]`: also lint inherent methods](https://github.com/rust-lang/rust/pull/137101)
126+
* [`transmute` should also assume non-null pointers](https://github.com/rust-lang/rust/pull/136735)
127+
* [allow configuring jemalloc per target](https://github.com/rust-lang/rust/pull/137170)
128+
* [cast allocas to default address space](https://github.com/rust-lang/rust/pull/135025)
129+
* [change `swap_nonoverlapping` from lang to library UB](https://github.com/rust-lang/rust/pull/136890)
130+
* [check sig for errors before checking for unconstrained anonymous lifetime](https://github.com/rust-lang/rust/pull/136891)
131+
* [check whole `Unsize` predicate for escaping bound vars](https://github.com/rust-lang/rust/pull/136838)
132+
* [compiler: die immediately instead of handling unknown target codegen](https://github.com/rust-lang/rust/pull/136833)
133+
* [compiler: give `ExternAbi` truly stable `Hash` and `Ord`](https://github.com/rust-lang/rust/pull/136901)
134+
* [compiler: replace `ExternAbi::name` calls with formatters](https://github.com/rust-lang/rust/pull/136900)
135+
* [correctly escape hashtags when running `invalid_rust_codeblocks` lint](https://github.com/rust-lang/rust/pull/136927)
136+
* [debuginfo: set bitwidth appropriately in `enum` variant tags](https://github.com/rust-lang/rust/pull/136895)
137+
* [do not allow attributes on `struct` field rest patterns](https://github.com/rust-lang/rust/pull/136490)
138+
* [eagerly prove WF when resolving fully qualified paths](https://github.com/rust-lang/rust/pull/136928)
139+
* [emit MIR for each bit with on `dont_reset_cast_kind_without_updating_operand`](https://github.com/rust-lang/rust/pull/137007)
140+
* [explain that in paths generics can't be set on both the `enum` and the variant](https://github.com/rust-lang/rust/pull/134981)
141+
* [fix `ensure_monomorphic_enough`](https://github.com/rust-lang/rust/pull/136839)
142+
* [fix const items not being allowed to be called `r#move` or `r#static`](https://github.com/rust-lang/rust/pull/137140)
143+
* [fix diagnostic when using = instead of : in let binding](https://github.com/rust-lang/rust/pull/136869)
144+
* [fix presentation of purely "additive" replacement suggestion parts](https://github.com/rust-lang/rust/pull/136958)
145+
* [i686-linux-android: increase CPU baseline to Pentium 4 (without an actual change](https://github.com/rust-lang/rust/pull/136885)
146+
* [ignore Self in bounds check for associated types with Self:Sized](https://github.com/rust-lang/rust/pull/137097)
147+
* [implement `supertrait_item_shadowing` (v2)](https://github.com/rust-lang/rust/pull/125782) (RFC [#3624](https://rust-lang.github.io/rfcs/3624-supertrait-item-shadowing-v2.html))
148+
* [implement pattern type ffi checks](https://github.com/rust-lang/rust/pull/136193)
149+
* [improve host/cross target checking](https://github.com/rust-lang/rust/pull/136767)
150+
* [in "specify type" suggestion, skip type params that are already known](https://github.com/rust-lang/rust/pull/135965)
151+
* [load all builtin targets at once instead of one by one in check-cfg](https://github.com/rust-lang/rust/pull/137072)
152+
* [made `check_argument_compat` public for use in miri](https://github.com/rust-lang/rust/pull/137056)
153+
* [mark condition/carry bit as clobbered in C-SKY inline assembly](https://github.com/rust-lang/rust/pull/136217)
154+
* [normalize closure instance before eagerly monomorphizing it](https://github.com/rust-lang/rust/pull/137035)
155+
* [overhaul `rustc_middle::limits`](https://github.com/rust-lang/rust/pull/136671)
156+
* [overhaul how contracts are lowered on fn-like bodies](https://github.com/rust-lang/rust/pull/136837)
157+
* [parallel-compiler-related cleanup](https://github.com/rust-lang/rust/pull/136858)
158+
* [properly deeply normalize in the next solver](https://github.com/rust-lang/rust/pull/136074)
159+
* [reject `?Trait` bounds in various places where we unconditionally warned since 1.0](https://github.com/rust-lang/rust/pull/135841)
160+
* [remove SSE ABI from i586-pc-windows-msvc](https://github.com/rust-lang/rust/pull/137149)
161+
* [remove the common prelude module](https://github.com/rust-lang/rust/pull/136886)
162+
* [replace some u64 hashes with Hash64](https://github.com/rust-lang/rust/pull/137095)
163+
* [resolve named regions when reporting type test failures in NLL](https://github.com/rust-lang/rust/pull/136559)
164+
* [rework `name_regions` to not rely on reverse scc graph for non-member-constrain usages](https://github.com/rust-lang/rust/pull/137102)
165+
* [rework rigid alias handling](https://github.com/rust-lang/rust/pull/136863)
166+
* [set both `nuw` and `nsw` in slice size calculation](https://github.com/rust-lang/rust/pull/136575)
167+
* [show supported register classes in error message](https://github.com/rust-lang/rust/pull/136239)
168+
* [try to recover from path sep error in type parsing](https://github.com/rust-lang/rust/pull/136808)
169+
* [unify LLVM version finding logic](https://github.com/rust-lang/rust/pull/136962)
170+
* [use `const_error!` when possible](https://github.com/rust-lang/rust/pull/136844)
171+
* [use a trait to enforce field validity for union fields + `unsafe` fields + `unsafe<>` binder types](https://github.com/rust-lang/rust/pull/136660)
172+
* [use the right binder for rebinding `PolyTraitRef`](https://github.com/rust-lang/rust/pull/136951)
173+
* [valtree performance tuning](https://github.com/rust-lang/rust/pull/136593)
174+
* [miri: apply random float error](https://github.com/rust-lang/miri/pull/4156)
175+
* [miri: remove the build script for miri](https://github.com/rust-lang/miri/pull/4192)
176+
* [stabilize `NonZero::count_ones`](https://github.com/rust-lang/rust/pull/136663)
177+
* [stabilize `const_is_char_boundary` and `const_str_split_at`](https://github.com/rust-lang/rust/pull/134016)
178+
* [stabilize `get_many_mut` as `get_disjoint_mut`](https://github.com/rust-lang/rust/pull/134633)
179+
* [stabilize `target_feature_11`](https://github.com/rust-lang/rust/pull/134090)
180+
* [std: replace the `FromInner` implementation for addresses with private conversion functions](https://github.com/rust-lang/rust/pull/136699)
181+
* [implement `Extend<AsciiChar>` for String](https://github.com/rust-lang/rust/pull/136749)
182+
* [implement `f`{`16`, `32`, `64`, `128`}`::`{`erf`, `erfc`} under `#![feature(float_erf)]`](https://github.com/rust-lang/rust/pull/136324)
183+
* [implement `read*_exact` for `std:io::repeat`](https://github.com/rust-lang/rust/pull/136818)
184+
* [use `slice::fill` in `io::Repeat` implementation](https://github.com/rust-lang/rust/pull/136967)
185+
* [use `tell` for `<File as Seek>::stream_position`](https://github.com/rust-lang/rust/pull/137165)
186+
* [restrict `DerefPure` for `Cow<T>` impl to `T = impl Clone, [impl Clone], str`](https://github.com/rust-lang/rust/pull/137105)
187+
* [forward all default methods for I/O impls](https://github.com/rust-lang/rust/pull/137062)
188+
* [cargo: embedded: Handle more parsing corner cases](https://github.com/rust-lang/cargo/pull/15187)
189+
* [cargo: embedded: Integrate cargo-script logic into main parser](https://github.com/rust-lang/cargo/pull/15168)
190+
* [cargo: implement workspace feature unification](https://github.com/rust-lang/cargo/pull/15157)
191+
* [cargo: util: provide a better error message for invalid SSH URLs](https://github.com/rust-lang/cargo/pull/15185)
192+
* [rustdoc: only apply LTO to rustdoc at stage 2](https://github.com/rust-lang/rust/pull/136586)
193+
* [rustdoc: Move line numbers into the `<code>` directly](https://github.com/rust-lang/rust/pull/136829)
194+
* [rustdoc: improve refdef handling in the unresolved link lint](https://github.com/rust-lang/rust/pull/136363)
195+
* [rustdoc: properly restore search input placeholder](https://github.com/rust-lang/rust/pull/137055)
196+
* [rustdoc: Fixed `Copy Item Path` in rust doc](https://github.com/rust-lang/rust/pull/137068)
197+
* [rustdoc: do more lazy formatting in librustdoc 🦥](https://github.com/rust-lang/rust/pull/136828)
198+
* [rustdoc: nuke `Buffer` abstraction from `librustdoc`, take 2 💣](https://github.com/rust-lang/rust/pull/136784)
199+
* [rustfmt: add option to control trailing zero in floating-point literals](https://github.com/rust-lang/rustfmt/pull/5834)
200+
* [rustfmt: labels on the closure body block can be disappearing](https://github.com/rust-lang/rustfmt/pull/6468)
201+
* [bindgen: distinguish `char16_t`](https://github.com/rust-lang/rust-bindgen/pull/3135)
202+
* [bindgen: report enums in ParseCallbacks](https://github.com/rust-lang/rust-bindgen/pull/3133)
203+
* [clippy: new lint: `manual_contains`](https://github.com/rust-lang/rust-clippy/pull/13817)
204+
* [clippy: new lint: `mem_replace_option_with_some`](https://github.com/rust-lang/rust-clippy/pull/14197)
205+
* [clippy: new lint: `unbuffered_bytes`](https://github.com/rust-lang/rust-clippy/pull/14089)
206+
* [clippy: `declare_interior_mutable_const`, `borrow_interior_mutable_const`: resolve `<T as Trait>::AssocT` projections](https://github.com/rust-lang/rust-clippy/pull/14125)
207+
* [clippy: `doc_link_code`: add check for links with code spans that render weird](https://github.com/rust-lang/rust-clippy/pull/14121)
208+
* [clippy: `just_underscores_and_digits`: fix false positive in error recovery scenario](https://github.com/rust-lang/rust-clippy/pull/14168)
209+
* [clippy: `manual_ok_err`: blockify the replacement of an `else if …`](https://github.com/rust-lang/rust-clippy/pull/14240)
210+
* [clippy: `unnecessary_map_or`: do not consume the comparison value if it does not implement `Copy`](https://github.com/rust-lang/rust-clippy/pull/14207)
211+
* [clippy: `{expect,unwrap}_used`: add options to lint at compilation time](https://github.com/rust-lang/rust-clippy/pull/14200)
212+
* [clippy: add `--allow-no-vcs` to `cargo dev dogfood --fix`](https://github.com/rust-lang/rust-clippy/pull/14227)
213+
* [clippy: add index checks for the slice in `manual_slice_fill`](https://github.com/rust-lang/rust-clippy/pull/14193)
214+
* [clippy: fix `literal_string_with_formatting_args` lint emitted when it should not](https://github.com/rust-lang/rust-clippy/pull/13953)
215+
* [clippy: fix `used_underscore_items` lint uses of foreign functions](https://github.com/rust-lang/rust-clippy/pull/14205)
216+
* [clippy: fix `needless_option_as_deref` FP in trait](https://github.com/rust-lang/rust-clippy/pull/14210)
217+
* [rust-analyzer: add cargo's git checkouts to the list of paths to mark as read-only in vscode](https://github.com/rust-lang/rust-analyzer/pull/19156)
218+
* [rust-analyzer: apply cfg.setTest to json projects](https://github.com/rust-lang/rust-analyzer/pull/19150)
219+
* [rust-analyzer: feat: refactor path lowering and serve a new path diagnostic](https://github.com/rust-lang/rust-analyzer/pull/19127)
220+
* [rust-analyzer: apply adjustments to proper expr when invoking `CoerceMany`](https://github.com/rust-lang/rust-analyzer/pull/19111)
221+
* [rust-analyzer: censor `cfg_attr` for attribute macros](https://github.com/rust-lang/rust-analyzer/pull/19125)
222+
* [rust-analyzer: do not show safety hints for extern items lacking semantics](https://github.com/rust-lang/rust-analyzer/pull/19109)
223+
* [rust-analyzer: don't emit implicit drop inlay hints for macro](https://github.com/rust-lang/rust-analyzer/pull/19117)
224+
* [rust-analyzer: don't show drop hints for other pattern](https://github.com/rust-lang/rust-analyzer/pull/19144)
225+
* [rust-analyzer: fix detection of ref patterns for path patterns](https://github.com/rust-lang/rust-analyzer/pull/19167)
226+
* [rust-analyzer: fix postfix completions inside macros](https://github.com/rust-lang/rust-analyzer/pull/19129)
227+
* [rust-analyzer: fix sorting of runnables](https://github.com/rust-lang/rust-analyzer/pull/19166)
228+
* [rust-analyzer: handle character boundary in search mode](https://github.com/rust-lang/rust-analyzer/pull/18928)
229+
* [rust-analyzer: highlight `extern crate` in doc comments](https://github.com/rust-lang/rust-analyzer/pull/19137)
230+
* [rust-analyzer: improve sort order of runnables](https://github.com/rust-lang/rust-analyzer/pull/19161)
231+
* [rust-analyzer: lower range pattern bounds to expressions](https://github.com/rust-lang/rust-analyzer/pull/18995)
232+
* [rust-analyzer: make `rust-analyzer.files.excludeDirs` work, actually](https://github.com/rust-lang/rust-analyzer/pull/18998)
233+
* [rust-analyzer: propogate error types in mir type projections](https://github.com/rust-lang/rust-analyzer/pull/19143)
234+
* [rust-analyzer: stabilize sort order of `related_tests`](https://github.com/rust-lang/rust-analyzer/pull/19163)
235+
* [rust-analyzer: implement `expand_glob_reexport` assist](https://github.com/rust-lang/rust-analyzer/pull/19158)
236+
* [rust-analyzer: improve error recovery when method-calling a field](https://github.com/rust-lang/rust-analyzer/pull/19148)
237+
* [rust-analyzer: improve error recovery when method-calling an assoc function](https://github.com/rust-lang/rust-analyzer/pull/19160)
238+
* [rust-analyzer: pass `struct` fields to chalk](https://github.com/rust-lang/rust-analyzer/pull/19122)
239+
* [rust-analyzer: simplify `panic_context`](https://github.com/rust-lang/rust-analyzer/pull/19110)
113240

114241
### Rust Compiler Performance Triage
115242

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

301428
# Quote of the Week
302429

303-
<!-- QOTW goes here -->
430+
> I have found that many automated code review tools, including LLMs, catch 10 out of 3 bugs.
431+
432+
[Josh Triplett on r/rust](https://old.reddit.com/r/rust/comments/1ink5qf/niko_matsakis_how_i_learned_to_stop_worrying_and/mcdkg36/)
433+
434+
Despite a lamentable lack of suggestions, llogiq is properly pleased with his choice.
304435

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

0 commit comments

Comments
 (0)