$ the-wire · showcase
Rust 1.99.0 lands, Miri picks up FreeBSD CI and simpler Span plumbing
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
A release-train day: Rust 1.99.0 ships with stabilized C-variadic function definitions, Miri stores Span instead of SpanData now that the serial front end is gone, and a native FreeBSD runner joins its CI.
Rust 1.99.0 rust-lang/rust
The 1.99.0 release stabilizes C-variadic function definitions and the ability to use #[unsafe(...)] attributes, and adds an allow-by-default raw_borrows_via_references lint for references that decay immediately into raw borrows. It also extends the unconditional_panic lint to calls that panic when the chunks/windows size is zero, so a crate that triggers it now sees a new warning.
Store `Span` instead of `SpanData` rust-lang/miri
Miri stored SpanData rather than Span only because Span did not implement Send, and some of its other types needed to be. Nicholas Nethercote notes that when the serial rustc front-end was removed Span became Send, so the standard type is now stored directly.
Add native FreeBSD runner to CI rust-lang/miri
A native FreeBSD runner built on the vmactions/freebsd-vm@v1 action now runs Miri's test suite on real FreeBSD to surface differences from the native implementation, a setup modeled on libc's and written to be extended to other platforms.
linux, netbsd: Give statvfs a `Default` impl rust-lang/libc
Trevor Gross gives statvfs a Default impl on Linux and NetBSD, smoothing over the recent addition of a new field, which is technically breaking, by switching to s2 so the trait is implemented. Code that constructs a statvfs without listing every field now has a path to keep compiling.
dragonfly: Move `INHERIT_ZERO` to the freebsd module rust-lang/libc
Xuntao Chi moves INHERIT_ZERO into the FreeBSD module and drops it from the DragonFly semver baseline: it is a 2017 FreeBSD addition to minherit(2) that DragonFly never picked up and that is absent from its <sys/mman.h> on master and the 6.0, 6.2 and 6.4 releases. DragonFly code referencing it will no longer compile.
THIR date check rust-lang/rustc-dev-guide
The long tail was documentation and constant work: the rustc-dev-guide's THIR chapter got its announced date check with updated example output, explicit tail-call checking as a THIR use, and a correction that thir_body is a query, while libc filled in haiku AI_*/NI_* constants, Apple posix_spawn_file_actions_addchdir, and c_short-typed Cygwin POSIX_SPAWN_* flags.