Warning
This post was published 100 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 cargo-binstall, a cargo subcommand to install crates from binaries out of their github releases.
Thanks to Jiahao XU 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.
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!
428 pull requests were merged in the last week
hir_typeck
: be more conservative in making "note caller chooses ty param" noterustc_type_ir
: Omit some struct
fields from Debug outputInferCtxt
when a fulfillment error is emitted#[rustc_dump_{predicates,item_bounds}]
item_bounds
query invocations on opaquesArrayToPointer
and MutToConstPointer
from runtime MIRDefineOpaqueTypes::No
to Yes
in diagnostics code-Zcoverage-options=no-mir-spans
#[coverage(..)]
attribute:expr
macro fragment act like the edition-dependent :pat
fragment doesf16
and f128
consistentenum
Span
s' SyntaxContext
, as that is incompatible with incrementalrustc_next_trait_solver
f16
and f128
unix/foreign_items
: move getpid to the right part of the filei64::MAX
TerminatorKind
(96 → 80 bytes)SliceLike
to rustc_type_ir
, use it in the generic solver code (+ some other changes)std::unix::fs
: copy simplification for applestd::unix::os::home_dir
: fallback's optimisationf16
and f128
pattern matching stubs with real implementationsPidFd::
{kill
, wait
, try_wait
}add nuw
from uN::checked_add
Rc
, Arc
}::make_mut()
to unsized typesarray::repeat
Option::as_[mut_]slice
const
std::fs::try_exists
to std::fs::exists
and stabilize fs_try_exists
PanicInfo::message()
c_unwind
CodeFix::apply_solution
and impl Clone
-Cmetadata
consistent across platformsmissing_unsafe_on_extern
featureuse<>
formatting in rustfmtrewrite_static
f16
and f128 unimplemented!
/FIXME
smissing_const_for_fn
: add machine-applicable suggestionis_from_proc_macro
implicit_return
on proc macrosmanual_unwrap_or_default
clippy::invalid_paths
on bool::then
toggleLSPLogs
commandstruct
or unionsource_root_parent_map
extend_selection
ItemInNs::Macros
to convert ModuleItem to ItemInNsMostly a number of improvements driven by MIR inliner improvements, with a small number benchmarks having a significant regression due to improvements in sort algorithms, which are runtime improvements at the cost of usually slight or neutral compile time regressions, with outliers in a few cases.
Triage done by @simulacrum. Revision range: c2932aaf..c3d7fb39
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week: * Change crates.io policy to not offer crate transfer mediation * UnsafePinned: allow aliasing of pinned mutable references
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
#![crate_name = EXPR]
semantically allows EXPR
to be a macro call but otherwise mostly ignores itprecise_capturing
use<>
syntaximpl Trait + use<..>
box_pointers
lint.duration_abs_diff
Rusty Events between 2024-06-26 - 2024-07-24 🦀
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 has no theoretical inconsistencies... a remarkable achievement...
– Simon Peyton-Jones on YouTube
Thanks to ZiCog for the suggestion and Simon Farnsworth for the improved link!
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