Info
This post is auto-generated from RSS feed Rust Blog. Source: November project goals update
The Rust project is currently working towards a slate of 26 project goals, with 3 of them designed as Flagship Goals. This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated tracking issue on the rust-project-goals repository.
Async closure stabilization has been approved, though the stabilization has not yet landed! The lang team ultimately opted to stabilize the trait name AsyncFn
rather than the keyword-based async Fn
syntax that was originally proposed. This decision came after discussion on the Flavors RFC which made it clear we were not at a consensus about whether the async Trait
keyword would be used more generally or not. Given that, the team felt that the AsyncFn
synta was a fine "next step". If we do ultimately adopt some form of async Trait
keyword syntax, then AsyncFn
can become a trait alias.
Regarding return-type notation, an extension of return-type notation to cover Self::foo(..): Send landed and we landed #132047 which fixes a known ICE. Stabilization PR is now unblocked.
No major progress towards async drop reviews or team reorganization.
This month saw steady progress on our checklist. dingxiangfei2009's PR renaming derive(SmartPointer)
to derive(CoercePointee)
was merged and he began the work to port the RFL codebase to use the new name. Alice Ryhl opened RFC #3716 proposing a way to manage compiler flags that alter the ABI and discussion (and some implementation work) has ensued. Finally, we landed PR #119364 making target blocks in asm-goto safe by default; this was based directly on experience from RFL which showed that [safe would be more useful]. We are still working to finalize another extension to asm-goto that arose from RFL requirements, allowing const
to support embedded pointers. Finally we prepared reference PR #1610 describing the change to permit Pointers to Statics in Constants that was stabilized last month.
Rust 2024 has now entered the nightly beta and is expected to stabilize as part of Rust 1.85 on 2025-02-20. It has a great many improvements that make the language more consistent and ergonomic, that further upon our relentless commitment to safety, and that will open the door to long-awaited features such as gen blocks, let chains, and the never type !
. For more on the changes, see the nightly Edition Guide. The call for testing blog post contains more information and instructions on how you can try it yourself.
min_generic_const_args
now exists as a feature gate, though without any functionality, only some gated refactorings, but shouldn't be long before it has actual functionality behind it.eval_x
methods on ty::Const
has been completed, making it possible to correctly implement normalization for constants.Cargo.toml
) changes, not just source code changes. An example of such breakage is the removal of a package feature: any crates that enabled the removed feature will no longer build.std::autodiff
is available on Arxiv, with code available at ChemAI-Lab/molpipx, showcasing significantly faster compilation times in Rust compared to JAX.version-ranges
crate, enabling multiple projects to share this core abstraction and benefit from improvements without waiting for the rest of the project.0.3.0
version of the PubGrub crate.-Znext-solver=coherence
again in https://github.com/rust-lang/rust/pull/130654. It's looking like the stabilization will actually go through this time.cargo cache
on CI are beginning to take form.rustc_driver
as a static library, instead of dynamic linking. This would be us both a way to check the performance impact of rustc_driver
as a shared library, and a way to profile Clippy without filtering between dl_*
calls.The following goals have not received updates in the last month:
🏷️ Rust_feed