The Wire · Showcase
MIRI OVERHAULS FILE HANDLE LIFECYCLE, RUST TIGHTENS SYMBOL DEFINITION WARNINGS
By RepoJournal · Filed · About Rust
Miri ripped out the unreliable FileDescription::destroy pattern and fixed critical race conditions around file descriptor closure, while the compiler landed strict new lints against POSIX symbol hijacking that have been catching real production bugs.
The Miri team shipped a major architectural fix [1] that removes the fragile FileDescription::destroy callback mechanism. The old approach required instrumenting every place a file handle dies, which proved impossible to maintain correctly across all edge cases [2]. In tandem, they fixed the actual behavior when threads block on file descriptors that later get closed [3], ensuring virtual sockets now match Linux semantics by holding strong references during blocking operations. On the compiler side, Rust landed aggressive new lints [4] that flag attempts to define POSIX symbols like open, read, malloc, and exit with #[no_mangle], addressing months of user confusion where these redefinitions silently broke test runners and other tooling. The same rollup [5] also shipped pointer authentication configuration options [6] for ARM64 and fixed macro-generated semicolon warnings that were masking future hard errors [7]. Architecture teams pushed stdarch forward with LoongArch SIMD improvements [8] and re-enabled Intel ICX runner support after version updates [9]. The Edition team expanded with Mark and Eric Holk joining the roster [10].
Action items
- → Review miri's file handle changes if you maintain code that intercepts FD lifecycle events rust-lang/miri [plan]
- → Run clippy on any #[no_mangle] symbol definitions in your codebase against latest nightly rust-lang/rust [monitor]
- → Test pointer authentication codegen on ARM64 targets if shipping to Darwin or Linux aarch64 rust-lang/rust [plan]
References
- [1] remove FileDescription::destroy ↗ rust-lang/miri
- [2] Merge pull request #5201 from RalfJung/drop-not-destroy rust-lang/miri
- [3] Fix behavior when closing an FD while blocking on it ↗ rust-lang/miri
- [4] Lint against invalid POSIX symbol definitions ↗ rust-lang/rust
- [5] Rollup of 5 pull requests ↗ rust-lang/rust
- [6] Pointer authentication config and user facing options ↗ rust-lang/rust
- [7] Rollup merge of #159222 - joshtriplett:main, r=petrochenkov rust-lang/rust
- [8] loongarch: Use `intrinsics::simd` for vldi ↗ rust-lang/stdarch
- [9] Re-enable ICX run ↗ rust-lang/stdarch
- [10] Add Mark and Eric Holk to the Edition team rust-lang/team