# What's New in Rust 1.79 and 1.80 Page: https://stenobird.com/podcast/rustacean-station/what-s-new-in-rust-1-79-and-1-80 Text version: https://stenobird.com/podcast/rustacean-station/what-s-new-in-rust-1-79-and-1-80.md Podcast: [Rustacean Station](https://stenobird.com/podcast/rustacean-station) Published: 2025-05-10T08:09:10+00:00 Episode link: https://rustacean-station.org/episode/rust-1.79-1.80/ Audio file: https://dts.podtrac.com/redirect.mp3/audio.rustacean-station.org/file/rustacean-station/2025-05-10-rust-1.79-1.80.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/rustacean-station/episodes/what-s-new-in-rust-1-79-and-1-80 Duration seconds: 5266 ## Resource 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. ## 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 ## Topics Rust Programming Language, Rust 1.79, Rust 1.80, Compile-time evaluation, Software Soundness, Clippy Lints, Cargo, Memory Safety ## Chapters - 1:00 — Inline Const Expressions: Understanding the new syntax for evaluating arbitrary expressions at compile time using const blocks. - 14:30 — Lifetimes and Temporaries: A deep dive into the nuances of lifetime extension and how temporaries behave within expressions. - 28:05 — Wide Pointers and Safety: Analyzing the structure of raw slices and the safety guarantees of the length method. - 41:05 — Clone Implementation Guarantees: New documentation regarding the performance and logic guarantees of CloneFrom implementations. - 54:55 — Configuration and Attributes: Discussing the use of cfg flags and allow attributes in the Rust ecosystem. - 1:14:35 — The 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:15 — New Lints and Soundness Fixes: Reviewing the unnamable types lint, manual clamp detection, and the breaking changes in 1.80's lock implementation. ## Actions - request_transcript: `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. - read_markdown: `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. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.