The Wire · Showcase
MIRI CRACKS DOWN ON FLEXIBLE SHIM SIGNATURES
By RepoJournal · Filed · About Rust
Miri is tightening the screws on foreign function shims, and the ripple is hitting rustc's soft-float ABI handling.
RalfJung is driving a hard cleanup through Miri, porting variadic functions to strict signature checking [1] and deprecating the old lenient check_shim_sig path [2], with the main foreign items dropping the lenient variant altogether [3]. This tightening comes as rustc itself picks up a guard against enabling avx2 with a soft-float ABI, a combination that "can crash the backend" [4], so now the compiler will preempt it at the rust level. Meanwhile, the Clippy subtree got a routine bump [5], and docs.rs is rolling to the rust 1.98.0 toolchain [6], so expect your next nightly to feel a little more strict on the edges. For the UEFI crowd, a rolled-up fix makes TcpStream::nodelay actually work and rejects zero timeouts, which every other backend already did [7].
One email a day. Unsubscribe in one click.
Keep up with Rust in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Update any code that relied on lenient Miri shim signatures; it will break rust-lang/miri [immediate]
- → Test soft-float targets with avx2 features enabled; rustc now rejects it rust-lang/rust [monitor]
- → Review new Clippy lints after the subtree update rust-lang/rust [monitor]
- → Verify UEFI TCP code against the nodelay and timeout fixes rust-lang/rust [plan]
References
- [1] port all variadic functions to strict signature checking ↗ rust-lang/miri
- [2] deprecate the old 'lenient' check_shim_sig rust-lang/miri
- [3] stop using check_shim_sig_lenient for main foreign_items ↗ rust-lang/miri
- [4] target_features: sse (or at least avx2) is incompatible with soft-float ABI ↗ rust-lang/rust
- [5] Clippy subtree update ↗ rust-lang/rust
- [6] chore(deps): update rust ↗ rust-lang/docs.rs
- [7] Rollup merge of #161557 - devnexen:uefi_tcp_fix, r=clarfonthey rust-lang/rust