Description
Location
Summary
i586-pc-windows-msvc
is the non-SSE version of the i686-pc-windows-msvc
target, added back in 2016 in #32034 when Rust supported Windows XP. Windows XP/Vista support was subsequently dropped in MCP 378, and Windows 7/8 support for then-existing targets was dropped in MCP 651. However, the platform support table entry for i586-pc-windows-msvc
currently reads "32-bit Windows (original Pentium)" (with no std
support), without specifying which version of Windows it targets.
Additionally, Windows hasn't supported pre-SSE2 CPUs since Windows 8, with Windows 7 apparently dropping support for pre-SSE2 CPUs in a March 2018 update. This means that for Windows 10+ i586-pc-windows-msvc
is a footgun: it provides worse performance with more miscompilations (see #114479) without providing any greater CPU support, as the underlying OS requires SSE2 anyway.
The appears to be two possibilities:
i586-pc-windows-msvc
has a baseline of Windows 10+ - formally speaking I think this is the status quo, as MCP 651 raised "the minimum supported Windows version of current targets to Windows 10". At minimum, this would just require an update to the platform support page to explicitly state this. However, given the lack of purpose for this target on Windows 10+ as detailed above the target almost certainly fails the tier 2 target policy requirement that a target "must document [...] why the specific difference in baseline expectations provides sufficient value to justify a separate target", so should probably either be demoted to tier 3 or removed entirely (these would both require a MCP).i586-pc-windows-msvc
has a baseline of an older Windows version (perhaps Windows 7 or Windows XP). In this case the target should be renamed (similar to the existing-win7-
targets) to make explicit this lower baseline.
There aren't any target maintains listed for this target.
cc @ChrisDenton (author of the two Windows version MCPs)