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.
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
Discord: Rustacean Station
Github: @rustacean-station
Email: hello@rustacean-station.org
Timestamps & referenced resources
[@00:34] - Rust 1.76
[@01:18] - ABI compatibility updates
The updated ABI section
An interesting article on ABIs in Swift vs Rust
[@08:53] - Type names from references
type_name
type_name_of_val
[@10:35] - Stabilized APIs
[@10:56] - Result::inspect
[@13:53] - Arc::unwrap_or_clone
[@15:25] - std::hash::DefaultHasher
[@18:01] - ptr::addr_eq
[@21:30] - Changelog deep-dive
[@21:33] - Resize/hide rustdoc bars
[@22:40] - Rust 1.77
[@22:51] - C-string literals
std::ffi::CStr
[@28:20] - Support for recursion in async fn
[@31:43] - offset_of!
[@36:32] - Enable strip in release profiles by default
[@39:35] - Stabilized APIs
[@39:36] - core::net
[@40:59] - f64::round_ties_even
[@42:05] - Mutex::clear_poison
[@43:43] - File::create_new
OpenOptions
[@46:15] - Changelog deep-dive
[@46:46] - Lint on references to static mut
SyncUnsafeCell
[@50:05] - Undeprecate unstable_features lint
[@51:37] - Deny braced macro invocation in let-else
Details from dtolnay comment
[@55:45] - cargo:: in build scripts
[@56:20] - Standardized package ID spec in Cargo
[@57:36] - slice::first_chunk
[@59:55] - Rust 1.77.1
Stripping debug info in release builds broke Windows.
[@1:00:58] - Rust 1.77.2
Fixes CVE-2024-24576.
Detailed advisory,
fix, and current
logic.
[@1:04:54] - Rust 1.78
[@1:07:55] - Diagnostic attributes
#[diagnostic] documentation
[@1:13:13] - Asserting unsafe preconditions
Implementation PR
[@1:19:56] - Deterministic realignment
[@1:23:24] - Stabilized APIs
[@1:23:33] - impl Read for &Stdin
[@1:24:03] - Relax bounds on Error trait implementations
[@1:25:40] - Compatibility notes
[@1:25:40] - Windows requirement bump
Replace pthread RwLock
Slim reader/writer locks
[@1:29:25] - LLVM 18 brings *128 ABI change
[@1:32:04] - Changelog deep-dive
[@1:32:04] - Make non-PartialEq-typed consts as patterns a hard error
[@1:34:59] - Suggest moving definition if non-found macro_rules! is defined later
[@1:36:08] - Stabilize v4 of Cargo lockfile
[@1:37:36] - cargo update highlights stale dependencies
[@1:38:23] - Deprecate non-extension .cargo/config files
[@1:39:19] - Clippy lint assigning_clones
[@1:40:49] - Clippy lint incompatible_msrv
[@1:42:22] - cargo new stopped commenting in Cargo.toml
Credits
Intro Theme: Aerocity
Audio Editing: Aerocity
Hosting Infrastructure: Jon Gjengset
Show Notes: Jon Gjengset
Hosts: Jon Gjengset and Ben Striegel