-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove i586-pc-windows-msvc
#840
Comments
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 |
@rustbot second |
@rustbot label -final-comment-period +major-change-accepted |
Remove i586-pc-windows-msvc See [MCP 840](rust-lang/compiler-team#840). I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI). ``` error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead. Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets ``` `@workingjubilee` `@calebzulawski` fyi portable-simd uses this target in CI, if you wanna remove it already before this happens
Remove i586-pc-windows-msvc See [MCP 840](rust-lang/compiler-team#840). I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI). ``` error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead. Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets ``` ``@workingjubilee`` ``@calebzulawski`` fyi portable-simd uses this target in CI, if you wanna remove it already before this happens
Rollup merge of rust-lang#137957 - Noratrieb:no, r=wesleywiser Remove i586-pc-windows-msvc See [MCP 840](rust-lang/compiler-team#840). I left a specialized error message that should help users that hit this in the wild (for example, because they use it in their CI). ``` error: Error loading target specification: the `i586-pc-windows-msvc` target has been removed. Use the `i686-pc-windows-msvc` target instead. Windows 10 (the minimum required OS version) requires a CPU baseline of at least i686 so you can safely switch. Run `rustc --print target-list` for a list of built-in targets ``` ``@workingjubilee`` ``@calebzulawski`` fyi portable-simd uses this target in CI, if you wanna remove it already before this happens
Proposal
i586-pc-windows-msvc
is the non-SSE version of thei686-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 withoutstd
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 thei686-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 thei586-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:
@rustbot second
.-C flag
, then full team check-off is required.@rfcbot fcp merge
on either the MCP or the PR.You can read more about Major Change Proposals on forge.
The text was updated successfully, but these errors were encountered: