Change8

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_ip

Breaking Changes

Issue #1

The `i586-pc-windows-msvc` target has been removed. Users targeting this platform must migrate to a supported target.

Migration Steps

  1. 1
    If you were using the `i586-pc-windows-msvc` target, you must switch to a supported target.
  2. 2
    If 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