Episode
What's New in Rust 1.79 and 1.80
- Podcast
- Rustacean Station
- Published
- May 10, 2025
- Duration seconds
- 5266
- Processing state
processed- Canonical source
- https://rustacean-station.org/episode/rust-1.79-1.80/
Actions
POST https://stenobird.com/v1/public/podcasts/rustacean-station/episodes/what-s-new-in-rust-1-79-and-1-80/transcription-requests
Idempotently request low-priority transcript generation for this episode.GET https://stenobird.com/podcast/rustacean-station/what-s-new-in-rust-1-79-and-1-80.md
Read the agent-friendly Markdown representation of this episode resource.
Summary
A technical breakdown of the key language changes, stability improvements, and soundness fixes introduced in Rust 1.79 and 1.80. The discussion covers everything from new inline const expressions to critical changes in thread safety for standard library locks.
Topics
- Rust Programming Language
- Rust 1.79
- Rust 1.80
- Compile-time evaluation
- Software Soundness
- Clippy Lints
- Cargo
- Memory Safety
Highlights
- Main idea: Inline const expressions allow for arbitrary compile-time evaluation within blocks, enhancing the power of constant definitions
- Practical takeaway: Use the new 'unnamable types' lint to catch public API types that are accidentally inaccessible due to module visibility
- Failure mode: Be aware that ReentrantLockGuard is no longer Sync if the underlying type isn't Sync, impacting StdoutLock and StderrLock
- Main idea: Cargo is increasingly adopting Git Oxide to reduce C dependencies and improve performance in file listing operations
- Practical takeaway: The new Clippy 'manual_clamp' lint helps refactor verbose conditional logic into the more idiomatic .clamp() method
Chapters
1:00Inline Const Expressions: Understanding the new syntax for evaluating arbitrary expressions at compile time using const blocks.14:30Lifetimes and Temporaries: A deep dive into the nuances of lifetime extension and how temporaries behave within expressions.28:05Wide Pointers and Safety: Analyzing the structure of raw slices and the safety guarantees of the length method.41:05Clone Implementation Guarantees: New documentation regarding the performance and logic guarantees of CloneFrom implementations.54:55Configuration and Attributes: Discussing the use of cfg flags and allow attributes in the Rust ecosystem.1:14:35The Never Type and Fallbacks: Exploring the evolution of the 'never' type and the decision to avoid using the unit type as a fallback.1:21:15New Lints and Soundness Fixes: Reviewing the unnamable types lint, manual clamp detection, and the breaking changes in 1.80's lock implementation.