The Wire · Showcase
CLIPPY CUTS COMPILE TIME WITH TAB-GROUP REWRITE, UBUNTU 26.04 LANDS IN BUILD ENV
By RepoJournal · Filed · About Rust
Clippy killed a vector allocation that was hitting every doc comment in the crate, shaving up to 1.61% off compile time while the ecosystem upgrades to Ubuntu 26.04 LTS across build infrastructure.
Clippy's `get_chunks_of_tabs` function was collecting character indices into a vector and inspecting them pairwise for every doc comment, a pattern that allocated unnecessarily [1]. The fix rewrote the search to work directly on raw UTF-8 bytes, since tabs are single bytes that cannot appear inside other character encodings [2]. Early benchmarks show measurable wins: regex 1.10.5 dropped 1.61%, with smaller but consistent improvements across syn, serde, wasmi, and ryu [1]. Meanwhile, the Rust ecosystem's build infrastructure moved to Ubuntu 26.04 LTS, requiring ~87 package updates across ffmpeg, ICU, poppler, OpenCV, Qt6, boost, and others [3]. The build environment also added qt6-base-private-dev to support crates compiling against Qt private headers, verified by successfully building qtbridge [8]. Across 106 commits and 17 PRs in the last 24 hours, Clippy also stabilized new constants for `approx_constant` to match Rust 1.94's stable Euler gamma and golden ratio exports [4]. The compiler itself continued its steady refactor: removing outdated type-system comments, cleaning up long-dead workarounds for the P type, and hardening layout randomization guarantees for zero-sized types [5] [6] [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
- → Review Clippy's compile-time improvements; upgrade if benchmarks matter for your CI rust-lang/rust-clippy [plan]
- → Plan Ubuntu 26.04 LTS upgrade for internal build systems; audit Qt, OpenCV, boost, and ffmpeg dependencies rust-lang/crates-build-env [plan]
- → Monitor docs.rs builds for crates that depend on Qt private headers; qt6-base-private-dev is now available rust-lang/crates-build-env [monitor]
References
- [1] perf: find tab groups in doc comments without allocating ↗ rust-lang/rust-clippy
- [2] perf: find tab groups in doc comments without allocating (#17410) rust-lang/rust-clippy
- [3] Update Linux images to Ubuntu 26.04 LTS rust-lang/crates-build-env
- [4] Add `EULER_GAMMA` and `GOLDEN_RATIO` to `approx_constant` ↗ rust-lang/rust-clippy
- [5] Rollup merge of #159761 - chenyukang:yukang-remove-outdated-comment-in-typeck, r=lcnr rust-lang/rust
- [6] Rollup merge of #159773 - panstromek:remove-p-workaround, r=fee1-dead rust-lang/rust
- [7] Rollup merge of #157905 - zachs18:randomize-layout-zst-note, r=davidtwco rust-lang/rust
- [8] Add qt6-base-private-dev for crates using Qt private headers rust-lang/crates-build-env