Warning
This post was published 164 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.
macro_rules!
This week's crate is derive_deftly, a proc macro to create derive macros from declarative code.
Thanks to duelafn 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!
469 pull requests were merged in the last week
macro_metavar_expr_concat
Add support for literalsout_of_scope_macro_calls
: Detect calls inside attributes more preciselyas_lang_item
to LanguageItems
, new trait solverasm-comments
to verbose-asm
, always emit user comments(..)
mir::coverage::BranchInfo
to CoverageInfoHi
#[repr(C)]
enumsspan_bug
only if context is not taintedFnMut::call_mut
/Fn::call
shim for async closures that capture referenceseffects
Fn
+ Future
boundsFloatTy
checks exhaustive in pretty printNEVER_TYPE_FALLBACK_FLOWING_INTO_UNSAFE
a deny-by-default lint in edition 2024can_eq
process obligations (almost) everywherepush_outlives_components
into a TypeVisitor
StructuredDiag
, which is incompatible with automatic error tainting and error translationsrustc_index
and rustc_borrowck
-1 as usize
suggestionControlFlow
results for visitors that are only looking for a single valueIndexVec
for coroutine local mappingptr::null_mut()
TerminatorKind::TailCall
dup()
for unix targetlibc::sched_setaffinity
on linux_mm256_zeroupper
and _mm256_zeroall
intrinsicssymbol_name
query instead of trying to infer from the link_name
attributehir_owner_nodes
in ParentHirIteratoratomic_bool_fetch_not
hint::assert_unchecked
new_range_api
for RFC #3550PathBuf::add_extension
and Path::with_added_extension
std::Path's
Hash quality by avoiding prefix collisionsTrustedLen
for Iterator::unzip()
must_use
hintconfig-include
feature in configInternedString
in hot pathcompatible_with_older_cargo
testf64::INFINITY
& f64::NEG_INFINITY
$FILE
built-in variablealmost_complete_range
: Delay suggestion creationdoc_markdown
: detect escaped
when checking unmatchedmissing_const_for_fn
: fix FP when arg ty is impl trait alias tymissing_const_for_fn
: fix suggestions for fn with abi that requires const_extern_fn
featureneedless_return
: Support #[expect]
on the return statementsignificant_drop_in_scrutinee
: Trigger lint also for scrutinees in while let
and if let
unnecessary_to_owned
: catch to_owned
on byte slice to create temporary &str
hashset_insert_after_contains
cfg_not_test
lintinto_iter_without_iter
explicit_auto_deref
avoid-breaking-exported-api
in needless_pass_by_ref_mut
automatically_derived
on impl blocksdisallowed_methods
and narrow spaninit_numbered_fields
--keep-going
to the check command"::"
for the external crate prefixInferenceResult::has_errors
flag when there are error typesf32
literalsmessage-format
after -- in debugging--keep-going
More regressions than improvements this week, caused by a combination of fixes, refactorings, third-party dependency updates and in general the compiler doing slightly more work.
Triage done by @kobzol. Revision range: cf2df68d..a2d58197
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.7% | [0.2%, 2.5%] | 53 |
Regressions ❌ (secondary) |
1.0% | [0.4%, 1.5%] | 31 |
Improvements ✅ (primary) |
-0.6% | [-1.2%, -0.2%] | 10 |
Improvements ✅ (secondary) |
-1.7% | [-2.4%, -1.4%] | 4 |
All ❌✅ (primary) | 0.5% | [-1.2%, 2.5%] | 63 |
1 Regression, 2 Improvements, 7 Mixed; 3 of them in rollups 62 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: * No RFCs were approved 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.
repr(discriminant = ...)
for type aliasesconst_waker
Rusty Events between 2024-07-10 - 2024-08-07 🦀
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
In Rust, the preferred solution is to avoid the need for such document to exist.
– Kornel on rust-users replying to a question about Rust code guidelines
Thanks to Chayim Refael Friedman 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