Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 100 additions & 3 deletions draft/2024-10-23-this-week-in-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ and just ask the editors to select the category.

## Crate of the Week

<!-- COTW goes here -->
This week's crate is [trait-gen](https://crates.io/crates/trait-gen), an attribute macro to generate the trait implementations for several types without needing custom declarative macros, code repetition, or blanket implementations.

Thanks to [Luke Peterson](https://users.rust-lang.org/t/crate-of-the-week/2704/1358) for the suggestion!

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

Expand Down Expand Up @@ -100,7 +102,98 @@ If you are an event organizer hoping to expand the reach of your event, please s

## Updates from the Rust Project

<!-- Rust updates go here -->
464 pull requests were [merged in the last week][merged]

[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-10-15..2024-10-22

* [make `rustc_abi` compile on stable again](https://github.com/rust-lang/rust/pull/131997)
* [`optimize` attribute applied to things other than methods/functions/c…](https://github.com/rust-lang/rust/pull/131814)
* [`rust_for_linux: -Zregparm=<N>` commandline flag for X86](https://github.com/rust-lang/rust/pull/130432)
* [`rustc_llvm`: Fix flattened CLI args](https://github.com/rust-lang/rust/pull/131805)
* [add `&pin (mut|const) T` type position sugar](https://github.com/rust-lang/rust/pull/130635)
* [add getentropy for RTEMS](https://github.com/rust-lang/rust/pull/131774)
* [added more scenarios where comma to be removed in the function arg](https://github.com/rust-lang/rust/pull/126588)
* [allow `#[deny]` inside `#[forbid]` as a no-op](https://github.com/rust-lang/rust/pull/121560)
* [allow dropping dyn principal](https://github.com/rust-lang/rust/pull/131857)
* [always specify `llvm_abiname` for RISC-V targets](https://github.com/rust-lang/rust/pull/131807)
* [autodiff Upstreaming - enzyme frontend](https://github.com/rust-lang/rust/pull/129458)
* [change orphan hint from "only" to "any uncovered type inside..."](https://github.com/rust-lang/rust/pull/128391)
* [check for filecheck directives in files marked `skip-filecheck`](https://github.com/rust-lang/rust/pull/131927)
* [compiler: adopt rust-analyzer impls for `LayoutCalculatorError`](https://github.com/rust-lang/rust/pull/131942)
* [compiler: error on layout of enums with invalid reprs](https://github.com/rust-lang/rust/pull/131843)
* [compiler: use LLVM's Comdat support](https://github.com/rust-lang/rust/pull/131876)
* [continue to get rid of `ty::Const::{try_}eval*`](https://github.com/rust-lang/rust/pull/130950)
* [coverage: make counter creation handle node/edge counters more uniformly](https://github.com/rust-lang/rust/pull/131918)
* [default to the medium code model on OpenHarmony LoongArch target](https://github.com/rust-lang/rust/pull/131874)
* [delay ambiguous intra-doc link resolution after `Cache` has been populated](https://github.com/rust-lang/rust/pull/131691)
* [do not run test where it cannot run](https://github.com/rust-lang/rust/pull/131835)
* [don't check unsize goal in MIR validation when opaques remain](https://github.com/rust-lang/rust/pull/130989)
* [don't report `on_unimplemented` message for negative traits](https://github.com/rust-lang/rust/pull/131701)
* [don't report bivariance error when nesting a `struct` with field errors into another `struct`](https://github.com/rust-lang/rust/pull/131754)
* [dont ICE when computing coverage of synthetic async closure body](https://github.com/rust-lang/rust/pull/131802)
* [dont consider predicates that may hold as impossible in `is_impossible_associated_item`](https://github.com/rust-lang/rust/pull/131840)
* [enable XRay instrumentation for LoongArch Linux targets](https://github.com/rust-lang/rust/pull/131818)
* [fix coherence error for very large tuples™](https://github.com/rust-lang/rust/pull/132001)
* [fix range misleading field access](https://github.com/rust-lang/rust/pull/131537)
* [handle gracefully true/false in `cfg(target(..))` compact](https://github.com/rust-lang/rust/pull/131771)
* [implement edition 2024 match ergonomics restrictions](https://github.com/rust-lang/rust/pull/131381)
* [make `unsupported_calling_conventions` a hard error](https://github.com/rust-lang/rust/pull/129935)
* [make destructors on `extern "C"` frames to be executed](https://github.com/rust-lang/rust/pull/129582)
* [make some float methods unstable `const fn`](https://github.com/rust-lang/rust/pull/130568)
* [make sure that outer opaques capture inner opaques's lifetimes even with precise capturing syntax](https://github.com/rust-lang/rust/pull/131789)
* [never emit `vptr` for empty/auto traits](https://github.com/rust-lang/rust/pull/131864)
* [register `src/tools/unicode-table-generator` as a runnable tool](https://github.com/rust-lang/rust/pull/131647)
* [remove invalid help diagnostics for const pointer](https://github.com/rust-lang/rust/pull/127675)
* [return values larger than 2 registers using a return area pointer](https://github.com/rust-lang/rust/pull/131211)
* [setting up indirect access to external data for loongarch64-linux-{musl,ohos}](https://github.com/rust-lang/rust/pull/131583)
* [try to improve error messages involving aliases in the solver](https://github.com/rust-lang/rust/pull/131699)
* [warn less about non-exhaustive in ffi](https://github.com/rust-lang/rust/pull/116863)
* [miri: `epoll_ctl`: throw unsupported error on unsupported opcode](https://github.com/rust-lang/miri/pull/3982)
* [miri: android: added support for prctl handling thread names](https://github.com/rust-lang/miri/pull/3899)
* [miri: improve support for `f16` and `f128`](https://github.com/rust-lang/miri/pull/3977)
* [add fast-path when computing the default visibility](https://github.com/rust-lang/rust/pull/131686)
* [use `ThinVec` for PredicateObligation storage](https://github.com/rust-lang/rust/pull/131422)
* [finish stabilization of `result_ffi_guarantees`](https://github.com/rust-lang/rust/pull/130628)
* [stabilize Strict Provenance and Exposed Provenance APIs](https://github.com/rust-lang/rust/pull/130350)
* [stabilize `-Znext-solver=coherence` again](https://github.com/rust-lang/rust/pull/130654)
* [add `from_ref` and `from_mut` constructors to `core::ptr::NonNull`](https://github.com/rust-lang/rust/pull/130822)
* [add `must_use` to `CommandExt::exec`](https://github.com/rust-lang/rust/pull/131833)
* [avoid use imports in `thread_local_inner!`](https://github.com/rust-lang/rust/pull/131866)
* [mark the unstable `LazyCell::into_inner` const](https://github.com/rust-lang/rust/pull/131712)
* [optimize `Box::default` and `Arc::default` to construct more types in place](https://github.com/rust-lang/rust/pull/131460)
* [optimize str.replace](https://github.com/rust-lang/rust/pull/130223)
* [partially stabilize `const_pin`](https://github.com/rust-lang/rust/pull/130136)
* [refactor some `core::fmt` macros](https://github.com/rust-lang/rust/pull/131730)
* [avoid superfluous UB checks in `IndexRange`](https://github.com/rust-lang/rust/pull/131572)
* [relax a memory order in `once_box`](https://github.com/rust-lang/rust/pull/131746)
* [speedup directory traversal on windows](https://github.com/rust-lang/rust/pull/131972)
* [std: uefi: add basic Env variables](https://github.com/rust-lang/rust/pull/127462)
* [uefi: implement getcwd and chdir](https://github.com/rust-lang/rust/pull/129794)
* [cargo: registry: HttpRegistry `block_until_ready` returns early when work is still pending](https://github.com/rust-lang/cargo/pull/14694)
* [cargo: resolver: avoid cloning when iterating using RcVecIter](https://github.com/rust-lang/cargo/pull/14690)
* [cargo: stabilize MSRV-aware resolver config](https://github.com/rust-lang/cargo/pull/14639)
* [rustdoc-json-types: introduce rustc-hash feature](https://github.com/rust-lang/rust/pull/131936)
* [rustdoc-json-types: mark simple enums as copy](https://github.com/rust-lang/rust/pull/131976)
* [rustdoc: switch from FxHash to sha256 for static file hashing](https://github.com/rust-lang/rust/pull/131908)
* [rustfmt `for<'a> async` correctly](https://github.com/rust-lang/rust/pull/131657)
* [rustfmt: `compile_rustfmt` rewrite](https://github.com/rust-lang/rustfmt/pull/6275)
* [rustfmt: apply 2024 version sort algorithm to mods](https://github.com/rust-lang/rustfmt/pull/6368)
* [rustfmt: defer changes for zero argument functions until `style_edition=2027`](https://github.com/rust-lang/rustfmt/pull/6362)
* [clippy: add lint for unnecessary lifetime bounded `&str` return](https://github.com/rust-lang/rust-clippy/pull/13395)
* [clippy: allow to go through clippy lints page without javascript](https://github.com/rust-lang/rust-clippy/pull/13539)
* [clippy: change the category of `manual_is_power_of_two` to `pedantic`](https://github.com/rust-lang/rust-clippy/pull/13553)
* [clippy: stop linting `manual_bits` in any macro invocation](https://github.com/rust-lang/rust-clippy/pull/13564)
* [rust-analyzer: add wrap/unwrap return type in Option](https://github.com/rust-lang/rust-analyzer/pull/18294)
* [rust-analyzer: clamp `Position::character` to line length](https://github.com/rust-lang/rust-analyzer/pull/18243)
* [rust-analyzer: do not consider match/let/ref of place that evaluates to ! to diverge, disallow coercions from them too](https://github.com/rust-lang/rust-analyzer/pull/18278)
* [rust-analyzer: better completions for extern blocks](https://github.com/rust-lang/rust-analyzer/pull/18360)
* [rust-analyzer: goto definition on range operators](https://github.com/rust-lang/rust-analyzer/pull/18362)
* [rust-analyzer: initial support for `safe_kw` in extern blocks](https://github.com/rust-lang/rust-analyzer/pull/18350)
* [rust-analyzer: support initializeStopped setting](https://github.com/rust-lang/rust-analyzer/pull/18359)
* [rust-analyzer: fix status bar message not being marked markdown](https://github.com/rust-lang/rust-analyzer/pull/18366)
* [rust-analyzer: classify `safe` as a contextual keyword](https://github.com/rust-lang/rust-analyzer/pull/18354)
* [rust-analyzer: fix token downmapping failing for include! inputs](https://github.com/rust-lang/rust-analyzer/pull/18361)
* [rust-analyzer: private items are shown in completions for modules in fn body](https://github.com/rust-lang/rust-analyzer/pull/18337)

### Rust Compiler Performance Triage

Expand Down Expand Up @@ -281,7 +374,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)

# Quote of the Week

<!-- QOTW goes here -->
> Your problem is that you’re trying to borrow from the dead.

– [/u/masklinn on /r/rust](https://old.reddit.com/r/rust/comments/1g3a2ul/hey_rustaceans_got_a_question_ask_here_422024/lrzqed7/)

Thanks to [Maciej Dziardziel](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1622) for the suggestion!

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

Expand Down
Loading