Warning
This post was published 57 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 perpetual, a self-generalizing gradient boosting implementation.
Thanks to Mutlu Simsek 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.
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!
400 pull requests were merged in the last week
::
: to :
:read_volatile __rust_no_alloc_shim_is_unstable
in alloc_zeroed
unqualified_local_imports
lintEarlyOtherwiseBranch
to scalar valueexplicit_super_predicates_of
and explicit_item_super_predicates
truly only contains bounds for the type itselfmodule_name_to_str
instead of just unwrappingdownload-ci-llvm
default from if-unchanged
to true
OVERFLOWING_LITERALS
implopaque_hidden_inferred_bound
lint for RPITIT in trait with no default method bodyextern_crate
when local crate name is the same as a dependency and we have a trait errorty::Const::normalize
in error reportingcoroutine_by_move_body_def_id
in crate metadatakeyword_ident
lint doesn't trigger on 'r#kw
lifetimebreak_last_token
fn_sig
queries to correct number of args for methodsrepr(Rust)
correctly on non-ADT itemsstr
in v0 symbol manglingMode::Path
DefPathHash
ordering from inlinerty::Const::{try_}eval
in mir build/pattern analysisnon_local_definitions
lint to only use a syntactic heuristicisize::MAX
limit in Layout
Vec
in rustc_interface::Config::locale_resources
remove_dir_all
extern "C-cmse-nonsecure-entry" fn
RepeatN
: use MaybeUninitThread::{into_raw, from_raw}
Vec::as_non_null
new_cyclic_in
for Rc and Arcstr.as_str()
for easy Deref to string slicesFromUtf8Error::into_utf8_lossy
max_read_size
in File::read_to_end
Lazy{Cell,Lock}::get[_mut]
and force_mut
Result::flatten
a const fnchar::make_ascii_uppercase
and char::make_ascii_lowercase
as constu8::make_ascii_uppercase
and u8::make_ascii_lowercase
as constfmt::Arguments
by reference to PanicInfo
and PanicMessage
MaybeUninit::as_mut_ptr
PartialOrd
bound in cmp::Ord::clamp
random
feature (alternative version)char::encode_utf16
in const scenarioschar::encode_utf8
in const scenariosAsyncBufRead::read_line
and AsyncBufReadExt::lines
struct
Debug
, FusedIterator
and Iterator::fold
for all HashTable
iteratorsclap_complete
--target
completions--dry-run
flag to the install
commandcargo build --example=<TAB>
cargo help <TAB>
cargo info
command in the cargo search
resultmissing_panics_doc
in const contextif_then_some_else_none
sugg missing closure introunnecessary_first_then_check
PartialEq
methodsempty_line_after_*
suggestion#[no_mangle]
extern fnsunsafe_op_in_unsafe_fn
expr_2021
${concat(...)}
metavariable expression;
when in closure return expressiontype_variable_table
when modifying index is larger than the table size$crate
in expansions shown to the user#[cfg_attr]
parse_expr_from_str()
matches the produced parsed treeNot too much happened this week. Most regressions of note were readily justified as removing sources of unpredictable/inconsistent behavior from code-generation. There was one notable improvement, from PR #130561: avoiding redoing a redundant normalization of the param-env ended up improving compile times for 93 primary benchmarks by -1.0% on average.
Triage done by @pnkfelix. Revision range: 170d6cb8..749f80ab Revision range: 506f22b4..4cadeda9
(there are two revision ranges to manually work around a rustc-perf website issue.)
2 Regressions, 2 Improvements, 7 Mixed; 4 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:
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
cfg
predicatesrustdoc-types
crate to T-Rustdoc ownership.offset(c as isize)
dyn Trait
principalRusty Events between 2024-09-25 - 2024-10-23 🦀
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
New users feel like iteration times are so slow and it takes forever to get going with Rust. But if there's a library available, I feel like I'm roughly as productive with Rust as I am with Ruby, if not more, when I think about the whole amount of work I'm doing. I haven't really figured out how to talk about that without sounding purely like a zealot, but yeah, I feel like Rust is actually very, very productive, even though many people don't see it that way initially.
– Steve Klabnik at Oxidize Conference
Thanks to Brian Kung 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