The Wire · Showcase
RUSTC COMPILATION CUTS 3 SECONDS, STDLIB DITCHES SEALED TRAITS
By RepoJournal · Filed · About Rust
Compiler optimization shaves measurable time from rustc_ast_pretty while stdlib removes legacy trait patterns in favor of native impl syntax.
The Rust team landed a compilation win overnight: removing the itertools dependency from rustc_ast_pretty cut module compiletime from 13.57s to 10.58s [1], part of broader work on incremental systems. In parallel, the last vestigial sealed trait pattern was stripped from stdlib in favor of the newer impl(self) syntax now that stdarch has caught up [2]. Separate from that, raw pointer intrinsics stabilized: size_of_val_raw, align_of_val_raw, and Layout::for_value_raw can now be called without holding a valid reference, expanding their usability [3]. On the diagnostics front, compiler suggestions for missing trait items now label unstable items separately, so you won't mistake impl hints [4]. Rust-analyzer absorbed a major rowan 0.17.0 bump that removes token text and Owned/Ref node variants [5], complemented by internal work porting ExprScopes to the visitor pattern [6] and fixing MIR debug execution for bitflags [7]. Miri also tightened error handling for argfiles, which were causing user confusion [8].
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 rust-analyzer if you maintain dependent projects relying on rowan rust-lang/rust-analyzer [plan]
- → Review stabilized raw pointer intrinsics for use in unsafe code paths rust-lang/rust [monitor]
References
- [1] Rollup merge of #160333 - blyxyas:reduce-deps, r=mejrs rust-lang/rust
- [2] Rollup merge of #160311 - jhpratt:sealed-traits, r=joboet rust-lang/rust
- [3] stabilize size_of_val_raw, align_of_val_raw, Layout::for_value_raw ↗ rust-lang/rust
- [4] When issuing suggestions for missing trait items, label unstable items ↗ rust-lang/rust
- [5] Bump rowan 0.17.0 ↗ rust-lang/rust-analyzer
- [6] internal: Port `ExprScopes` over to visitor fully ↗ rust-lang/rust-analyzer
- [7] fix: Make mir debug execution work fot bitflags items ↗ rust-lang/rust-analyzer
- [8] Merge pull request #5237 from RalfJung/cargo-miri-argfile rust-lang/miri