Closed dpaoliello closed 3 months ago
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:
@rustbot concern reason-for-concern
<description of the concern>
Concerns can be lifted with:
@rustbot resolve reason-for-concern
See documentation at https://forge.rust-lang.org
cc @rust-lang/compiler @rust-lang/compiler-contributors
@rustbot second
@apiraino ping...
@rustbot label -final-comment-period +major-change-accepted
Proposal
Promote the
arm64ec-pc-windows-msvc
tier 3 target to tier 2Arm64EC is used both within Microsoft and by external developers as well - either to enable gradual migration of an x64 application to Arm64, or to allow an Arm64 application to load 3rd party x64 plug-ins/addons (e.g., Microsoft Office).
I will be the primary maintainer for this target, and Microsoft will be providing support as per the other *-msvc targets
Agreed.
The Arm64EC platform documentation for Rust already has guidance on how to think about the target and re-use other code: https://doc.rust-lang.org/nightly/rustc/platform-support/arm64ec-pc-windows-msvc.html#reusing-code-from-other-architectures---x86_64-or-aarch64
Microsoft has also provided general guidance for Arm64EC: https://learn.microsoft.com/en-us/windows/arm/arm64ec
All Arm64EC code is under
#[cfg(target_arch = "arm64ec")]
. As mentioned above, I have provided guidance on how to re-use existing architecture-specific code for Arm64EC (where possible).Documentation for using Arm64EC with Rust has already been provided, and Microsoft has documentation for setting up an Arm64EC build environment as well.
This is included in the Rust platform documentation linked above: Arm64EC requires Windows 11 on an Arm64 device.
Not applicable. We've already had a discussion on why Arm64EC being its own
target_arch
makes sense: https://github.com/rust-lang/stdarch/pull/1550#discussion_r1518650771This target supports the full standard library.
Arm64EC uses LLVM as its code generation backend.
Yes.
Yes.
Yes.
Cross compiling is supported on x64 Windows using the Windows 11 SDK 22000 (or later) with VS build tools 17.3+ - these requirements are met with Rust's existing Windows builders.
Licensing requirements for Arm64EC are the same as any other *-msvc target.
Yes.
Yes.
arm64ec-pc-windows-msvc
is already a tier 3 target.Mentors or Reviewers
@dpaoliello
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.
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.