Warning
This post was published 32 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 vidyut, a Sanskrit toolkit containing functionality about meter, segmentation, inflections, etc.
Thanks to Arun Prasad for the self-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.
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
{x86_64,i686}-win7-windows-gnu
targets-Zrandomize-layout
harder. Foo<T> != Foo<U>
best_blame_constraint
: Blame better constraints when the region graph has cycles from invariance or 'static
mir_transform
: implement #[rustc_force_inline]
run_make_support
: add #![warn(unreachable_pub)]
-Zmin-function-alignment
default_field_values
entry to unstable bookInstSimplify
for repetitive array expressionsMaybeUninit
methods for slicesNonNull
Instance::try_resolve
is only used on body-like thingsfor<'a>
types when checking for non-structural type in constant as patternCURRENT_RUSTC_VERSION
suggest_binding_for_closure_capture_self
diag in borrowckwait_timeout
for targets without threadsmut arg: &Ty
meant to be arg: &mut Ty
and provide structured suggestionconst Destruct
in old solverUniqueRc
invariant for soundnesslit_to_mir_constant
and lit_to_const
infallibletypeck_with_fallback
with its own spanOpaqueTypeDecl
wrapperoptimized-compiler-builtins
epoll
and eventfd
test targetspthread_setname_np
deref_poiner_as
instead of deref_pointer
proc_macro
: Use ToTokens
trait in quote
macro#[inline]
to copy_from_slice
String::into_chars
rustc_iter
[lints]
JSON Schema"C"
explicit in extern "C"
cargo rustc --print
Crate::paths
--style-edition
flag registrationunneeded_struct_pattern
slow_vector_initialization
in some cases.await
expansionredundant_pub_crate
in external macrosmap_flatten
lint if there are code commentscloned
for Cow
in unnecessary_to_owned
manual_is_ascii_check
needless_as_bytes
to also detect str::bytes()
manual_ok_err
unnecessary_map_or
lint outputPackageRoot
buildfile inclusionprettify_macro_expansion()
unless the "Inline macro" assist has actually been invokedenv
/option_env
macro check disregarding macro_rules
definitionsref
text edit for binding mode hintsexpand()
#[rust_analyzer::skip]
for bodiesA quiet week with little change to the actual compiler performance. The biggest compiler regression was quickly recognized and reverted.
Triage done by @rylev. Revision range: 0f1e965f..1ab85fbd
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions โ (primary) |
0.4% | [0.1%, 1.8%] | 21 |
Regressions โ (secondary) |
0.5% | [0.0%, 2.0%] | 35 |
Improvements โ
(primary) |
-0.8% | [-2.7%, -0.3%] | 6 |
Improvements โ
(secondary) |
-10.2% | [-27.8%, -0.1%] | 13 |
All โโ (primary) | 0.2% | [-2.7%, 1.8%] | 27 |
4 Regressions, 3 Improvements, 3 Mixed; 3 of them in rollups 44 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.
clippy::double_neg
lint as double_negations
Seek::stream
_len impl for FileRusty Events between 2025-01-15 - 2025-02-12 ๐ฆ
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
This is a wonderful unsoundness and I am incredibly excited about it :3
โ lcnr on github
Thanks to Christoph Grenz for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
Email list hosting is sponsored by The Rust Foundation
๐ท๏ธ Rust_feed