diff --git a/draft/2024-10-23-this-week-in-rust.md b/draft/2024-10-23-this-week-in-rust.md index 3734fc2ad..0fc276047 100644 --- a/draft/2024-10-23-this-week-in-rust.md +++ b/draft/2024-10-23-this-week-in-rust.md @@ -49,7 +49,9 @@ and just ask the editors to select the category. ## Crate of the Week - +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]! @@ -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 - +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=` 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 @@ -281,7 +374,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE) # Quote of the Week - +> 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)