65 lines
3.8 KiB
Markdown
65 lines
3.8 KiB
Markdown
# Rust 1.90 Windows readiness audit
|
|||
|
|
|
||
|
|
The locked Windows runtime/build dependency declarations do not rule out the
|
||
|
|
workspace's Rust1.90 minimum. This is a declaration audit and toolchain preparation,
|
||
|
|
not a successful MSRV compilation or runtime claim.
|
||
|
|
|
||
|
|
Fresh `cargo metadata --locked --offline --format-version 1 --filter-platform
|
||
|
|
x86_64-pc-windows-gnullvm` was collected with the existing task-local stable toolchain.
|
||
|
|
Starting at `oa-desktop` and `oa-server`, traversal of selected normal/build dependency
|
||
|
|
edges yields **266 packages**:183 declare `rust_version`,83 do not. None declares a
|
||
|
|
minimum above1.90. Highest external declaration is `ordered-float 5.5.0:1.90`;
|
||
|
|
Iced0.14, wgpu27.0.1 and the selected ICU2.3 packages declare1.88.
|
||
|
|
Missing or inaccurate declarations and project source compatibility still require
|
||
|
|
an actual compiler check. Dev-only and non-Windows target dependencies are outside
|
||
|
|
this runtime declaration count.
|
||
|
|
|
||
|
|
Provenance is retained under `.local/msrv-readiness/`: target-filtered metadata,
|
||
|
|
selected package names/versions/manifests/minima, summary, download manifest and
|
||
|
|
installation logs. Cargo.lock SHA256:
|
||
|
|
`E7B95AFAC40A11823FA68D615FCAD97DEEB878C8FA1E83B28561BE5A81896112`.
|
||
|
|
No dependency, source, workspace target or global configuration was changed.
|
||
|
|
|
||
|
|
## The exact requested host triple is unavailable in Rust1.90
|
||
|
|
|
||
|
|
`rustup toolchain install 1.90.0-x86_64-pc-windows-gnullvm --profile minimal
|
||
|
|
--no-self-update` failed with “target ... not found in channel”. The official
|
||
|
|
[Rust1.90 distribution manifest](https://static.rust-lang.org/dist/channel-rust-1.90.0.toml)
|
||
|
|
contains gnullvm target standard libraries, but no gnullvm-host rustc/cargo packages.
|
||
|
|
The [Rust1.91 release announcement](https://blog.rust-lang.org/2025/10/30/Rust-1.91.0/)
|
||
|
|
records promotion of Windows gnullvm to host-tools support. Raising the declared
|
||
|
|
MSRV merely to use this host triple would confuse host packaging with language/
|
||
|
|
library compatibility.
|
||
|
|
|
||
|
|
The viable preparation uses `1.90.0-x86_64-pc-windows-gnu` as compiler host and adds
|
||
|
|
`x86_64-pc-windows-gnullvm` target libraries. Installation was launched using the
|
||
|
|
existing task-local Rustup homes under `.local/toolchain`, minimal profile,
|
||
|
|
`--no-self-update`, and explicit target. Installation completed successfully.
|
||
|
|
`rustup run` reports rustc1.90.0 (`1159e78c4`, LLVM20.1.8) and cargo1.90.0
|
||
|
|
(`840b83a10`). Installed targets include both GNU and gnullvm. Exact version output
|
||
|
|
and compiler hashes are in `installed-provenance.txt` and `compiler-hashes.json`
|
||
|
|
in the ignored audit directory. The task environment still selects stable gnullvm,
|
||
|
|
and Rustup's pre-existing GNU default/settings remain unchanged.
|
||
|
|
|
||
|
|
## Subsequent verification, owned by the root build operator
|
||
|
|
|
||
|
|
After installation, dot-source `.local/toolchain/env.ps1`, invoke the compiler using
|
||
|
|
an explicit `+1.90.0-x86_64-pc-windows-gnu`, and pass the explicit gnullvm target.
|
||
|
|
Use a separate task-local target directory to avoid invalidating the current
|
||
|
|
stable/native acceptance artifacts. For example, once target ownership is granted:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
. .local/toolchain/env.ps1
|
||
|
|
$env:CARGO_TARGET_DIR = Join-Path (Get-Location) '.local/target-msrv190'
|
||
|
|
cargo +1.90.0-x86_64-pc-windows-gnu check --locked --workspace --all-targets --target x86_64-pc-windows-gnullvm
|
||
|
|
```
|
||
|
|
|
||
|
|
That check includes test code/dependencies and can reveal gaps beyond this runtime
|
||
|
|
declaration audit. An actual build/link and appropriate tests are still needed
|
||
|
|
before asserting MSRV support. The existing clang linker configuration applies to
|
||
|
|
the gnullvm target; GNU host build scripts/proc macros use the installed GNU host
|
||
|
|
toolchain. Linux/Docker Rust1.90 remains a separate platform verification gate.
|
||
|
|
After this preparation, the user enabled WSL; the root operator may prefer a
|
||
|
|
Linux1.90 check before allocating a second Windows compilation tree. No MSRV Cargo
|
||
|
|
compilation was started by this audit.
|