Warning
This post was published 45 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.
if let
BlocksThis week's crate is wtransport, an implementation of the WebTransport specification, a successor to WebSockets with many additional features.
Thanks to Josh Triplett 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!
473 pull requests were merged in the last week
--print host-tuple
to print host target tuplef16
and f128
to invalid_nan_comparison
lp64e
RISC-V ABIimpl
definition parent as transparent regarding modules~const
constness effects in typeck if rustc_do_not_const_check
irrefutable_let_patterns
on leading patterns if else if
let-chains?
trait boundsmissing_abi
linttype_param_predicates
resolves correctly for RPITITRUSTC_HOST_FLAGS
at once without the for loop--print=target-cpus
to Rust~const
preds for Deref
adjustments in HIR typeck""
case from RISC-V llvm_abiname
match statementdo_not_const_check
from Iterator
methods-Zprofile
(gcov-style coverage instrumentation)clobber_abi
and vector registers (clobber-only) in PowerPC inline assemblydefining_opaque_types
futex_wait
errno from Scalar to IoErrorconst_arguments_as_str
if_let_rescope
str::is_char_boundary
and str::split_at*
unstably const
align_offset
and is_aligned
ptr::byte_sub_ptr
From<&mut {slice}>
for Box/Rc/Arc<{slice}>
i64::midpoint
instead of wide i128
implrustc_const_stable
attribute on Condvar and Mutex new()
const_panic
macro to make it easier to fall back to non-formatting panic in construstc_fingerprint
rustfix
-Zroot-dir
flag to configure the path from which rustc should be invokedcargo::error
CARGO_HOME
for cargo-script--show-coverage
when JSON output format is usedstruct
fields margins with struct
fieldsinfinite_loops
: fix incorrect suggestions on async functions/closuresneedless_continue
: check labels consistency before warningno_mangle
attribute requires unsafe in Rust 2024trivial_map_over_range
lintinto_iter_without_iter
gen
as a variable namemissing_docs_in_private_items
large_include_file
lint to also work on attributesallow_attributes
when expanded from some macrosmap_all_any_identity
needless_as_bytes
source_item_ordering
TyLoweringContext
file_structure
static
values on hoversafe
as contextual kw in extern blocks#[rustc_intrinsic]
attribute and fallback bodiesA week dominated by one large improvement and one large regression where luckily the improvement had a larger impact. The regression seems to have been caused by a newly introduced lint that might have performance issues. The improvement was in building rustc with protected visibility which reduces the number of dynamic relocations needed leading to some nice performance gains. Across a large swath of the perf suit, the compiler is on average 1% faster after this week compared to last week.
Triage done by @rylev. Revision range: c8a8c820..27e38f8f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.8% | [0.1%, 2.0%] | 80 |
Regressions ❌ (secondary) |
1.9% | [0.2%, 3.4%] | 45 |
Improvements ✅ (primary) |
-1.9% | [-31.6%, -0.1%] | 148 |
Improvements ✅ (secondary) |
-5.1% | [-27.8%, -0.1%] | 180 |
All ❌✅ (primary) | -1.0% | [-31.6%, 2.0%] | 228 |
1 Regression, 1 Improvement, 5 Mixed; 3 of them in rollups 46 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.
use Trait::func
const_option_ext
'
, like regular lifetimes domultivalue
, reference-types
, and tail-call
target featurestry_blocks
RFCRusty Events between 2024-11-06 - 2024-12-04 🦀
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
Any sufficiently complicated C project contains an adhoc, informally specified, bug ridden, slow implementation of half of cargo.
– Folkert de Vries at RustNL 2024 (youtube recording)
Thanks to Collin Richards 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