Warning
This post was published 73 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 float8, an 8-bit float implementation.
llogiq is still pleased with his choice, but increasingly unhappy about the lack of suggestions.
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!
437 pull requests were merged in the last week
x86_64-unknown-trusty
as tier 3 targetriscv32{e|em|emc}_unknown_none_elf
impl Trait {
when impl Trait for Type {
was intendednaked_asm!
macro for use in #[naked]
functions-Zfunction-return=thunk-extern
#[coverage(..)]
attributesUnOp::Not
for non-bool!
to diverge, disallow coercions from them too#[pointee]
attribute where it doesn't belongDeref
supertrait_vtable_slot
deprecated_cfg_attr_crate_type_name
a hard errortest_lots_of_insertions
test take less long in Miriparams_in_repr
if def kind is adt@
in struct
patternsignore-mode-*
directivesclobber_abi
and vector/access registers (clobber-only) in s390x inline assemblywrite_immediate
sanity checkspthread_attr_t
in testsrustc_infer
cleanupsconst_mut_refs
-dependent APIBufRead::skip_until
const_float_classify
const_slice_from_raw_parts_mut
const_slice_split_at_mut
and const_slice_first_last_chunk
expr_2021
fragment specifier in all editionsmap
/value
methods on ControlFlow
[Option<T>; N]::transpose
ptr::offset, ptr::add, ptr::sub
PeekMut::pop
Immediate::offset
to transmute pointers to integersDefault
for HashMap
/HashSet
iterators that don't already have itthread::current
available in all thread_local!
destructorsLazyBox
with OnceBox
Tag(u8)
newtype in an attempt to stop using byte-pointers for everythingcargo:version_number
- has only one :
activated_features
<wbr>
-insertion for SCREAMING_CAMEL_CASE
infinite_loop
: continuing an outer loop leaves the inner looprustc_tools_util
: rerun when git commit changeszombie_processes
: consider wait()
calls in nested bodiestrait_duplication_in_bounds
correctlymut_mutex_lock
when reference not ultimately mutableregex::Regex
compilation inside a loopmutable_key_type
Option::{is_some_and,is_none_or}
saturating_sub()
One regression dominated this week (dealing with a correctness fix around type system caching that was deemed necessary), but it luckily did not produce large regressions in any benchmarks. Overall, performance still ended up relatively in the same place as the beginning of the week.
Triage done by @rylev. Revision range: c87004a1..e6c46db4
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.1%, 1.0%] | 63 |
Regressions ❌ (secondary) |
1.1% | [0.1%, 3.4%] | 81 |
Improvements ✅ (primary) |
-0.5% | [-3.0%, -0.1%] | 19 |
Improvements ✅ (secondary) |
-0.5% | [-1.5%, -0.1%] | 46 |
All ❌✅ (primary) | 0.1% | [-3.0%, 1.0%] | 82 |
2 Regressions, 3 Improvements, 7 Mixed; 3 of them in rollups 57 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.
ptr::write*
and mem::replace
if_let_rescope
for Edition 2024include!
macroFromStr
for CString
and TryFrom<CString>
for String
debug_more_non_exhaustive
const_make_ascii
const_char_encode_utf8
Rusty Events between 2024-10-09 - 2024-11-06 🦀
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
I'm the wrong side of 45. I have zero interest in wasting any time that I might have left writing C from scratch. Writing Rust is pure joy. I can go from an idea to a working, tested, robust, published and packaged implementation in the time it would take me to even begin the first few lines of a C version. The tooling is beautiful, makes programming fun, and the end result usually outperforms the equivalent C. Once it builds I know it will run perfectly on all of the platforms I care about, and I don't have to go around manually testing on them to find all of the various platform and compiler quirks that will break it.
– Jonathan Perkins on the NetBSD mailing list
Thanks to blonk 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