Rust‘s leadership team has published a list of 26 project goals for the second half of 2024, leading off with finalizing preparations for the Rust 2024 edition. Two other key goals include bringing the async Rust experience closer to par with sync Rust, and resolving the biggest obstacles to the Linux kernel building on stable Rust.
Project goals for the remainder of the 2024 calendar year were published August 12. The goals were selected in accordance with Rust leadership’s mission of empowering development of reliable and efficient software. According to the Rust Leadership Council, the 2024 edition presents an opportunity to correct small, ergonomic issues that will make the language easier to use. Changes eyed for the 2024 edition include supporting ->impl Trait
and async fn
by aligning capture behavior; permitting (async) generators to be added in the future by reserving the gen
keyword, and altering fallback for the !
type. Plans call for finalizing development of Rust 2024 edition features later this year. The edition is planned for Rust v1.85, to be released in beta in January 3, 2025 and stable on February 20.
For async Rust, plans call for delivering several async building-block features, with the most notable being support for async closures and send bounds. This is part of a program to raise the experience of async Rust to the same level of quality as sync Rust.
Experimental support for Rust development in the Linux kernel is considered a watershed moment for Rust for Linux, demonstrating that Rust is capable of targeting all manners of low-level system applications.
The other 23 goals impact capabilities ranging from single-file scripts to ergonomic ref counting, as follows:
- “Stabilizable” prototype for expanded
const
generics - Administrator-provided reasons for yanked crates
- Assemble project goal slate
- Associated type position
impl
trait - Begin resolving
cargo-semver-checks
blockers for merging into cargo - Const traits
- Ergonomic ref-counting
- Explore sandboxed build scripts
- Expose experimental LLVM features for automatic differentiation and GPU offloading
- Extend pubgrub to match cargo’s dependency resolution
- Implement “merged doctests” to save doctest time
- Make Rustdoc Search easier to learn
- Next-generation trait solver
- Optimizing Clippy & linting
- Patterns of empty types
- Scalable Polonius support on nightly
- Stabilize
cargo-script
- Stabilize
doc_cfg
- Stabilize parallel front end
- Survey tools suitability for Std safety verification
- Testing infra + contributors for a-mir-formality
- Use annotate-snippets for rustc diagnostic output
- User-wide build cache
Not all goals are expected to be completed, however. The most recent editions of Rust include version 1.80, announced July 25 and featuring lazy types, and a point release, 1.80.1, published August 8 to fix two regressions—mis-compilation when comparing floats, and false positives in the dead_code
lint.