Rust 1.89.0 ships with one historical shift and several quality-of-life upgrades.
Before you rush to rustup update stable, here are the headlines: Intel Macs are no longer a first-class target, the compiler now calls out implicit lifetime relationships, and performance folks get new toys on x86.
Farewell to an era: x86_64-apple-darwin demoted
With Apple fully embracing Apple Silicon and GitHub dropping free macOS x86_64 runners for public CI, the Rust project is following suit.
Starting with 1.89, x86_64-apple-darwin (Intel Mac) moves from Tier 1 to Tier 2.
What changes?
- Tier 2 still provides official toolchains, but full CI guarantees are gone.
- Regressions specific to Intel Macs may slip through releases.
If you still develop Rust on an Intel Mac, consider pinning your toolchain or planning a hardware upgrade.
Compiler clarity: detecting mismatched lifetime syntaxes
Lifetimes are famously subtle. A frequent pitfall is when input lifetimes are explicit while output lifetimes are implicit via elision, hiding a dependency between them.
Example:
// The returned Iter borrows from `scores`, but that's not obvious.
fn items(scores: &[u8]) -> std::slice::Iter<u8> {
scores.iter()
}
Rust 1.89 introduces a default-on lint, mismatched_lifetime_syntaxes, that flags these asymmetric cases and suggests making the relationship explicit, e.g. std::slice::Iter<'_, u8>.
This turns implicit conventions into visible contracts—clearer APIs, fewer surprises, and better safety.
Goodies for performance and ergonomics
Constant generics: underscore inference
You can now use
_in array lengths within const generics to let the compiler infer the size:pub fn all_false<const LEN: usize>() -> [bool; LEN] { [false; _] }New x86 intrinsics
Fresh support lands for families like
sha512,sm3,sm4, andavx512variants—great news for crypto and high-performance workloads.More stabilized APIs
Highlights include file locking with
File::lock,Result::flatten,NonNull::from_ref, and more—small features that add up to smoother day-to-day coding.
Rust 1.89 closes one hardware chapter while making the language more approachable and powerful. Onward.
