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

26/10/2024 1h 45min
 What's New in Rust 1.76, 1.77, and 1.78

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

Episode Synopsis

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: [email protected]


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