$ the-wire · showcase
i686 Windows host tools retired, DiagCtxt API narrowed
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
Rust dropped host tools from the i686-pc-windows-msvc target, implementing RFC 3999, while a compiler cleanup minimized the DiagCtxt family of types and generalized most `Box` trait impls.
The i686-pc-windows-msvc target no longer ships host tools, landing via auto merge [1] as the implementation of RFC 3999 and closing the tracking issue tied to it. Mateusz Mikuła's change also collapsed two CI test jobs into one, since the second no longer ran any tests [2]. Anyone building cross or host tooling for 32-bit MSVC Windows should treat that triplet as a cross-target only.
In the compiler internals, nnethercote's refactor establishes a clearer placement rule for diagnostics: methods should not go on `DiagCtxt` whenever possible [3]. The cleanup lets `impl Deref for DiagCtxtHandle` be removed, along with its non-standard double-reference `&&'a DiagCtxt` return. Separately, a rollup generalized most trait impls on `Box` [4]; `Default` was left alone because changing it would be breaking, and awkward cases like `Clone for Box<Path>` were also untouched.
Smaller but adjacent: a rollup removed the explicit `OnDuplicate::Error` specification since it is already the default [5]. On docs.rs, `build_limits` now uses `Default::default` for its default values and renames `::new` to `::from_config` to make the call site explicit, pulled out of the larger build-limits work [6][7].
This Week in Rust published issue 668 [8], preceded by the usual sections update for CFT, FCP, MCP, and RFC listings [9]. A cleanup removed submissions that had been accidentally merged into the draft template [10][11], and a Gloo plus Yew link for persistent webapp state was added for an upcoming issue [12]. The crates.io index took five `tatara-*` crate updates in the same window [13][14][15][16][17].
Action items
- → Audit any i686-pc-windows-msvc host tooling; the target now ships without host tools rust-lang/rust [plan]
- → Update docs.rs build_limits callers from ::new to ::from_config rust-lang/docs.rs [monitor]
- → Read TWiR 668 for the CFT, FCP, MCP, and RFC items you track rust-lang/this-week-in-rust [monitor]
References
- [1] Auto merge of #162288 - mati865:i686-msvc-no-host, r=jieyouxu ↗ rust-lang/rust
- [2] Drop host tools from i686-pc-windows-msvc ↗ rust-lang/rust
- [3] Rollup merge of #162453 - nnethercote:min-DiagCtxt-methods, r=oli-obk ↗ rust-lang/rust
- [4] Rollup merge of #161946 - nia-e:more-box-impls, r=clarfonthey ↗ rust-lang/rust
- [5] Rollup merge of #162521 - JonathanBrouwer:remove-default, r=khyperia ↗ rust-lang/rust
- [6] build_limits: Default::default for defaults, rename `new` to `from_config` ↗ rust-lang/docs.rs
- [7] build_limits: Default::default for defaults, rename `new` to `from_config` ↗ rust-lang/docs.rs
- [8] Publishing 668 ↗ rust-lang/this-week-in-rust
- [9] Update CFT, FCP, MCP and RFC sections for TWiR-668 ↗ rust-lang/this-week-in-rust
- [10] remove submissions that were accidentally merged into the draft template ↗ rust-lang/this-week-in-rust
- [11] Merge pull request #8733 from rust-lang/fix_draft_template ↗ rust-lang/this-week-in-rust
- [12] Add Gloo + Yew for persistent webapp state link ↗ rust-lang/this-week-in-rust
- [13] Update crate `tatara-os` ↗ rust-lang/crates.io-index
- [14] Update crate `tatara-pkgs` ↗ rust-lang/crates.io-index
- [15] Update crate `tatara-ui` ↗ rust-lang/crates.io-index
- [16] Update crate `tatara-eval` ↗ rust-lang/crates.io-index
- [17] Update crate `tatara-nix` ↗ rust-lang/crates.io-index