$ the-wire · showcase
cc-rs 1.7.0 ships, rustfmt makes bare required_version a caret
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
A release, a behavior change in rustfmt's version gate, and steady compiler work: the day's changes land in the places Rust code decides what it accepts and how it builds.
cc-v1.7.0 rust-lang/cc-rs
by github-actions[bot]
cc-rs 1.7.0 adds `Tool::get_envs` and deprecates `Tool::env` (tool env is now stored as `Arc<OsStr>` pairs), links `c++` when Clang uses libc++, and adds `CC_MASM_ASM` with a fallback to `llvm-ml` for MASM files. It also fixes powerpc64-ibm-aix target parsing and makes case handling ASCII-insensitive.
Use caret (^) as the default required_version comparator rust-lang/rustfmt
rustfmt's `required_version` no longer treats a bare version as an exact match; the override in `check_semver_version` is gone, so a bare `"1.2.3"` now behaves like `"^1.2.3"`, matching Cargo's convention. If your config pinned an exact toolchain version that way, the gate you get is looser than the one you wrote.
-Zassumptions-on-binders: rewrite alias outlives constraints more goodly rust-lang/rust
Alias outlives constraints are no longer rewritten when they are not in the current universe. The old code rewrote them to `false` because assumptions are only known for the current universe, and BoxyUwU traces it to a miss in the original PR, where the other candidate-computation sites do check the universe.
MIR move elimination [3/6]: PreciseLiveness rust-lang/rust
The third of six MIR move elimination patches implements `PreciseLiveness`, the lifetime analysis the `MoveElimination` pass needs, computing at sub-statement granularity where a local actually requires storage. That is finer than `MaybeStorageLive`, and it is the groundwork for the RFC's move-elimination pass, not a behavior change yet.
fix(layout): exclude a build-dir created as a parent from backups rust-lang/cargo
Cargo now creates `CACHEDIR.TAG` correctly when the build-dir or target-dir only exists as a side effect of a path inside it, which matters for the target GC work: `cargo +nightly -Zscript check --manifest-path hello.rs` used to leave an unmarked `~/.cargo/build/<hash>/` tree. Companion work extends relative paths in dep-info files to the workspace root, so `include_str!` targets inside a works...
In the `BestObligation` prooftree visitor, we now only skip any candidates who have a failed `Normalization` nested goal. The previous condition on `ImplWhereBound` and co is now removed as it is unes rust-lang/rust
The `BestObligation` prooftree visitor now skips only candidates with a failed `Normalization` nested goal, dropping the `ImplWhereBound` condition as unnecessary, with a regression test attached.
Action items