Rustacean Station

What's New in Rust 1.76, 1.77, and 1.78

Samstag, 26. Oktober 2024 · 1 h 46

MP3

Shownotes

Jon and Ben discuss the highlights of the 1.76, 1.77, and 1.78 releases of Rust.

This episode was recorded as part of a YouTube live stream on
2024-05-18, which you can still
watch (youtube.com/live/VpSXTJXX1YA?t=7037s).

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

[@00:34] - Rust 1.76 (blog.rust-lang.org/2024/02/08/Rust-1.76.0.html)

• [@01:18] - ABI compatibility updates (blog.rust-lang.org/2024/02/08/Rust-1.76.0.html…)

• The updated ABI section (doc.rust-lang.org/stable/std/primitive.fn.html…)

• An interesting article on ABIs in Swift vs Rust (faultlore.com/blah/swift-abi)

• [@08:53] - Type names from references (blog.rust-lang.org/2024/02/08/Rust-1.76.0.html…)

• doc.rust-lang.org/stable/std/any/fn.type_name.…

• doc.rust-lang.org/stable/std/any/fn.type_name_…

• [@10:35] - Stabilized APIs (blog.rust-lang.org/2024/02/08/Rust-1.76.0.html…)

• [@10:56] - Result::inspect (doc.rust-lang.org/stable/std/result/enum.Resul…)

• [@13:53] - Arc::unwrap_or_clone (doc.rust-lang.org/stable/std/sync/struct.Arc.h…)

• [@15:25] - std::hash::DefaultHasher (doc.rust-lang.org/stable/std/hash/index.html#s…)

• [@18:01] - ptr::addr_eq (doc.rust-lang.org/stable/std/ptr/fn.addr_eq.html)

• [@21:30] - Changelog deep-dive

• [@21:33] - Resize/hide rustdoc bars (github.com/rust-lang/rust/pull/115660)

[@22:40] - Rust 1.77 (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html)

• [@22:51] - C-string literals (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html…)

• std::ffi::CStr (doc.rust-lang.org/std/ffi/struct.CStr.html)

• [@28:20] - Support for recursion in async fn (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html…)

• [@31:43] - offset_of! (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html…)

• [@36:32] - Enable strip in release profiles by default (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html…)

• [@39:35] - Stabilized APIs (blog.rust-lang.org/2024/03/21/Rust-1.77.0.html…)

• [@39:36] - core::net (doc.rust-lang.org/stable/core/net/index.html)

• [@40:59] - f64::round_ties_even (doc.rust-lang.org/stable/std/primitive.f64.htm…)

• [@42:05] - Mutex::clear_poison (doc.rust-lang.org/stable/std/sync/struct.Mutex…)

• [@43:43] - File::create_new (doc.rust-lang.org/stable/std/fs/struct.File.ht…)

• doc.rust-lang.org/std/fs/struct.OpenOptions.html

• [@46:15] - Changelog deep-dive

• [@46:46] - Lint on references to static mut (github.com/rust-lang/rust/pull/117556)

• doc.rust-lang.org/std/cell/struct.SyncUnsafeCe…

• [@50:05] - Undeprecate unstable_features lint (github.com/rust-lang/rust/pull/118639)

• [@51:37] - Deny braced macro invocation in let-else (github.com/rust-lang/rust/pull/119062)

• Details from dtolnay comment (github.com/rust-lang/rust/issues/119057#issuec…)

• [@55:45] - cargo:: in build scripts (github.com/rust-lang/cargo/pull/12201)

• [@56:20] - Standardized package ID spec in Cargo (doc.rust-lang.org/nightly/cargo/reference/pkgi…)

• [@57:36] - slice::first_chunk (doc.rust-lang.org/stable/std/primitive.slice.h…)

[@59:55] - Rust 1.77.1 (blog.rust-lang.org/2024/03/28/Rust-1.77.1.html)

Stripping debug info in release builds broke Windows.

[@1:00:58] - Rust 1.77.2 (blog.rust-lang.org/2024/04/09/Rust-1.77.2.html)

Fixes cve.org/CVERecord?id=CVE-2024-24576.

Detailed advisory (blog.rust-lang.org/2024/04/09/cve-2024-24576.h…),
fix (github.com/rust-lang/rust/pull/123681), and current
logic (github.com/rust-lang/rust/blob/ae4c6b66402cdbd…).

[@1:04:54] - Rust 1.78 (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html)

• [@1:07:55] - Diagnostic attributes (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html…)

• #[diagnostic] documentation (doc.rust-lang.org/nightly/reference/attributes…)

• [@1:13:13] - Asserting unsafe preconditions (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html…)

• Implementation PR (github.com/rust-lang/rust/pull/120594)

• [@1:19:56] - Deterministic realignment (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html…)

• [@1:23:24] - Stabilized APIs (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html…)

• [@1:23:33] - impl Read for &Stdin (doc.rust-lang.org/stable/std/io/struct.Stdin.h…)

• [@1:24:03] - Relax bounds on Error trait implementations (github.com/rust-lang/rust/pull/113833)

• [@1:25:40] - Compatibility notes (blog.rust-lang.org/2024/05/02/Rust-1.78.0.html…)

• [@1:25:40] - Windows requirement bump (blog.rust-lang.org/2024/02/26/Windows-7.html)

• Replace pthread RwLock (github.com/rust-lang/rust/pull/110211)

• Slim reader/writer locks (learn.microsoft.com/en-us/windows/win32/sync/s…)

• [@1:29:25] - LLVM 18 brings *128 ABI change (blog.rust-lang.org/2024/03/30/i128-layout-upda…)

• [@1:32:04] - Changelog deep-dive

• [@1:32:04] - Make non-PartialEq-typed consts as patterns a hard error (github.com/rust-lang/rust/pull/120805)

• [@1:34:59] - Suggest moving definition if non-found macro_rules! is defined later (github.com/rust-lang/rust/pull/121130)

• [@1:36:08] - Stabilize v4 of Cargo lockfile (github.com/rust-lang/cargo/pull/12852)

• [@1:37:36] - cargo update highlights stale dependencies (github.com/rust-lang/cargo/pull/13372)

• [@1:38:23] - Deprecate non-extension .cargo/config files (github.com/rust-lang/cargo/pull/13349)

• [@1:39:19] - Clippy lint assigning_clones (rust-lang.github.io/rust-clippy/master/index.h…)

• [@1:40:49] - Clippy lint incompatible_msrv (rust-lang.github.io/rust-clippy/master/index.h…)

• [@1:42:22] - cargo new stopped commenting in Cargo.toml (github.com/rust-lang/cargo/pull/13371)

Credits

Intro Theme: twitter.com/AerocityMusic

Audio Editing: twitter.com/AerocityMusic

Hosting Infrastructure: Jon Gjengset (thesquareplanet.com)

Show Notes: Jon Gjengset (thesquareplanet.com)

Hosts: Jon Gjengset and Ben Striegel

0:00 / 0:00