$ cat rust-lang/week/2026-11-02.log
the week in review · Nov 2 – Nov 8, 2026
rustc to stop silently dropping unknown LLVM diagnostics
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
rust-analyzer's ThinMap cuts 40mb to 142mb from analysis-stats runs, while rustup and Cargo close handling gaps in interrupted downloads and missing crates.
Don't ignore unknown LLVM diagnostics rust-lang/rust
Rust has been ignoring LLVM diagnostic kinds it does not recognize, which the PR notes means some error diagnostics get discarded and can then resurface later as harder-to-diagnose failures. Unknown kinds will now be surfaced rather than swallowed, so expect new compiler output where LLVM previously stayed quiet.
perf: Provide `ThinMap`, a map that uses `ThinVec` when the length is small rust-lang/rust-analyzer
The new map is one machine word inline with no extra capacity out of line, and linear search wins at small lengths anyway. On `analysis-stats` it saves 40mb on self, 77mb on buck2 and 142mb on omicron, memory that lands directly on rust-analyzer's footprint in large workspaces.
fix(config)!: store override paths as given rust-lang/rustup
`rustup override set` used to canonicalize the directory before writing it to `settings.toml`, so `--path` on a symlink recorded the target and a relative path to a not-yet-created directory was stored verbatim. Overrides are now stored as given and matched by identity rather than canonical path, marked as a breaking change, so paths already in settings.toml may not resolve the same way.
fix(registry): handle HTTP 410/451 for missing crates (#17665) rust-lang/cargo
Handling for HTTP 410 and 451 was accidentally dropped, and this restores it so Cargo distinguishes a crate that is gone or unavailable from other registry failures. Registries that serve those codes behind mirrors or proxies behave per the documented behavior again.
Rollup merge of #162819 - kpreid:must-use-advice, r=fmease rust-lang/rust
The suggestion for `unused_must_use` now flags that ignoring a value is a decision, not a formality; the old "help: use `let _ = ...`" wording gave no hint that it might be the wrong move. Expect noisier help text in existing code that discards results.
Preserve window size and gzip mode across Decompress::reset rust-lang/flate2-rs
`Decompress::new_with_window_bits` and `new_gzip` set up the inflate stream, but on the zlib C backends and zlib-rs, `reset()` reinitialized it with the default 15 window bits. After `reset(true)` a 9-bit-window decoder would accept zlib streams declaring a 32 KiB window, so code reusing a decompressor across resets was validating less than it asked for.
Auto merge of #165432 - JonathanBrouwer:rollup-V0ind8A, r=JonathanBrouwer rust-lang/rust
The week's merges include a fix for unsoundness when compiling `[diverging_const; 0]`, plus a rustdoc perf change avoiding redundant HIR-ty-lowering of types and const args where possible.
Rollup merge of #165231 - RichardTjokroutomo:target-argument-removal, r=JonathanBrouwer rust-lang/rust
Alongside: rollups also landed a scarier `unused_must_use` suggestion, removal of a redundant `Target` parameter from `AttributeParser` methods, a more accurate span in the never-pattern match arm suggestion, and a new `#[lint::attribute]` tool namespace parsed but not yet builtin.
$ ls rust-lang/week/ # the briefings behind this review
Keep up with Rust in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.
Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.