Warning
This post was published 225 days ago. The information described in this article may have changed.
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
This week's crate is archspec-rs, a library to track system architecture aspects.
Thanks to Orhun Parmaksız for the suggestion!
Please submit your suggestions and votes for next week!
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a PR to TWiR.
431 pull requests were merged in the last week
typeid_for_instance
default behaviorClosureKind
from signature inference in coroutine-closuresOrd::cmp
for primitives as a BinOp
in MIRmatch_projection_projections
to ensure invariantFnDef
kindpattern_types
feature gateHAS_PROJECTIONS
to HAS_ALIASES
etcfn forced_ambiguity
if we get an errorty::Error
transmute
intrinsicByMove
coroutine-closure shim (for 2021 precise closure capturing behavior)ItemLocalId::ZERO
in a couple more placesget_mut_or_init
and get_mut_or_try_init
for OnceCell and OnceLockSized
bound first into clauses list&
pat everywhere"compiler_builtins
to call LLVM intrinsics, not any link_name
functionunnameable_types
debug_assertions
rustc_target::abi::Layout
rustc_sanitizers
crateconst_eval_select
?Sized
bounds for HasInterner
implsLifetime::Error
const_caller_location
and const_location_fields
proc_macro_byte_character
and proc_macro_c_str_literals
Atomic*::into_inner
expose_addr
to expose_provenance
ptr::from_exposed_addr
→ ptr::with_exposed_provenance
rt::init
allocation for thread nameunchecked_sub
in str indexingStepBy::len
BuildHasherDefault::new
VecDeque::pop_*
that len <
cap if pop successfulContext::ext
cabi_realloc
on wasm32-wasip2 by defaultrustc_codegen_gcc
Cargo.toml
?
affecting type inference in weird waysmanual_swap
auto fixmanual_unwrap_or_default
: check for Default
trait implementation in initial condition when linting and use IfLetOrMatch
cast
lints in macrosptr_as_ptr
when getting the def_id
of a localneedless_borrow
suggestionassigning_clones
in Clone
impl!(a as type >= b)
arc_with_non_send_sync
note and help messagesDefId
when an expression's type changes to non-adtexported_name="main"
functions in test modules as testspatch_cfg_if
not applying with stitched sysrootA quiet week; all the outright regressions were already triaged (the one biggish one was #122077, which is justified as an important bug fix). There was a very nice set of improvements from PR #122070, which cleverly avoids a lot of unnecessary allocator calls when building an incremental dep graph by reusing the old edges from the previous graph.
Triage done by @pnkfelix. Revision range: 3d5528c2..86b603cd
3 Regressions, 3 Improvements, 7 Mixed; 1 of them in rollups 78 artifact comparisons made in total
See full report here
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
cstr_count_bytes
#![feature(const_io_structs)]
alloc::collections::BinaryHeap::as_slice
-Znext-solver=coherence
-Zrelro-level
as -Crelro-level
FromIterator
for (impl Default + Extend, impl Default + Extend)
Seek::seek_relative
NonZero
Rusty Events between 2024-04-10 - 2024-05-08 🦀
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Please see the latest Who's Hiring thread on r/rust
As a former JavaScript plebeian who has only been semi-recently illuminated by the suspiciously pastel pink, white and blue radiance of Rust developers, NOT having to sit in my web console debugger for hours pushing some lovingly crafted
[object Object]
orundefined
is a blessing.
– Julien Robert rage-blogging against bevy
Thanks to scottmcm for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation
🏷️ Rust_feed