Technology1 min read

Rust 1.100.0

By · Published by Everything Blog

In short

The release stabilizes the never type alongside custom memory allocation interfaces like `std::alloc::Allocator` in the standard library. Tooling is upgraded with a dedicated Cargo linting table to detect unused dependencies and an updated default lockfile behavior for installations. Platform tiers have shifted, promoting WebAssembly targets while modifying Windows GNU host tool support. Breaking syntax and lint adjustments include the removal of box patterns and default denials for aligned fields within packed structures.

Key points

  • Projects can enforce minimum publish age settings to protect builds from newly published…: Projects can enforce minimum publish age settings to protect builds from newly published dependency versions.
  • Codebases using box patterns or aligned fields in packed structures must be updated due t…: Codebases using box patterns or aligned fields in packed structures must be updated due to compatibility changes.
  • Fallback logic for the never type now defaults directly to the exclamation mark type acro…: Fallback logic for the never type now defaults directly to the exclamation mark type across every edition.

Sources checked by our analysis pipeline: 1

Repository navigation

Language

- Stabilize never type

- Lint against repeated

#[repr(..)]

attributes - Stabilize

extern "custom"

- Extend

dropping_references

,dropping_copy_types

andundropped_manually_drops

lints todrop_in_place

unfulfilled_lint_expectations

no longer fires on#[expect(dead_code)]

inside code that is covered by a dead parent's diagnostic- Turn the error for

repr(align)

fields in arepr(packed)

type into a deny-by-default lintaligned_fields_in_packed

- volatile: allow accesses to non-AM memory to trap

Compiler

Platform Support

i686-pc-windows-gnu

is now a tier 2 without host tools target- Promote

wasm32-wasip3

to Tier 2 - Add new Tier 3 target

powerpc64-sony-ps3

Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries

- Stabilize custom allocators

- Map

ENOTSUP

toErrorKind::Unsupported

- Fix soundness issues in

std::sys::pal::sgx::waitqueue::unsafe_list

Stabilized APIs

impl PartialEq<Cow<'_, [U]>> for Vec<T, A>

impl PartialEq<Cow<'_, [U]>> for &[T]

impl PartialEq<Cow<'_, [U]>> for &mut [T]

std::alloc::Allocator

std::alloc::Global

std::alloc::System

impl Allocator for Global

impl Allocator for System

impl<A: Allocator> Allocator for &A

impl<T: Allocator, A: Allocator> Allocator for Box<T, A>

impl<A: Allocator> Allocator for &mut A

impl<T: Allocator, A: Allocator> Allocator for Arc<T, A>

impl<T: Allocator, A: Allocator> Allocator for Rc<T, A>

Technology