-
Notifications
You must be signed in to change notification settings - Fork 73
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.
To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
You can read more about Major Change Proposals on forge.
Activity
rustbot commentedon Feb 19, 2025
Important
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.
Concerns or objections to the proposal should be discussed on Zulip and formally registered here by adding a comment with the following syntax:
Concerns can be lifted with:
See documentation at https://forge.rust-lang.org
cc @rust-lang/compiler
i586-pc-windows-msvc
target is unclear rust-lang/rust#137244Noratrieb commentedon Feb 19, 2025
@rustbot second
apiraino commentedon Mar 3, 2025
@rustbot label -final-comment-period +major-change-accepted
6 remaining items