RepoJournal

$ cat rust-lang/week/2026-08-24.log

Rust

Rust

the week in review · Aug 24 – Aug 30, 2026

Never type stabilizes, allocators noalias cleared, Miri enforces strict shims

Rust stabilized the never type, clarified the semantics of custom allocators, and hardened Miri's shim signature checking, alongside targeted fixes across libc, compiler-builtins, and docs.rs.

669 commits 122 PRs merged 2 releases 7 briefings covered

The Rust compiler formally stabilized the never type in the week's rollup [1]. The accompanying lint `dependency_on_unit_never_type_fallback` was removed [2], and the internal tooling no longer relies on `#![feature(never_type)]` [3]. This means the `!` type is now usable on stable, ending the fallback to `()` in dependent type positions, which has been a common source of confusion in generic code.

The Miri interpreter, which validates unsafe code and foreign shim signatures, tightened its `check_shim_sig` path. All variadic functions now go through strict signature checking [4], the old lenient `check_shim_sig` was deprecated [5], and `main` foreign items no longer use the lenient variant [6]. The shim signature and variadic macros were unified as part of this work [8]. In a related correction, Miri now recognizes that custom allocators do not receive `noalias` after all [7]. This is a behavior fix that aligns Miri's alias modeling with the actual Rust semantics, so code that passed under Miri but violated real aliasing rules may now be flagged.

The compiler team also addressed a target feature compatibility issue: SSE or at least AVX2 is incompatible with the soft-float ABI [9]. This has practical impact for targets that use soft-float ABIs and rely on these CPU features.

Elsewhere, libc added support for HelenOS [10] and deprecated the lfs bindings on l4re [11]. compiler-builtins implemented `Complex` mul and div libcalls [12] and set up CI on a s390x-resolute runner [13]. crates.io updated the `pamoja-security` crate [14], and docs.rs updated its Rust toolchain [15]. One rollup notes a fix for a TCP issue in the UEFI target [16]. These are incremental but keep the ecosystem moving on less common targets.

Finally, a Rust project director election post was shared over the week, signaling a governance step that readers who participate in project elections may want to track.

References

  1. [1] Auto merge of #155499 - WaffleLapkin:stabilize-never-type, r=JonathanBrouwer rust-lang/rust
  2. [2] remove `dependency_on_unit_never_type_fallback` lint rust-lang/rust
  3. [3] remove `#![feature(never_type)]` from tools rust-lang/rust
  4. [4] port all variadic functions to strict signature checking ↗ rust-lang/miri
  5. [5] deprecate the old 'lenient' check_shim_sig rust-lang/miri
  6. [6] target_features: sse (or at least avx2) is incompatible with soft-float ABI ↗ rust-lang/rust
  7. [7] Custom allocators do not get noalias after all ↗ rust-lang/miri
  8. [8] unify shim_sig and shim_sig_variadic macros ↗ rust-lang/miri
  9. [9] Clippy subtree update ↗ rust-lang/rust
  10. [10] Add HelenOS support ↗ rust-lang/libc
  11. [11] Auto merge of #161772 - JonathanBrouwer:rollup-USO96L6, r=JonathanBrouwer rust-lang/rust
  12. [12] implement `Complex` mul and div libcalls ↗ rust-lang/compiler-builtins
  13. [13] ci: build and test with s390x-resolute runner ↗ rust-lang/compiler-builtins
  14. [14] Update crate `pamoja-security` rust-lang/crates.io-index
  15. [15] chore(deps): update rust ↗ rust-lang/docs.rs
  16. [16] Rollup merge of #161557 - devnexen:uefi_tcp_fix, r=clarfonthey rust-lang/rust

$ ls rust-lang/week/ # the briefings behind this review