Migrating to Rust Language 1.87.0
Version 1.87.0 introduces 1 breaking change. This guide details how to update your code.
Released: 5/15/2025
1
Breaking Changes
2
Migration Steps
56
Affected Symbols
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
asm_gotoprecise_capturing_in_traitsi586-pc-windows-msvcenv::home_dirControlFlowassert_eq!vec!Vec::with_capacitystd::arch intrinsicsVec::extract_ifvec::ExtractIfLinkedList::extract_iflinked_list::ExtractIf[T]::split_off[T]::split_off_mut[T]::split_off_first[T]::split_off_first_mut[T]::split_off_last[T]::split_off_last_mutString::extend_from_withinos_str::DisplayOsString::displayOsStr::displayio::pipeio::PipeReaderio::PipeWriterOwnedHandleStdioOwnedFdBox<MaybeUninit<T>>::writeTryFrom<Vec<u8>> for String*const T::offset_from_unsigned*const T::byte_offset_from_unsigned*mut T::offset_from_unsigned*mut T::byte_offset_from_unsignedNonNull::offset_from_unsignedNonNull::byte_offset_from_unsigneduN::cast_signedNonZero<uN>::cast_signediN::cast_unsignedNonZero<iN>::cast_unsigneduN::is_multiple_ofuN::unbounded_shluN::unbounded_shriN::unbounded_shliN::unbounded_shriN::midpointstr::from_utf8str::from_utf8_mutstr::from_utf8_uncheckedstr::from_utf8_unchecked_mutcore::str::from_utf8_mut[T]::copy_from_sliceSocketAddr::set_ipSocketAddr::set_portSocketAddrV4::set_ipBreaking Changes
●Issue #1
The `i586-pc-windows-msvc` target has been removed. Users targeting this platform must migrate to a supported target.
Migration Steps
- 1If you were using the `i586-pc-windows-msvc` target, you must switch to a supported target.
- 2If you rely on the exact capacity returned by `Vec::capacity()` immediately after calling `Vec::with_capacity(N)`, be aware that it might differ from N, although N elements will be allocated.
Release Summary
This release stabilizes several language features, including `asm_goto`, and introduces significant API stabilization in the standard library, notably the anonymous pipe API and various slice/pointer manipulation methods. The compiler also enforces SSE2 for i686 targets and removes support for the i586 Windows target.
Need More Details?
View the full release notes and all changes for Rust Language 1.87.0.
View Full Changelog