-
Notifications
You must be signed in to change notification settings - Fork 1.6k
RFC: Promote aarch64-pc-windows-msvc to Tier 1 #3817
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
base: master
Are you sure you want to change the base?
Conversation
9594548
to
359127e
Compare
related: promoting |
1811971
to
5376ccd
Compare
As mentioned above, Windows users comprise a substantial proportion of Rust developers, and Arm64 | ||
hardware is increasingly being used by them and their customers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be good to quantify this more with numbers. How many people are using ARM CPUs on Windows today? How much market share is expected?
I've tried to do some research on it and was unable to find any concrete numbers, with the closest thing being the Steam Hardware Survey listing it as 0.08% (which is obviously not really representative).
I understand that Microsoft may not want to reveal everything so directly, but having any information available would really help.
It's clear that Microsoft invests heavily in this direction and expects a larger share in the future, but I'm not sure whether this is the right time to promote the target in Rust too or whether it makes more sense to wait a bit longer until it's more established.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Snapdragon X-powered devices represent less than 1.5% of the Windows market
imo 1.5% of a huge number is still big enough to be worth supporting. elsewhere in that article they say they sold 720000 in Q3 2024. This is specifically only Snapdragon X, which is not the only Arm Windows implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have any numbers that I can share.
From external analysts, over the past couple of years Arm64 PCs have accounted for 10-14% of sales:
- Predicting 13% for 2025: https://www.prnewswire.com/news-releases/2025-will-see-ai-pcs-become-the-new-normal-but-arm-based-pcs-will-not-grow-out-of-its-minority-segment-302340341.html
- 14% in 2023: https://www.counterpointresearch.com/insights/arm-based-pcs-to-nearly-double-market-share-by-2027/
- 10.6% in Q3 2023: https://www.tomshardware.com/pc-components/cpus/arm-pc-market-share-shrinks-mercury-research
In Oct 2023, it was estimated that less that 1% of the PC population was Arm64: https://www.canalys.com/insights/arming-your-pc-for-the-upcoming-ai-era. Keep in mind that's of a (now) ~1.4 billion device population, which puts it at about the same absolute number of devices as macOS (~100 million).
The GitHub issue to request Arm64 Windows runners (actions/runner-images#768) shows that there is widespread interest across the industry beyond Microsoft itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also took a look at our public download dashboard: https://p.datadoghq.com/sb/3a172e20-e9e1-11ed-80e3-da7ad0900002-60425c7cb1b7beb2e8959a305a301c0c?fromUser=false&refresh_mode=sliding&from_ts=1747255594877&to_ts=1749847594877&live=true
It looks like ARM Windows is the most popular non-tier-1 host platform (but not far ahead of PPC64 Linux), while for cross-compilation it's solid among Tier 2 targets, behind several embedded targets but still fairly popular. I'd guess that the GitHub Actions runners have contributed a lot to the host downloads and will probably increase them further.
I've read through everything and it seems reasonable to me. While I would say that the current usage of Arm64 Windows falls a bit below our standards for Tier 1, I think the trend is just as important as the current numbers, and there it's very clearly upwards. Labels are adjusted to T-compiler and T-release as defined by the target tier policy. |
Team member @Noratrieb has proposed to merge this. The next step is review by the rest of the tagged team members:
Concerns:
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 concern infra-approval @rust-lang/infra are you okay with adding a new CI job for Arm64 Windows Tests as added in rust-lang/rust#140136? |
FYI, I've updated and published rust-lang/rust#140136 |
We'll discuss the job at today's infra team meeting. My 2 cents (and this does not need to hold off or block the RFC) is that we should run the tests first for a few weeks or months to judge the stability, and only then officially promote the target to Tier 1, rather than promoting it outright and then potentially demoting it back. |
So, as per our #t-infra > meeting 2025-06-16, we're fine with promoting the target, but we would first like to see how stable is the ARM Windows runner, especially since it is currently in (public) preview. So I would appreciate if we could start running the tests with that runner on our CI for some time, and only after we see that it works well, we can go and officially promote the target. |
This comment was marked as resolved.
This comment was marked as resolved.
Add an aarch64-msvc build running on ARM64 Windows Resurrecting #126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? `@Kobzol` try-job: `*aarch64-msvc*`
Add an aarch64-msvc build running on ARM64 Windows Resurrecting #126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? `@Kobzol` try-job: `*aarch64-msvc*`
Add an aarch64-msvc build running on ARM64 Windows Resurrecting rust-lang#126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? `@Kobzol` try-job: `*aarch64-msvc*`
Add an aarch64-msvc build running on ARM64 Windows Resurrecting rust-lang#126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? `@Kobzol` try-job: `*aarch64-msvc*`
Add an aarch64-msvc build running on ARM64 Windows Resurrecting rust-lang#126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? ``@Kobzol`` try-job: `*aarch64-msvc*`
Rollup merge of #140136 - dpaoliello:arm64winci, r=Kobzol Add an aarch64-msvc build running on ARM64 Windows Resurrecting #126341 Per <rust-lang/rfcs#3817> we intend to promote `aarch64-pc-windows-msvc` to Tier 1. As part of that work, we are adding a pre-merge CI job to validate that changes do not break this target. Additionally, for consistency, the `dist-aarch64-msvc` job will also be run on Arm64 Windows runners. r? ``@Kobzol`` try-job: `*aarch64-msvc*`
Following up: rust-lang/rust#140136 was merged over a week ago, and I haven't heard of any issues with the runners yet. |
Hm, seems like the winapi crate doesn't work on windows-arm, see here. This means rustup-toolchain-install-master doesn't build on that host, making (at least) Miri development and native CI impossible. |
The current HEAD of |
At this point it should probably just switch to |
"just switch" is easier said then done when you're talking about a no-longer-actively-maintained dependency pulling in winapi, and that dependency doesn't have a clear replacement either.
I removed the dependency on ansi_term in kennytm/rustup-toolchain-install-master#61, which removed the winapi 0.2 dependency. Seems like that should be enough then. :) |
|
Ping... Rust, miri and stdarch have been successfully building on the Arm64 Windows runners for a while now. |
@Noratrieb marked the reliability concern here. They mentioned a few months, so far it has been more like few weeks, but I haven't seen issues with that runner. GitHub support is still quite bad, they still haven't managed to add rustup/cargo to the image despite claiming that they already did so a ~week ago. I asked t-infra at #t-infra > GitHub Arm64 runners private preview @ 💬 if there are any remaining concerns. |
We discussed this at today's t-infra meeting, and we'd ideally like to wait with moving this target to Tier 1 until the ARM Windows GitHub Actions runners move out of preview/beta. While we also have I'd personally say that if it takes a long time to move out of public preview, we could re-evaluate this at a later time. But the current public preview hasn't been out for so long yet. |
@rfcbot concern aarch64-windows-runners-are-in-public-preview See #3817 (comment) |
@rfcbot resolve aarch64-windows-runners-are-in-public-preview Runners are now out of public preview: https://github.blog/changelog/2025-08-07-arm64-hosted-runners-for-public-repositories-are-now-generally-available/ |
@rfcbot resolve ci-reliability-testing |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
@pietroalbini note that the concern has not been resolved, I think @jieyouxu needs to do that? |
@rfcbot resolve aarch64-windows-runners-are-in-public-preview |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
Rendered