Rustacean Station

What's New in Rust 1.79 and 1.80

Samstag, 10. Mai 2025 · 1 h 28

MP3

Shownotes

Jon and Ben discuss the highlights of the 1.79 and 1.80 releases of Rust.

Contributing to Rustacean Station

Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!

• Twitter: @rustaceanfm (twitter.com/rustaceanfm)

• Discord: Rustacean Station (discord.gg/cHc3Gyc)

• Github: @rustacean-station (github.com/rustacean-station)

• Email: hello@rustacean-station.org

Timestamps & referenced resources

[@01:02] - Rust 1.79 (blog.rust-lang.org/2024/06/13/Rust-1.79.0)

• [@01:02] - Inline const expressions (blog.rust-lang.org/2024/06/13/Rust-1.79.0/#inl…)

• [@08:33] - Bounds in associated type position (blog.rust-lang.org/2024/06/13/Rust-1.79.0/#bou…)

• [@14:11] - Extending automatic temporary lifetime extension (blog.rust-lang.org/2024/06/13/Rust-1.79.0/#ext…)

• Mara’s blog post on temporary lifetimes (blog.m-ou.se/super-let)

• [@21:55] - Frame pointers enabled in standard library builds (blog.rust-lang.org/2024/06/13/Rust-1.79.0/#fra…)

• Does omitting the frame pointer really affect performance? (stackoverflow.com/questions/13006371/does-omit…)

• [@25:37] - Stabilized APIs (blog.rust-lang.org/2024/06/13/Rust-1.79.0/#sta…)

• [@25:37] - {integer}::unchecked_add (doc.rust-lang.org/stable/core/primitive.i32.ht…)

• [@27:39] - <*const [T]>::len (doc.rust-lang.org/stable/core/primitive.pointe…)

• [@29:21] - <[u8]>::utf8_chunks (doc.rust-lang.org/stable/core/primitive.slice.…)

• [@31:21] - CStr::count_bytes (doc.rust-lang.org/stable/core/ffi/c_str/struct…)

• [@32:41] - num::NonZero<T> (doc.rust-lang.org/stable/core/num/struct.NonZe…)

• [@36:30] - io::Error::downcast (doc.rust-lang.org/stable/std/io/struct.Error.h…)

• [@36:50] - path::absolute (doc.rust-lang.org/stable/std/path/fn.absolute.…)

• [@38:18] - Changelog deep-dive

• [@38:31] - Stabilize WASM target features that are in phase 4 and 5 (github.com/rust-lang/rust/pull/117457)

• [@39:15] - Document overrides of clone_from() in core/std (github.com/rust-lang/rust/pull/122201)

• [@41:46] - Switch to using gitoxide by default for listing files in cargo (github.com/rust-lang/cargo/pull/13696)

• [@43:03] - Stabilize lint unnameable_types (github.com/rust-lang/rust/pull/120144)

• [@44:46] - manual_clamp lint (rust-lang.github.io/rust-clippy/master/index.h…)

[@45:46] - Rust 1.80 (blog.rust-lang.org/2024/07/25/Rust-1.80.0)

• [@46:09] - LazyCell and LazyLock (blog.rust-lang.org/2024/07/25/Rust-1.80.0/#laz…)

• [@53:42] - Checked cfg names and values (blog.rust-lang.org/2024/07/25/Rust-1.80.0/#che…)

• Detailed blog post on checked cfg (blog.rust-lang.org/2024/05/06/check-cfg)

• [@56:41] - Exclusive ranges in patterns (blog.rust-lang.org/2024/07/25/Rust-1.80.0/#exc…)

• [@58:52] - Stabilized APIs (blog.rust-lang.org/2024/07/25/Rust-1.80.0/#sta…)

• [@59:05] - Vec::<[T; N]>::into_flattened (doc.rust-lang.org/stable/alloc/vec/struct.Vec.…)

• <[[T; N]]>::as_flattened (doc.rust-lang.org/stable/core/primitive.slice.…)

• [@1:00:31] - <[u8]>::trim_ascii (doc.rust-lang.org/stable/core/primitive.slice.…)

• [@1:02:06] - NonNull::add and other ptr-like methods (doc.rust-lang.org/stable/std/ptr/struct.NonNul…)

• [@1:03:41] - impl IntoIterator for Box<[T]> (doc.rust-lang.org/stable/alloc/boxed/struct.Bo…)

• [@1:05:46] - Option::take_if (doc.rust-lang.org/stable/std/option/enum.Optio…)

• [@1:07:30] - Ipv4Addr::to_bits (doc.rust-lang.org/stable/core/net/struct.Ipv4A…)

• [@1:09:10] - Changelog deep-dive

• [@1:09:25] - x86_64-unknown-linux-none (github.com/rust-lang/rust/pull/125023)

• [@1:11:07] - Add size_of and align_of to the prelude (github.com/rust-lang/rust/pull/123168)

• [@1:12:34] - Never type fallback flowing into unsafe (doc.rust-lang.org/rustc/lints/listing/warn-by-…)

• [@1:17:29] - New panics and aborts in the standard library

• Abort when OwnedFd is violated (github.com/rust-lang/rust/pull/124210)

• Panic if set_extension adds / (github.com/rust-lang/rust/pull/125070)

• [@1:20:28] - Restore enum variants in rustdoc for type aliases (github.com/rust-lang/rust/pull/125300)

• [@1:21:12] - Change assigning_clones lint to pedantic (github.com/rust-lang/rust-clippy/pull/12779)

• [@1:22:15] - Turn lints into hard errors (github.com/rust-lang/rust/pull/124661)

• [@1:22:49] - env::set_var regression (github.com/rust-lang/rust/pull/124636#issuecom…)

• [@1:24:34] - StdoutLock regression (github.com/rust-lang/rust/issues/127340#issuec…)

[@1:26:00] - Rust 1.80.1 (blog.rust-lang.org/2024/08/08/Rust-1.80.1)

Fixes miscompilation when comparing
floats (blog.rust-lang.org/2024/08/08/Rust-1.80.1/#mis…)
and false positives in the dead_code
lint (blog.rust-lang.org/2024/08/08/Rust-1.80.1/#fal…).

Credits

Intro Theme: twitter.com/AerocityMusic

Audio Editing: Jon Gjengset (thesquareplanet.com)

Hosting Infrastructure: Jon Gjengset (thesquareplanet.com)

Show Notes: Jon Gjengset (thesquareplanet.com)

Hosts: Jon Gjengset and Ben Striegel

0:00 / 0:00