Warning
This post was published 149 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.
This week's crate is derive_more, a crate for deriving a whole lot of traits
Thanks to teor 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.
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.
426 pull requests were merged in the last week
builtin_syntax
for type ascriptionconst_eval_select
: add tracking issuedefault_alloc_error_hook
: explain difference to default __rdl_oom
in allocnormalize()
in run-make Diff
typerustfmt
cfg to well known cfgs list#[macro_export]
/doctest help suggestion for non_local_defs
lintnon_local_definitions
lintDerefPure
for more std types--check-cfg
by default in UI testsNormalizesTo
proof tree issueadjust_from_tcx
for Allocation
do_not_recommend
in the new solverptr_as_ref_unchecked
KnownPanicsLint
const propProofTreeVisitor
llvm.expect
ing assert terminatorsResult<T, E>
across FFI when niche optimization can be usedconsts_may_unify
ObligationCtxt
in favor of TraitEngine
in many more placessuper_fold
in RegionsToStatic
visitortcx.types.unit
instead of Ty::new_unit(tcx)
Obligation
for error reporting in new solverPreparing a sysroot
when -q
/--quiet
is passedpthread_t
for thread IDsexclusive_range_pattern
exclusive_range_pattern
(v2)split_at_checked
Read
implementationsf16
/f128
float conversions-
in lint namedefault-features
when inheritingcrates_types/proc-macro
for bin like others-Zcheck-cfg
as always enabledclippy::useless_attribute
assigning_clones
on nested late init localsBox::default()
in functions with differing genericsFormatArgs
storage when -Zthreads
> 1for x in y unsafe { }
manual_is_ascii_check
with missing typeno_core
/no_std
for preludesLargely uneventful week; the most notable shifts were considered false-alarms
that arose from changes related to cfg-checking (either cargo enabling it, or
adding cfg's like rustfmt
to the "well-known cfgs list").
Triage done by @pnkfelix. Revision range: c65b2dc9..69f53f5e
3 Regressions, 2 Improvements, 3 Mixed; 5 of them in rollups 54 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.
min_exhaustive_patterns
AtomicBool::fetch_not
async T
and gen T
typesRusty Events between 2024-05-08 - 2024-06-05 🦀
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
Rust and its borrow checker are like proper form when lifting boxes. While you might have been lifting boxes "the natural way" for decades without a problem, and its an initial embuggerance to think and perform proper lifting form, it is learnable, efficient, and prevents some important problems.
Or more succinctly:
C/C++: It'll screw your back(end).
And the reply:
- there’s a largish group of men who would feel their masculinity attacked if you implied they should learn it
- while it's learnable finding usefully targeted educational resources are hard to come by
- proper form while lifting boxes are a really terrible way to model graphs
– Brett Witty and Leon on Mastodon
Thanks to Brett Witty for the self-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