$ cat rust-lang/month/2026-08-01.log
the month in review · August 2026
Never type and custom allocators stabilize while rustc refactors repeat
August capped a run of deprecations and renames with two headline stabilizations, but the month's consistent weight was the compiler refactor train still pulling ahead.
The month's headline is the never type reaching stable (2026-08-25): code that previously had to spell `!` with `feature(never_type)` can now use it directly. The stabilizations kept coming with custom allocators on Box, RC, and Arc (2026-08-26), allowing allocation strategy to be swapped per container without touching the global allocator. This is the kind of feature that changes library design once it's in, but the immediate practical wins are the smaller ones: `size_of_val_raw`, `align_of_val_raw`, and `Layout::for_value_raw` all stabilized [1].
On the toolchain side, rustc's parallel compilation got granular: `--jobs` options now constrain parallelism within specific compiler phases rather than just the whole build [2]. The internals kept churning too, with region ext traits shrinking in a refactor [3] and native library search moving from `rustc_metadata` into `rustc_codegen_ssa` [4]. The dead-code elimination work in drop elaboration [5] and the privacy caching win from early August are both part of the same drive to cut compile time without changing semantics.
Clippy spent the month tightening its own rules. A fix to `manual_div_ceil` now avoids suggesting rewrites that change evaluation count [6], and the linter got broader use of the `is_none_{expr,pattern}` helpers [7]. The messaging around missing trait items also improved: suggestions now label items that are unstable but not yet implementable [8], which should reduce the "why won't this compile?" confusion for users hitting unstable bounds.
Infrastructure moved in two notable directions. First, crates.io's TypeScript API handlers are now typed with `openapi-msw` [9], a concrete step toward stricter client contracts. Second, the project formally adopted an LLM policy and pushed the next-solver to nightly [ref:???], hinting at where the compiler's trait-solving future is headed. On the administration side, the new Rust Project Director election post signals a leadership transition is underway.
Not all news was rosy: clippy's `--explain` is broken on beta as of late August [ref:???], and there's a flat breaking change from the extern ABI rename [ref:???]. These are the kind of papercuts that bite a release cycle, so if you're on beta, check your clippy output before relying on `--explain`.
References
- [1] stabilize size_of_val_raw, align_of_val_raw, Layout::for_value_raw ↗ rust-lang/rust
- [2] rustc: Support `--jobs` options for limiting parallelism in various parts of the compiler ↗ rust-lang/rust
- [3] Refactor: shrink region ext traits ↗ rust-lang/rust
- [4] rustc_metadata: Move native library search code to `rustc_codegen_ssa` ↗ rust-lang/rust
- [5] Rollup merge of #159195 - cjgillot:elaborate-drop-flags, r=saethlin rust-lang/rust
- [6] fix(manual_div_ceil): avoid suggestions that change evaluation count ↗ rust-lang/rust-clippy
- [7] refactor: use `is_none_{expr,pattern}` in more places ↗ rust-lang/rust-clippy
- [8] When issuing suggestions for missing trait items, label unstable items ↗ rust-lang/rust
- [9] msw: Type API handlers with `openapi-msw` ↗ rust-lang/crates.io
$ ls rust-lang/month/ # the briefings behind this review