1.73.0 #
- Released on: 5 October, 2023
- Branched from master on: 18 August, 2023
Language #
- Uplift
clippy::fn_null_checklint asuseless_ptr_null_checks. - Make
noop_method_callwarn by default. - Support interpolated block for
tryandasyncin macros. - Make
unconditional_recursionlint detect recursive drops. - Future compatibility warning for some impls being incorrectly considered not overlapping.
- The
invalid_reference_castinglint is now deny-by-default (instead of allow-by-default)
Compiler #
- Write version information in a
.commentsection like GCC/Clang. - Add documentation on v0 symbol mangling.
- Stabilize
extern "thiscall"and"thiscall-unwind"ABIs. - Only check outlives goals on impl compared to trait.
- Infer type in irrefutable slice patterns with fixed length as array.
- Discard default auto trait impls if explicit ones exist.
- Add several new tier 3 targets:
- Add
wasm32-wasi-preview1-threadsas a tier 2 target.
Refer to Rust’s [platform support page][platform-support-doc] for more information on Rust’s tiered platform support.
Libraries #
- Add
Read,WriteandSeekimpls forArc<File>. - Merge functionality of
io::Sinkintoio::Empty. - Implement
RefUnwindSafeforBacktrace - Make
ExitStatusimplementDefault impl SliceIndex<str> for (Bound<usize>, Bound<usize>)- Change default panic handler message format.
- Cleaner
assert_eq!&assert_ne!panic messages. - Correct the (deprecated) Android
statstruct definitions.
Stabilized APIs #
- Unsigned
{integer}::div_ceil - Unsigned
{integer}::next_multiple_of - Unsigned
{integer}::checked_next_multiple_of std::ffi::FromBytesUntilNulErrorstd::os::unix::fs::chownstd::os::unix::fs::fchownstd::os::unix::fs::lchownLocalKey::<Cell<T>>::getLocalKey::<Cell<T>>::setLocalKey::<Cell<T>>::takeLocalKey::<Cell<T>>::replaceLocalKey::<RefCell<T>>::with_borrowLocalKey::<RefCell<T>>::with_borrow_mutLocalKey::<RefCell<T>>::setLocalKey::<RefCell<T>>::takeLocalKey::<RefCell<T>>::replace
These APIs are now stable in const contexts:
Cargo #
Misc #
Compatibility Notes #
Internal Changes #
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.
- Remove LLVM pointee types, supporting only opaque pointers.
- Port PGO/LTO/BOLT optimized build pipeline to Rust.
- Replace in-tree
rustc_apfloatwith the new version of the crate. - Update to LLVM 17.
- Add
internal_featureslint for internal unstable features. - Mention style for new syntax in tracking issue template.