# Rust Edition 2024 ## :motorway: Milestones **September 2023:** - [x] Formally petition the Leadership Council to form the Edition 2024 Working Group - https://github.com/rust-lang/leadership-council/issues/55 - [x] Start Edition RFC - https://github.com/rust-lang/rfcs/pull/3501 **October 2023:** - [x] :calendar: Preliminary roadmap with rough dates. - [x] Merge Edition RFC - [x] Draft a blog post to call the community to action in proposing features for the 2024 edition - [x] Start adding preliminary support for Edition 2024 in all tools provided by the Rust project - [x] rustc: https://github.com/rust-lang/rust/pull/94461 - [x] cargo: https://github.com/rust-lang/cargo/pull/12771 - [x] rustfmt: https://github.com/rust-lang/rust/pull/94461 - They are in the process of adding the 2024 "style edition". https://github.com/rust-lang/rustfmt/pull/5787 and related PRs. - [x] clippy: https://github.com/rust-lang/rust/pull/94461 - [x] rust-analyzer: https://github.com/rust-lang/rust-analyzer/pull/16151 **November 2023:** - [x] :loudspeaker: Blog post letting people know about the edition and the schedule - [ ] :incoming_envelope: Ask teams to check this document and add things (or confirm that they will not be making any edition changes) - [ ] compiler - [ ] lang - [ ] libs - [ ] rustdoc - [x] cargo - [ ] style **December 2023:** - [x] Pre-RFCs should be posted. **January 2024:** - [ ] RFCs should be posted. **February 2024:** - [ ] :scroll: Final list of changes. All proposed changes have: - [ ] An approved RFC - [ ] Migration+idiom lint plan - [ ] Partial implementation or plan for implementation **March 2024:** **April 2024:** **May 2024:** - [ ] :computer: All proposed changes implemented and available in nightly. **June 2024:** - [ ] :warning: All lints implemented on nightly and tested on crater. **July 2024:** - [ ] :busts_in_silhouette: Announce start of public testing. **August 2024:** - [ ] :loudspeaker: Finish marketing materials, docs, etc. - [ ] Blog post(s) - [ ] Edition guide - [ ] :tada: Stabilize `--edition=2024` on nightly (1.82), any time between 2024-08-01 and 2024-08-31. **September 2024:** **October 2024:** - [ ] :checkered_flag: `--edition=2024` available on stable in Rust 1.82 on 2024-10-17. ## Tentative features of the new edition ## rustdoc - ~~[Turn INVALID_DOC_ATTRIBUTES lint into a hard error](https://github.com/rust-lang/rust/pull/111505)~~ - ~~[ ] proposed~~ Appears to no longer be an edition change. ### Libs - Include `Future` and `IntoFuture` in the 2024 prelude - [x] Proposed https://github.com/rust-lang/rfcs/pull/3509 - [x] Approved https://github.com/rust-lang/rfcs/pull/3509#issuecomment-1906495817 - [x] implemented https://github.com/rust-lang/rust/pull/121041 - [ ] autofixable ? https://github.com/rust-lang/rust/issues/121042#issuecomment-1942181209 - Nilstrieb working on this - [ ] documented https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html (partially complete) - [Remove RustcEncodable & RustcDecodable from prelude in next edition](https://github.com/rust-lang/rust/pull/116016) - [x] proposed https://github.com/rust-lang/libs-team/issues/272 - [x] approved https://github.com/rust-lang/rust/pull/116016#issuecomment-1937145162 - [x] implemented https://github.com/rust-lang/rust/pull/116016 - [x] internal unstable bug: https://github.com/rust-lang/rust/issues/123156 - [ ] autofixable https://github.com/rust-lang/rust/pull/116016#issuecomment-1937153238 - [ ] documented https://github.com/rust-lang/edition-guide/pull/298 ### Lang https://github.com/rust-lang/lang-team/blob/HEAD/src/roadmaps/roadmap-2024.md https://github.com/rust-lang/lang-team/issues/209 https://github.com/rust-lang/rust/labels/lang-team-202x-edition https://github.com/orgs/rust-lang/projects/43/views/2 - Change unsafe_op_in_unsafe_fn to be warn-by-default - [x] proposed https://rust-lang.github.io/rfcs/2585-unsafe-block-in-unsafe-fn.html - [x] approved https://github.com/rust-lang/rust/issues/71668#issuecomment-1189396860 - [x] implemented https://github.com/rust-lang/rust/pull/112038 - [x] autofixable https://github.com/rust-lang/rust/pull/119948 - [ ] documented - [x] edition guide https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html - [ ] reference - [ ] Overlapping suggestions https://github.com/rust-lang/rust/issues/123304 - [ ] Crater run https://github.com/rust-lang/rust/pull/122960 - Reserve `gen` keyword. - [x] proposed https://github.com/rust-lang/rfcs/pull/3513 - [x] approved https://github.com/rust-lang/rfcs/pull/3513#issuecomment-1957166202 - [ ] Concerns over picking a different keyword instead of `gen`? https://github.com/rust-lang/rust/issues/117078 - [x] implemented https://github.com/rust-lang/rust/pull/116447 - [ ] autofixable https://github.com/rust-lang/rust/pull/123680 - [ ] documented - [ ] edition guide - [ ] reference - RPIT Lifetime Capture - [x] proposed https://github.com/rust-lang/rfcs/pull/3498 - [x] approved - [ ] implemented - [x] https://github.com/rust-lang/rust/pull/116952 - [ ] TAIT or precise capturing? https://github.com/rust-lang/rust/issues/117587 - @TC indicated that stabilizing TAIT is a prerequisite for providing a way to express precise capturing. [#63063](https://github.com/rust-lang/rust/issues/63063) - [ ] autofixable - [ ] documented - [ ] edition-guide - [ ] reference - Macro matcher fragment specifier policy - [x] approved https://rust-lang.github.io/rfcs/3531-macro-fragment-policy.html - ~~implemented / autofixable~~ N/A - [ ] docs (Add to edition-guide?) - Disallow reference to `static mut` - [x] approved https://github.com/rust-lang/rust/issues/114447#issuecomment-1707177536 - [x] implemented https://github.com/rust-lang/rust/pull/117556 - [ ] Should this also include "hidden" references? - https://github.com/rust-lang/rust/issues/123060 - https://github.com/rust-lang/rust/issues/114447#issuecomment-1837156804 - https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/static_mut_refs/near/427198395 - [ ] autofixable — current lint is maybe-incorrect, uncertain if there is a migration plan - https://github.com/rust-lang/rust/issues/123061 - [ ] documented - [ ] edition guide https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-reference.html (partially complete) - [ ] Get help: https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/static_mut_refs - https://github.com/rust-lang/rust/issues/123059 - [ ] reference - New range types - [x] proposed https://github.com/rust-lang/rfcs/pull/3550 - Crater data collected, waiting on lang? - [ ] approved https://github.com/rust-lang/rfcs/pull/3550#issuecomment-1908544755 - Temporary lifetimes in tail expressions - [ ] proposed - Unprefixed string literals - [x] proposed https://github.com/rust-lang/rfcs/pull/3593 - [x] approved https://github.com/rust-lang/rfcs/pull/3593#issuecomment-2017640953 - [ ] implemented - [ ] autofixable - [ ] documented - [ ] edition guide - [ ] reference - Unsafe attributes - [x] proposed https://github.com/rust-lang/rfcs/pull/3325 - [ ] approved https://github.com/rust-lang/rfcs/pull/3325#issuecomment-1396911253 - [ ] implemented - [ ] documented - Unsafe extern - [x] proposed https://github.com/rust-lang/rfcs/pull/3484 - [ ] approved https://github.com/rust-lang/rfcs/pull/3484#issuecomment-2023097397 - [ ] implemented - [ ] documented ### Cargo https://github.com/orgs/rust-lang/projects/30/views/1 - [Remove implicit features](https://github.com/rust-lang/cargo/issues/12826) - [x] proposed https://rust-lang.github.io/rfcs/3491-remove-implicit-features.html - [x] approved https://github.com/rust-lang/rfcs/pull/3491#issuecomment-1739937122 - [ ] implemented - https://github.com/rust-lang/cargo/pull/13621 - [ ] autofixable - [ ] documented - Public/private dependencies - [x] proposed https://rust-lang.github.io/rfcs/3516-public-private-dependencies.html - [x] approved https://github.com/rust-lang/rfcs/pull/3516#issuecomment-1777514797 - [ ] implemented Partially implemented, see tracking issue https://github.com/rust-lang/rust/issues/44663 - Waiting on rustc rework from davidtwco - [ ] autofixable - [ ] documented - MSRV-dependent resolver - [x] proposed https://rust-lang.github.io/rfcs/3537-msrv-resolver.html - [x] approved https://github.com/rust-lang/rfcs/pull/3537#issuecomment-1899285746 - [ ] implemented Under development, see tracking: https://github.com/rust-lang/cargo/issues/9930 - [ ] autofixable - [ ] documented ### Rustfmt - [ ] implement style edition - [ ] https://github.com/rust-lang/rustfmt/pull/5787 - [ ] https://github.com/rust-lang/rustfmt/pull/5854 - [ ] https://github.com/rust-lang/rustfmt/pull/5937 - [Enable overflow_delimited_expr by default](https://github.com/rust-lang/rust/pull/114764) - [x] proposed - [x] approved https://github.com/rust-lang/rust/pull/114764#issuecomment-1826417341 - [ ] implemented - [ ] Use version sort - [x] proposed - [x] approved https://github.com/rust-lang/rust/pull/115046 - [ ] implemented - [ ] Unicode-aware sort - [x] proposed - [x] approved https://github.com/rust-lang/rust/pull/115046 - [ ] Miscellaneous `rustfmt` bugfixes? - What is this? - [ ] proposed - [ ] approved https://github.com/rust-lang/rust/pull/113394
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.