Warning
This post was published 79 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.
as
(and Python division)This week's crate is cargo-wizard, a cargo subcommand that applies profile and config templates to your Cargo project to configure it for maximum performance, fast compile times or minimal binary size.
Thanks to Jakub Beránek 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!
385 pull requests were merged in the last week
x86_amx_intrinsics
feature flagconstness
to TraitDef
fn
, struct, or enum
keywordsxop
target-feature and the xop_target_feature
feature gate#[diagnostic::do_not_recommend]
to supress trait impls in suggestions as wellis_ident
before parse_ident
inner_attr_ranges
regularlyrustc_infer
ExpressionUsed
simplification to Code
mappingsunsafe_code
lint on unsafe extern blocksDebugParser
fn allocator
for Rc/Arclibc::exit
multiple times on Linuxvisit_clobber
's impl safebuiltin_syntax
as internalexpr2024
for the edition 2024Option<&Vec<T>>
to Option<&[T]>
impl AsRef
map_or
when Option<&T>::unwrap_or where T: Deref
failsconst
with let
os_unfair_lock
functions on macOSParser::look_ahead
const_cstr_from_ptr (CStr::from_ptr, CStr::count_bytes)
io_slice_advance
f16
and f128
as simd types in LLVMallocate_str
offset_from
: always allow pointers to point to the same address#![deny(unsafe_op_in_unsafe_fn)]
in platform-independent codepidfd_spawn
for faster process spawning when a PidFd is requested#![deny(unsafe_op_in_unsafe_fn)]
docs(ref)
: Note MSRV for features in the docscargo_test
to test-support preluderustdoc::broken_intra_doc_links
get_source_id
out of registryunwrap_or_default
: skip warning when calling inside of suggested method's implementationmanual_unwrap_or
false positiveneedless_option_as_deref
false-positive on struct
literalsoverflow_check_conditional
float_cmp
and float_cmp_const
to not incorrectly recommend f__::EPSILON
as the error marginor_fun_call
recursivedoc_lazy_continuation
lintsf16
and f128
supporttt::Leaf
enum
variant fields and all variables/paramsenum
if it already existsStyleEditionDefault
trait for all configsrewrite_block
and rewrite_closure
Fairly quite week with the only pure regressions being small and coming from correctness fixes. The biggest single change came from turning off the -Zenforce-type-length-limit
check which had positive impacts across many different benchmarks since the compiler is doing strictly less work.
Triage done by @rylev. Revision range: a2d58197..5572759b
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.3% | [0.2%, 0.7%] | 12 |
Regressions ❌ (secondary) |
0.4% | [0.2%, 0.9%] | 45 |
Improvements ✅ (primary) |
-0.7% | [-1.5%, -0.2%] | 37 |
Improvements ✅ (secondary) |
-3.3% | [-13.5%, -0.4%] | 21 |
All ❌✅ (primary) | -0.4% | [-1.5%, 0.7%] | 49 |
2 Regressions, 3 Improvements, 2 Mixed; 1 of them in rollups 56 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: * Match ergonomics 2024 * Return type notation (RTN) * #[derive(SmartPointer)]
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
No RFCs entered Final Comment Period this week.
Drop
impls introducing more generic parameters than the ADTfor<...>
binder in trait boundsRusty Events between 2024-07-17 - 2024-08-14 🦀
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 have a dream. A dream that Cargo has its own release cadence, so it is free from the strict stability curse and can then ship major version releases.
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