$ the-wire · showcase
Rust drops saturating-cast flag, updates CI hardware, tracks crates.io
By RepoJournal · Filed · About Rust
This period shipped 165 commits across 5 repos, headlined by a Rust compiler flag removal that ends an experimental era and CI hardware changes that cut build time roughly in half.
The `-Zsaturating-float-casts` flag is being removed [1], ending the ability to opt out of saturating float-to-int casts, which have been official semantics since 2017; the flag's removal means code relying on it will need to drop it, as it offered "just `-Zplease-miscompile-casts`" [1]. A rollup of 16 PRs [2][3] adds `#[target_feature(enable = ...)]` support for `#[naked]` functions, stabilizes smart pointer map functions, and makes `sin`, `cos`, `exp`, `exp2`, `log`, `log2`, `log10` generic, marking significant compiler and stdlib progress. The `icu_list` dependency update to 2.3 [5] removes the `icu_collections` transitive dependency and swaps `icu_locale` for the smaller `icu_locale_fallback`, shrinking compile-time dependencies. A CI switch to EC2 [4] cuts the `dist-aarch64-linux` full build from 2h25m to 1h30m ($0.59/build) and adds a new `dist-aarch64-linux-quick` builder that takes 50 minutes ($1.059/build), halving turnaround for aarch64 builds. The thanks tooling now tracks crates.io and docs.rs as versionless projects , adding their all-time contributions to the contributions page, and a new page lists all tracked projects with the main page titled "Rust contributions" instead of "Thanks" .
Action items
- → Remove any use of -Zsaturating-float-casts from your build scripts and CI flags before the next nightly update, as the flag is now removed from the compiler rust-lang/rust [immediate]
- → Verify any code that relied on the drop_guard optimization in std, since it was reverted due to perf issues and may need the old non-generic forms rust-lang/rust [plan]
- → If you depend on icu_list, expect a reduced transitive dependency tree in upcoming rustc builds; no action needed beyond normal version bumps rust-lang/rust [monitor]
References
- [1] Rollup merge of #161971 - hanna-kruppe:rm-flag-satfpcast, r=RalfJung ↗ rust-lang/rust
- [2] Auto merge of #162117 - JonathanBrouwer:rollup-vMnIfR5, r=JonathanBrouwer ↗ rust-lang/miri
- [3] Auto merge of #162117 - JonathanBrouwer:rollup-vMnIfR5, r=JonathanBrouwer ↗ rust-lang/rust
- [4] Rollup merge of #162063 - Mark-Simulacrum:aarch64-ec2, r=Kobzol ↗ rust-lang/miri
- [5] Rollup merge of #161287 - robertbastian:23, r=Manishearth ↗ rust-lang/rust