Skip to content

Commit 35dd6a6

Browse files
Merge pull request #6147 from llogiq/twir-575
C/QotW and notable changes
2 parents 90ddf0b + b878074 commit 35dd6a6

File tree

1 file changed

+118
-3
lines changed

1 file changed

+118
-3
lines changed

draft/2024-11-27-this-week-in-rust.md

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

4949
## Crate of the Week
5050

51-
<!-- COTW goes here -->
51+
This week's crate is [postcard](https://docs.rs/postcard), a battle-tested, well-documented `#[no_std]` compatible serializer/deserializer geared towards use in embedded devices.
52+
53+
Thanks to [Reto Trappitsch](https://users.rust-lang.org/t/crate-of-the-week/2704/1377) for the suggestion!
5254

5355
[Please submit your suggestions and votes for next week][submit_crate]!
5456

@@ -111,7 +113,106 @@ If you are an event organizer hoping to expand the reach of your event, please s
111113

112114
## Updates from the Rust Project
113115

114-
<!-- Rust updates go here -->
116+
405 pull requests were [merged in the last week][merged]
117+
118+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-11-19..2024-11-26
119+
120+
* [`lints_that_dont_need_to_run`: never skip future-compat-reported lints](https://github.com/rust-lang/rust/pull/133108)
121+
* [aarch64 softfloat target: always pass floats in int registers](https://github.com/rust-lang/rust/pull/133102)
122+
* [account for `wasm32v1-none` when exporting TLS symbols](https://github.com/rust-lang/rust/pull/133244)
123+
* [add `visit` methods to ast nodes that already have `walk`s on ast visitors](https://github.com/rust-lang/rust/pull/133188)
124+
* [add specific diagnostic for using `macro_rules` macro as attribute/derive](https://github.com/rust-lang/rust/pull/132949)
125+
* [add visits to nodes that already have `flat_maps` in `ast::MutVisitor`](https://github.com/rust-lang/rust/pull/133153)
126+
* [allow disabling ASan instrumentation for globals](https://github.com/rust-lang/rust/pull/127483)
127+
* [bail in effects in old solver if self ty is ty var](https://github.com/rust-lang/rust/pull/133323)
128+
* [btree: don't leak value if destructor of key panics](https://github.com/rust-lang/rust/pull/132597)
129+
* [constify the `Deref`/`DerefMut` traits, too](https://github.com/rust-lang/rust/pull/133260)
130+
* [continue `ParamEnv` to `TypingEnv` transition](https://github.com/rust-lang/rust/pull/133212)
131+
* [correct the tier listing of `wasm32-wasip2`](https://github.com/rust-lang/rust/pull/133213)
132+
* [default-enable `llvm_tools_enabled` when no `config.toml` is present](https://github.com/rust-lang/rust/pull/133207)
133+
* [distinguish overflow and unimplemented in `Step::steps_between`](https://github.com/rust-lang/rust/pull/130867)
134+
* [don't allow `-Zunstable-options` to take a value](https://github.com/rust-lang/rust/pull/133159)
135+
* [drop debug info instead of panicking if we exceed LLVM's capability to represent it](https://github.com/rust-lang/rust/pull/133194)
136+
* [emscripten: link with `-sWASM_BIGINT`](https://github.com/rust-lang/rust/pull/131736)
137+
* [fix LLVM target triple for `x86_64-win7-windows-msvc`](https://github.com/rust-lang/rust/pull/133239)
138+
* [fix asm goto with outputs and move it to a separate feature gate](https://github.com/rust-lang/rust/pull/131523)
139+
* [fix closure arg extraction in `extract_callable_info`, generalize it to async closures](https://github.com/rust-lang/rust/pull/132489)
140+
* [implement `~const Destruct` effect goal in the new solver](https://github.com/rust-lang/rust/pull/132329)
141+
* [implement `~const Fn` trait goal in the new solver](https://github.com/rust-lang/rust/pull/133216)
142+
* [implement `~const` item bounds in RPIT](https://github.com/rust-lang/rust/pull/133218)
143+
* [implement the unsafe-fields RFC](https://github.com/rust-lang/rust/pull/132915)
144+
* [make `PointerLike` opt-in instead of built-in](https://github.com/rust-lang/rust/pull/133226)
145+
* [make asm label blocks safe context](https://github.com/rust-lang/rust/pull/131544)
146+
* [merge `-Zhir-stats` into `-Zinput-stats`](https://github.com/rust-lang/rust/pull/133023)
147+
* [point at `const` definition when used instead of a binding in a `let` statement](https://github.com/rust-lang/rust/pull/132708)
148+
* [pretty print async fn sugar in opaques and trait bounds](https://github.com/rust-lang/rust/pull/132911)
149+
* [reduce false positives of tail-expr-drop-order from consumed values (attempt #2)](https://github.com/rust-lang/rust/pull/131326)
150+
* [refactor `where` predicates, and reserve for attributes support](https://github.com/rust-lang/rust/pull/132894)
151+
* [remove `is_trivially_const_drop`](https://github.com/rust-lang/rust/pull/133371)
152+
* [remove legacy bitcode for iOS](https://github.com/rust-lang/rust/pull/133297)
153+
* [report the `unexpected_cfgs` lint in external macros](https://github.com/rust-lang/rust/pull/132577)
154+
* [rustc: fail fast when compiling a source file larger than 4 GiB](https://github.com/rust-lang/rust/pull/132791)
155+
* [show `abi_unsupported_vector_types` lint in future breakage reports](https://github.com/rust-lang/rust/pull/133374)
156+
* [stop being so bail-y in candidate assembly](https://github.com/rust-lang/rust/pull/132090)
157+
* [store resolution for self and crate root module segments](https://github.com/rust-lang/rust/pull/132207)
158+
* [unstable feature usage metrics](https://github.com/rust-lang/rust/pull/130236)
159+
* [use `ConstArgKind::Path` for all single-segment paths, not just params under `min_generic_const_args`](https://github.com/rust-lang/rust/pull/131081)
160+
* [use `confstr(_CS_DARWIN_USER_TEMP_DIR, ...)` as a `TMPDIR` fallback on Darwin](https://github.com/rust-lang/rust/pull/131505)
161+
* [use arc4random of libc for RTEMS target](https://github.com/rust-lang/rust/pull/133313)
162+
* [use attributes for `dangling_pointers_from_temporaries` lint](https://github.com/rust-lang/rust/pull/132732)
163+
* [interpret: do not ICE when a promoted fails with OOM](https://github.com/rust-lang/rust/pull/133164)
164+
* [miri: added epoll and eventfd for Android](https://github.com/rust-lang/miri/pull/4016)
165+
* [miri: eventfd: comment tweaks](https://github.com/rust-lang/miri/pull/4047)
166+
* [miri: fill out windows io error mapping table](https://github.com/rust-lang/miri/pull/4046)
167+
* [miri: follow-up on #4052, making a miri evaluation context fn for `strerror_r`](https://github.com/rust-lang/miri/pull/4054)
168+
* [miri: implement square root without relying on host floats](https://github.com/rust-lang/miri/pull/4026)
169+
* [miri: refactor `AnonSocket::read/write` for blocking socketpair](https://github.com/rust-lang/miri/pull/4037)
170+
* [miri: simplify thread blocking tests](https://github.com/rust-lang/miri/pull/4059)
171+
* [miri: sysconf adding few more constants](https://github.com/rust-lang/miri/pull/4053)
172+
* [miri: sysconf interception fix for solarish systems](https://github.com/rust-lang/miri/pull/4052)
173+
* [miri: trophy case: add `RwLock::downgrade` bug](https://github.com/rust-lang/miri/pull/4042)
174+
* [miri: use `PathBuf` APIs to correctly do some path manipulation cross-platform](https://github.com/rust-lang/miri/pull/4061)
175+
* [resolve tweaks](https://github.com/rust-lang/rust/pull/132761)
176+
* [finish `Reveal` removal](https://github.com/rust-lang/rust/pull/133242)
177+
* [stabilize the 2024 edition](https://github.com/rust-lang/rust/pull/133349)
178+
* [stabilize `Ipv6Addr::is_unique_local` and `Ipv6Addr::is_unicast_link_local`](https://github.com/rust-lang/rust/pull/129238)
179+
* [stabilize `const_float_methods`](https://github.com/rust-lang/rust/pull/133389)
180+
* [stabilize `const_pin_2`](https://github.com/rust-lang/rust/pull/131904)
181+
* [minimally constify `Add`](https://github.com/rust-lang/rust/pull/133237)
182+
* [mark `<[T; N]>::as_mut_slice` with the `const` specifier](https://github.com/rust-lang/rust/pull/133332)
183+
* [mark `get_mut` and `set_position` in `std::io::Cursor` as const](https://github.com/rust-lang/rust/pull/130800)
184+
* [reduce integer `Display` implementation size](https://github.com/rust-lang/rust/pull/133247)
185+
* [std: allow after-main use of synchronization primitives](https://github.com/rust-lang/rust/pull/132730)
186+
* [implement `OsString::truncate`](https://github.com/rust-lang/rust/pull/133264)
187+
* [add `AsyncFn*` to the prelude in all editions](https://github.com/rust-lang/rust/pull/132611)
188+
* [add `BorrowedBuf::into_filled{,_mut}` methods to allow returning buffer with original lifetime](https://github.com/rust-lang/rust/pull/132533)
189+
* [add `std::thread::add_spawn_hook`](https://github.com/rust-lang/rust/pull/125405)
190+
* [add `vec_deque::Iter::as_slices` and friends](https://github.com/rust-lang/rust/pull/123947)
191+
* [support `each_ref` and `each_mut` in `[T; N]` in constant expressions](https://github.com/rust-lang/rust/pull/133288)
192+
* [support input/output in vector registers of s390x inline assembly (under `asm_experimental_reg` feature)](https://github.com/rust-lang/rust/pull/131664)
193+
* [support s390x z13 vector ABI](https://github.com/rust-lang/rust/pull/131586)
194+
* [uefi: process: add args support](https://github.com/rust-lang/rust/pull/129838)
195+
* [hashbrown: release v0.15.2](https://github.com/rust-lang/hashbrown/pull/587)
196+
* [cargo: `test(rustflags)`: Verify -Cmetadata directly, not through -Cextra-filename](https://github.com/rust-lang/cargo/pull/14846)
197+
* [cargo: allow registries to omit empty/default fields in JSON](https://github.com/rust-lang/cargo/pull/14838)
198+
* [cargo: check build target supports std when building with -Zbuild-std=std](https://github.com/rust-lang/cargo/pull/14183)
199+
* [cargo: docs for optional registry JSON fields](https://github.com/rust-lang/cargo/pull/14839)
200+
* [cargo: feat: stabilize Edition 2024](https://github.com/rust-lang/cargo/pull/14828)
201+
* [cargo: improve error handling when PathSource is relative](https://github.com/rust-lang/cargo/pull/14854)
202+
* [cargo: test: address test output nondeterminism](https://github.com/rust-lang/cargo/pull/14855)
203+
* [cargo: test: switch from `'exec_with_output'` to 'run'](https://github.com/rust-lang/cargo/pull/14848)
204+
* [rustdoc: do not call `to_string,` it's already impl Display](https://github.com/rust-lang/rust/pull/133398)
205+
* [bindgen: add `raw_ref_macros` feature](https://github.com/rust-lang/rust-bindgen/pull/2988)
206+
* [clippy: add new lint `doc_include_without_cfg`](https://github.com/rust-lang/rust-clippy/pull/13625)
207+
* [clippy: add note about caveat for `cfg(doc)`](https://github.com/rust-lang/rust-clippy/pull/13724)
208+
* [clippy: don't consider lifetimes in bounded types unused (fix `extra_unused_lifetimes` FP)](https://github.com/rust-lang/rust-clippy/pull/13583)
209+
* [clippy: sync and Release automation](https://github.com/rust-lang/rust-clippy/pull/13694)
210+
* [clippy: use a better message for `unnecessary_map_or` lint](https://github.com/rust-lang/rust-clippy/pull/13708)
211+
* [rust-analyzer: convert `add_braces` to SyntaxFactory SyntaxEditor abstraction](https://github.com/rust-lang/rust-analyzer/pull/18485)
212+
* [rust-analyzer: use snippet placeholders for generated match arms](https://github.com/rust-lang/rust-analyzer/pull/18459)
213+
* [rust-analyzer: fix a stack overflow when computing the sizedness of a `struct` that includes itself as the tail field](https://github.com/rust-lang/rust-analyzer/pull/18559)
214+
* [rust-analyzer: improve selection handling for the `merge_match_arms` assist](https://github.com/rust-lang/rust-analyzer/pull/18529)
215+
* [rust-analyzer: migrate `reorder_impl_items` Assist to Use `SyntaxFactory`](https://github.com/rust-lang/rust-analyzer/pull/18521)
115216

116217
### Rust Compiler Performance Triage
117218

@@ -339,7 +440,21 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
339440

340441
# Quote of the Week
341442

342-
<!-- QOTW goes here -->
443+
> Will never stop being positively surprised by clippy
444+
>
445+
> ```text
446+
> error: hypothenuse can be computed more accurately:
447+
> --> src/main.rs:835:5
448+
> |
449+
> 835 | (width * width + height * height).sqrt() / diag
450+
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `width.hypot(height)`
451+
> |
452+
> help: for further information, visit https://rust-lang.github.io/rust-clippy/master/index.html#imprecise_flops
453+
> ```
454+
455+
- [Manos Pitsidianakis (and rust-clippy) on Mastodon](https://chaos.social/@epilys/113538172289599584)
456+
457+
llogiq is quite self-appreciative regarding [his suggestion](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1633).
343458
344459
[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)
345460

0 commit comments

Comments
 (0)