Warning
This post was published 31 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 X (formerly 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.
Want TWIR in your inbox? Subscribe here.
This week's crate is fixed-slice-vec, a no-std dynamic length Vec with runtime-determined maximum capacity backed by a slice.
Thanks to Jay Oster 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 or through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
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 website through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
480 pull requests were merged in the last week
check_consts
: fix error requesting feature gate when that gate is not actually neededconst_panic
: inline in bootstrap builds to avoid f16/f128 crashesrustc_metadata
: Preprocess search paths for better performancesuggest_borrow_generic_arg
: instantiate clauses properlyvisit_coroutine_kind
to ast::Visitor
f16
or f128
Visitor::visit_precise_capturing_arg
so it returns a Visitor::Result
use<..>
in RPITIT for refinementtraits::evaluate_const
cfg(not(parallel))
serial compilerlegacy_const_generics
REGISTRY_USERNAME
to reuse cache between auto and pr jobsreturn (_ = 42); unused_paren
lint should not be triggeredif
condition misparse suggestionaarch64-gnu-debug
from the shackles of --test-args=clang
impl_trait_overcaptures
configure_annotatable
rustc_const_stable_intrinsic
→ rustc_intrinsic_const_stable_indirect
let
TypingMode
throughout the compiler instead of ParamEnv
mir-enable-passes
pass namesthis
to ecx
in extern_static
const_atomic_from_ptr
const_option_ext
const_ptr_is_null
const_unicode_case_lookup
slice::is_sorted
#[inline]
integer parsing functionsas_slice/into_slice
for IoSlice/IoSliceMutNonNull::from_raw_parts
per ACP362mixed_integer_ops_unsigned_sub
fmt_num
to delete unreachable panicCloneToUninit
dyn-compatibleis_val_statically_known
intrinsic as stably const-callablechar::to_digit
and assert radix is at least 2Group
/Tag
coderustc_const_stable_indirect
git_fetch
refspec not foundmiddle::ty
parenthesized generic argsmissing_safety_doc
accept uppercase "SAFETY"Send
futures in future_not_send
if_let_mutex
starting from Edition 2024redundant_guards
Option::map_or(true, …)
in unnecessary_map_or
lintunnecessary_map_or
reorder_fields
assist to use SyntaxFactory
We saw improvements to a large swath of benchmarks with the querification of MonoItem collection (PR #132566). There were also some PRs where we are willing to pay a compile-time cost for expected runtime benefit (PR #132870, PR #120370), or pay a small cost in the single-threaded case in exchange for a big parallel compilation win (PR #124780).
Triage done by @pnkfelix. Revision range: d4822c2d..7d40450b
2 Regressions, 4 Improvements, 10 Mixed; 6 of them in rollups 47 artifact comparisons made in total
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.
AsyncFn*
to to the prelude in all editionsRusty Events between 2024-11-20 - 2024-12-18 🦀
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
The whole point of Rust is that before there were two worlds:
- Inefficient, garbage collected, reliable languages
- Efficient, manually allocated, dangerous languages
And the mark of being a good developer in the first was mitigating the inefficiency well, and for the second it was it didn't crash, corrupt memory, or be riddled with security issues. Rust makes the trade-off instead that being good means understanding how to avoid the compiler yelling at you.
Thanks to binarycat 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