Description
Proposal
i586-pc-windows-msvc
is the non-SSE version of the i686-pc-windows-msvc
target, added back in 2016 in rust-lang/rust#32034 when Rust supported Windows XP. Windows XP/Vista support was subsequently dropped in #378, and Windows 7/8 support for then-existing targets was dropped in #651, which raised "the minimum supported Windows version of current targets to Windows 10". i586-pc-windows-msvc
is currently listed as a tier 2 target without std
support.
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+ the i586-pc-windows-msvc
target (when compared to the i686-pc-windows-msvc
target) is a footgun: it provides worse performance with more miscompilations (see rust-lang/rust#114479), without providing any greater CPU support, as the underlying OS requires SSE2 anyway.
Given the lack of purpose for this target on Windows 10+ as detailed above the target also 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". There aren't any target maintains listed for this target, and none of the existing Windows 7 maintainers want to maintain a hypothetical i586-win7-windows-msvc
target. Therefore, I propose removing the i586-pc-windows-msvc
target.
(Previous discussion is available at rust-lang/rust#137244)
Mentors or Reviewers
If you have a reviewer or mentor in mind for this work, mention them
here. You can put your own name here if you are planning to mentor the
work.
Process
The main points of the Major Change Process are as follows:
- File an issue describing the proposal.
- A compiler team member or contributor who is knowledgeable in the area can second by writing
@rustbot second
.- Finding a "second" suffices for internal changes. If however, you are proposing a new public-facing feature, such as a
-C flag
, then full team check-off is required. - Compiler team members can initiate a check-off via
@rfcbot fcp merge
on either the MCP or the PR.
- Finding a "second" suffices for internal changes. If however, you are proposing a new public-facing feature, such as a
- Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.
You can read more about Major Change Proposals on forge.