$ the-wire · showcase
miri's 19-PR rollup lands repr(C) ZST ABI fix, stack-protector denial
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
A 19-pull-request rollup moved through miri today, carrying a repr(C) ABI correction for zero-sized types and a warn-by-default denial of partial -Z stack-protector use that enables RFC 3855.
Rollup merge of #157941 - arielb1:deny-partial-stack-protector, r=rcvalle rust-lang/rust
Uses of stack-protector that cover only a subset of the crates in a process now warn by default and need -Z allow-partial-mitigations=stack-protector to proceed, implementing RFC 3855; the delay from the earlier change was deliberate to allow a smooth transition.
Distinguish `repr(C)` ZSTs from others in ABI computation rust-lang/rust
repr(C) zero-sized types are now distinguished from other ZSTs when the compiler computes ABI, which affects how such types are passed across FFI boundaries. Read the PR if your crate defines repr(C) ZSTs consumed from C.
Fix COFF renaming of decorated (stdcall/fastcall/vectorcall) exports rust-lang/rust
COFF symbol renaming only stripped the i686 underscore prefix, so stdcall, fastcall, and vectorcall exports on Windows were misread as internal and renamed. The full undecoration now lives in symbol_export::undecorate_coff_symbol and is shared with link.rs, with run-make coverage for the decorated calling conventions.
Rollup merge of #161201 - the8472:tidy-opts, r=Kobzol rust-lang/miri
Tidy had slowed considerably over the years; the optimizations here bring ./x test tidy back to roughly 5.076 s mean under hyperfine, which trims the loop for anyone who runs tidy locally before pushing.
feat: add `Tool::get_envs` and deprecate `Tool::env` rust-lang/cc-rs
Tool::env is deprecated in favor of Tool::get_envs, which returns an exact-size, double-ended iterator over (&OsStr, &OsStr) pairs and reads environment entries stored as Vec<(Arc<OsStr>, Arc<OsStr>)>. Existing Tool::env calls keep working but are now on a deprecation path.
fix: Don't source-map #[doc] strings that contain escapes rust-lang/rust-analyzer
Syntax highlighting panicked on a #[doc = "..."] attribute whose escapes preceded non-ASCII text, because line offsets were recorded as if they pointed into the raw literal while the unescaped string was stored. The source map is no longer built for escape-containing doc attributes.
Update crate `wicked-estate-resolve` rust-lang/crates.io-index
Quiet elsewhere: the crates.io index absorbed routine updates for wicked-estate, wicked-estate-mcp, wicked-estate-resolve, send_it_vm, and quarb-xpath, and rust-analyzer's lib crates moved to trusted publishing so the team repo can track them.
Action items
- → Add -Z allow-partial-mitigations=stack-protector to builds that enable stack-protector for only some crates in a process rust-lang/rust [plan]
- → Migrate Tool::env calls in cc-rs consumers to Tool::get_envs rust-lang/cc-rs [plan]