Skip to content
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

Drop official support for Windows XP #378

Closed
2 of 3 tasks
ChrisDenton opened this issue Oct 27, 2020 · 12 comments
Closed
2 of 3 tasks

Drop official support for Windows XP #378

ChrisDenton opened this issue Oct 27, 2020 · 12 comments
Labels
disposition-merge The FCP starter wants to merge this finished-final-comment-period The FCP has finished, action upon the disposition label needs to be taken major-change A proposal to make a major change to rustc major-change-accepted A major change proposal that was accepted T-compiler Add this label so rfcbot knows to poll the compiler team T-infra Add this label so rfcbot knows to poll the infra team T-release Add this label so rfcbot knows to poll the release team

Comments

@ChrisDenton
Copy link
Member

ChrisDenton commented Oct 27, 2020

Proposal

The targets i686-pc-windows-msvc and x86_64-pc-windows-msvc are oddities. They have Tier 1 support for Windows 7+ but also Tier 3 support for Windows XP. This is a legacy from a time when Firefox needed to run on XP. However in the years since they dropped XP support it has mostly been left to bit rot, despite occasional fixes.

I propose that officially dropping this Tier 3 support status would better reflect the actual current level of support for XP and stop burdening a Tier 1 target with the concerns of an effectively unsupported Tier 3 target.

The practical effect this would have on Rust's Windows XP support would be minimal. Major parts of the standard library are already broken on XP (e.g. panics) and even compiling no_std requires configuring the linker. Removing official XP support would not stop anyone from compiling to XP (minus the std) so long as LLVM and their linker still support XP targets.

The effect on Windows 7+ targets would be to remove workarounds and a runtime compatibility layer that enabled support for XP. There might also be the potential for using more modern APIs that may have once been avoided due to compatibility concerns.

If, in the future, there are people motivated to actively support XP then it may be best to create a new target for that purpose. This could be justified on its own merits and its development would not affect development on Tier 1 platforms.


Past threads:

Mentors or Reviewers

If you have a reviewer or mentor in mind for this work, mention then
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 is 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.
  • 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.

Comments

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.

@ChrisDenton ChrisDenton added T-compiler Add this label so rfcbot knows to poll the compiler team major-change A proposal to make a major change to rustc labels Oct 27, 2020
@rustbot
Copy link
Collaborator

rustbot commented Oct 27, 2020

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.

@rustbot rustbot added the to-announce Announce this issue on triage meeting label Oct 27, 2020
@wesleywiser wesleywiser added T-infra Add this label so rfcbot knows to poll the infra team T-release Add this label so rfcbot knows to poll the release team labels Oct 28, 2020
@wesleywiser

This comment has been minimized.

@rfcbot
Copy link

rfcbot commented Oct 28, 2020

Team member @wesleywiser has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@rfcbot rfcbot added proposed-final-comment-period An FCP has been started, cast your votes and raise concerns disposition-merge The FCP starter wants to merge this labels Oct 28, 2020
@XAMPPRocky
Copy link
Member

@rfcbot reviewed

2 similar comments
@cuviper
Copy link
Member

cuviper commented Oct 28, 2020

@rfcbot reviewed

@jonas-schievink
Copy link
Contributor

@rfcbot reviewed

@spastorino spastorino removed the to-announce Announce this issue on triage meeting label Oct 29, 2020
@wesleywiser
Copy link
Member

Hi @Dylan-DPC, @nellshamrell, @pnkfelix, @sgrif, @shepmaster and @tmandry! This is a friendly reminder to please take a look at this proposal to drop official support for Windows XP and either check your box or leave a comment or concern when you get a chance.

Thanks!

@tmandry
Copy link
Member

tmandry commented Dec 17, 2020

@rfcbot reviewed

@Dylan-DPC-zz
Copy link

@rfcbot reviewed

@rfcbot
Copy link

rfcbot commented Dec 18, 2020

🔔 This is now entering its final comment period, as per the review above. 🔔

@rfcbot rfcbot added final-comment-period The FCP has started, most (if not all) team members are in agreement and removed proposed-final-comment-period An FCP has been started, cast your votes and raise concerns labels Dec 18, 2020
@rfcbot rfcbot added finished-final-comment-period The FCP has finished, action upon the disposition label needs to be taken and removed final-comment-period The FCP has started, most (if not all) team members are in agreement labels Dec 28, 2020
@rfcbot
Copy link

rfcbot commented Dec 28, 2020

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

The RFC will be merged soon.

@rfcbot rfcbot added the to-announce Announce this issue on triage meeting label Dec 28, 2020
@apiraino apiraino removed the to-announce Announce this issue on triage meeting label Dec 31, 2020
@wesleywiser wesleywiser added the major-change-accepted A major change proposal that was accepted label Jan 15, 2021
@rustbot rustbot added the to-announce Announce this issue on triage meeting label Jan 15, 2021
@wesleywiser
Copy link
Member

Closing as accepted.

@apiraino apiraino removed the to-announce Announce this issue on triage meeting label Jan 21, 2021
sivadeilra pushed a commit to sivadeilra/rust that referenced this issue Jan 22, 2021
The minimum supported Windows version is now Windows 7. Windows XP
and Windows Vista are no longer supported; both are already broken, and
require extra steps to use.

This commit removes the delayed-binding support for Windows API
functions that are present on all supported Windows targets. This has
several benefits: Removes needless complexity. Removes a load and
dynamic call on hot paths in mutex acquire / release. This may have
performance benefits.

* "Drop official support for Windows XP"
  rust-lang/compiler-team#378

* "Firefox has ended support for Windows XP and Vista"
  https://support.mozilla.org/en-US/kb/end-support-windows-xp-and-vista
bors added a commit to rust-lang-ci/rust that referenced this issue Jan 24, 2021
…iplett,m-ou-se

Remove delay-binding for Win XP and Vista

The minimum supported Windows version is now Windows 7. Windows XP
and Windows Vista are no longer supported; both are already broken, and
require extra steps to use.

This commit removes the delayed-binding support for Windows API
functions that are present on all supported Windows targets. This has
several benefits: Removes needless complexity. Removes a load and
dynamic call on hot paths in mutex acquire / release. This may have
performance benefits.

* "Drop official support for Windows XP"
  rust-lang/compiler-team#378

* "Firefox has ended support for Windows XP and Vista"
  https://support.mozilla.org/en-US/kb/end-support-windows-xp-and-vista
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disposition-merge The FCP starter wants to merge this finished-final-comment-period The FCP has finished, action upon the disposition label needs to be taken major-change A proposal to make a major change to rustc major-change-accepted A major change proposal that was accepted T-compiler Add this label so rfcbot knows to poll the compiler team T-infra Add this label so rfcbot knows to poll the infra team T-release Add this label so rfcbot knows to poll the release team
Projects
None yet
Development

No branches or pull requests