Warning
This post was published 221 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 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.
Client
This week's crate is stated-scope-guard, a library supporting a more flexible RAII pattern for stated resouce management.
Thanks to Evian Zhang 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.
"*" = Issues open for student applications via OSPP. Selected students will be assigned a mentor(s), and may receive bonuses. Please register through the OSPP link.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
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 submission website through a PR to TWiR.
329 pull requests were merged in the last week
last_chunk
for slicesAnonConst
s in diagnostic_hir_wf_check
diagnostic::on_unimplemented
PartialEq
env::set_var
in rustc_driver::install_ice_hook
break
inside coroutinesMemCategorization
and ExprUse
visitors for new solver (this time it's better)diagnostic::on_unimplemented
invalid_reference_casting
invalid_reference_casting
RUSTC_WRAPPER
in bootstrapas_chunks
with split_at_unchecked
rustc_parse::Parser
's debuggability#![feature]
suggestion MaybeIncorrect
Ty::builtin_deref
just return a Ty
&
patterns eat &mut
Generics::params
to Generics::own_params
use crate::rustc_foo::bar
occurrencesty::AliasTerm
from ty::AliasTy
TraitRef
into rustc_type_ir
*Predicate
types into rustc_type_ir
Unreachable
in MIRalloca
s in codegen for simple mir::Aggregate
statementsoffset_from
io::Error
handling: keep around the full io::Error
for longer so we can give better errorsMIRI_TEST_TARGET
and RUSTC_BLESS
entirely an internal thingmalloc(0)
f*_algebraic
byte_slice_trim_ascii
for &[u8]
/&str
seek_seek_relative
f16::is_sign_{positive,negative}
were feature-gated on f128io::Write::write_fmt
: panic if the formatter fails when the stream does not failstd::net: Socket::new_raw
now set to SO_NOSIGPIPE
on freebsdstd::rand
: adding solaris/illumos for getrandom supportsignificant_drop_in_scrutinee
: Fix false positives due to false drops of place expressionsdoc_lazy_continuation
needless_late_init
hir_with_context
to produce correct snippets for assigning_clones
rustc_on_unimplemented
in duplicated_attributes
_to_string
lints in code from_expansion
[workspace.lints]
from_str_radix_10
skip constant contextmacro_metavars_in_unsafe
source_range
for INT_NUMBER
in completioninvalid_data
main_loop
errorsA pretty quiet week with only a few PRs being flagged for analysis. More improvements than regressions this week, and also several nice binary size reductions caused by generating less LLVM IR.
Triage done by @kobzol. Revision range: 69f53f5e..9105c57b
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.4% | [0.2%, 0.9%] | 8 |
Regressions ❌ (secondary) |
0.9% | [0.2%, 2.4%] | 18 |
Improvements ✅ (primary) |
-1.1% | [-2.3%, -0.2%] | 51 |
Improvements ✅ (secondary) |
-0.6% | [-1.4%, -0.3%] | 19 |
All ❌✅ (primary) | -0.9% | [-2.3%, 0.9%] | 59 |
1 Regression, 0 Improvements, 3 Mixed; 0 of them in rollups 75 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.
IpvNAddr::{BITS, to_bits, from_bits}
(ip_bits
)size_of
and size_of_val
and align_of
and align_of_val
to the prelude-
(stdin) support in rustdocSelf
ctor from outer item is referenced in inner nested itemelided_lifetimes
_in_associated_constant to denyimpl Trait for Type
core::marker::Freeze
in boundsRusty Events between 2024-05-15 - 2024-06-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
Unfortunately, most people seem to have taken the wrong lesson from Rust. They see all of this business with lifetimes and ownership as a dirty mess that Rust has had to adopt because it wanted to avoid garbage collection. But this is completely backwards! Rust adopted rules around shared mutable state and this enabled it to avoid garbage collection. These rules are a good idea regardless.
Thanks to Jules Bertholet for the last-minute 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