Skip to content

Commit be21ed3

Browse files
committed
Promote aarch64-pc-windows-msvc to Tier 1
1 parent 3a35580 commit be21ed3

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
- Feature Name: promote-aarch64-pc-windows-msvc-to-tier-1
2+
- Start Date: 2025-05-22
3+
- RFC PR: [rust-lang/rfcs#3817](https://github.com/rust-lang/rfcs/pull/3817)
4+
- Rust Issue: [rust-lang/rust#0000](https://github.com/rust-lang/rust/issues/0000)
5+
6+
# Summary
7+
[summary]: #summary
8+
9+
Promote aarch64-pc-windows-msvc to Tier 1 with Host Tools.
10+
11+
# Motivation
12+
[motivation]: #motivation
13+
14+
About [30% of Rust users use Windows][survey-2024], while the majority of these developers and their
15+
customers are using x64 hardware, the usage of Arm64 Windows has been growing since it was first
16+
made available in Windows 10, and has been accelerating, especially with the availability of the
17+
SnapDragon X processors.
18+
19+
# Guide-level explanation
20+
[guide-level-explanation]: #guide-level-explanation
21+
22+
No changes required: Rust tooling for Arm64 Windows has been available for a while now so this
23+
doesn't affect the end user experience.
24+
25+
# Reference-level explanation
26+
[reference-level-explanation]: #reference-level-explanation
27+
28+
Tier 1 targets must adhere to the [Tier 1 Target Policy][tier-1-policy]. Going through these
29+
requirements point-by-point:
30+
31+
> Tier 1 targets must have substantial, widespread interest within the developer community, and must
32+
> serve the ongoing needs of multiple production users of Rust across multiple organizations or
33+
> projects. These requirements are subjective, and determined by consensus of the approving teams.
34+
35+
As mentioned above, Windows users comprise a substatial propotion of Rust developers, and Arm64
36+
hardware is increasingly being used by them and their customers.
37+
38+
> The target maintainer team must include at least 3 developers.
39+
40+
There is an existing [Windows team for Rust][windows-team] and, within Microsoft, Arm64 Windows is
41+
considered to be a Tier 1 target for internal Rust usage.
42+
43+
> The target must build and pass tests reliably in CI, for all components that Rust's CI considers
44+
> mandatory.
45+
> The target must not disable an excessive number of tests or pieces of tests in the testsuite in
46+
> order to do so. This is a subjective requirement.
47+
48+
[The `dist-aarch64-msvc` CI job has been running reliably for over 4 years now][promote-tier-2],
49+
and I have [new CI jobs working where Rust is built and tested on Arm64 Windows runners][ci-draft-pr].
50+
51+
> The target must provide as much of the Rust standard library as is feasible and appropriate to
52+
> provide.
53+
54+
The full Standard Library is available.
55+
56+
> Building the target and running the testsuite for the target must not take substantially longer
57+
> than other targets, and should not substantially raise the maintenance burden of the CI
58+
> infrastructure.
59+
60+
[A `try` run of the new CI jobs completed in under 2 hours.][try-job]
61+
62+
> If running the testsuite requires additional infrastructure (such as physical systems running the
63+
> target), the target maintainers must arrange to provide such resources to the Rust project, to the
64+
> satisfaction and approval of the Rust infrastructure team.
65+
> Such resources may be provided via cloud systems, via emulation, or via physical hardware.
66+
67+
The new CI jobs use the free [`windows-11-arm` runners provided by GitHub][runner-announcement].
68+
69+
> Tier 1 targets must not have a hard requirement for signed, verified, or otherwise "approved"
70+
> binaries. Developers must be able to build, run, and test binaries for the target on systems they
71+
> control, or provide such binaries for others to run. (Doing so may require enabling some
72+
> appropriate "developer mode" on such systems, but must not require the payment of any additional
73+
> fee or other consideration, or agreement to any onerous legal agreements.)
74+
75+
There are no differences between x64 and Arm64 Windows in this regard.
76+
77+
> All requirements for tier 2 apply.
78+
79+
[`aarch64-pc-windows-msvc` is already a Tier 2 target.][platform-support]
80+
81+
# Drawbacks
82+
[drawbacks]: #drawbacks
83+
84+
The `windows-11-arm` runners provided by GitHub are relatively new, and so we do not know what the
85+
availability or reliability of these runners will be.
86+
87+
# Rationale and alternatives
88+
[rationale-and-alternatives]: #rationale-and-alternatives
89+
90+
`aarch64-pc-windows-msvc` could be left as a Tier 2 with Host Tools target, but given the importance
91+
of this target to Microsoft and the increasing usage of Arm64 by Windows users, it will become more
92+
and more likely that issues with this target will need to be treated as critical. Catching issues
93+
early in development will prevent the need to Beta and Stable backports.
94+
95+
# Prior art
96+
[prior-art]: #prior-art
97+
98+
- [RFC 2959][rfc-2959] promoted `aarch64-unknown-linux-gnu` to Tier 1.
99+
- [RFC 3671][rfc-3671] promoted `aarch64-apple-darwin` to Tier 1.
100+
- LLVM has dedicated [Arm64 Windows builders][llvm-builders].
101+
102+
# Unresolved questions
103+
[unresolved-questions]: #unresolved-questions
104+
105+
None.
106+
107+
# Future possibilities
108+
[future-possibilities]: #future-possibilities
109+
110+
* Adding Arm64 Windows jobs to more Rust repos, such as `stdarch`.
111+
* Promoting Arm64EC to Tier 1.
112+
113+
[ci-draft-pr][https://github.com/rust-lang/rust/pull/140136]
114+
[llvm-builders][https://lab.llvm.org/buildbot/#/builders/161]
115+
[platform-support][https://github.com/rust-lang/rust/blob/e3892a40a9d06034fdf2432a9d3d29fa97726299/src/doc/rustc/src/platform-support.md?plain=1#:~:text=aarch64%2Dpc%2Dwindows%2Dmsvc]
116+
[promote-tier-2][https://github.com/rust-lang/rust/pull/75914]
117+
[rfc-2959]: https://rust-lang.github.io/rfcs/2959-promote-aarch64-unknown-linux-gnu-to-tier1.html
118+
[rfc-3671]: https://rust-lang.github.io/rfcs/3671-promote-aarch64-apple-darwin-to-tier-1.html
119+
[runner-announcement]: https://github.com/orgs/community/discussions/155713
120+
[survey-2024]: https://blog.rust-lang.org/2025/02/13/2024-State-Of-Rust-Survey-results
121+
[tier-1-policy]: https://doc.rust-lang.org/rustc/target-tier-policy.html#tier-1-target-policy
122+
[try-job][https://github.com/rust-lang-ci/rust/actions/runs/14871501014]
123+
[windows-team]: https://github.com/rust-lang/team/blob/055aa9ddb4e9a10c760042baa54da71b1585a821/teams/windows.toml

0 commit comments

Comments
 (0)