Closed woachk closed 3 years ago
Rust is in an interesting position because rustup
isn't distributed as an ARM64 binary. I'm not sure what toolchain gets installed when you run the installer linked on this page. If it gives you the ARM64 toolchain, I'll merge this, but if it requires additional steps to install the ARM64 version then it doesn't meet the acceptance criteria listed in the README.
@dstaley it just requires:
rustup target add aarch64-pc-windows-msvc
tbh, that shouldn't count as an additional step beyond the normal ones :)
I know it's a small step, but my goal with the project was to highlight applications that are shipping ARM64 versions by default. My thinking was that I'd only light up an application if you could follow the exact same steps on both an x86 and an ARM64 machine and get the respective versions. If the x86 version of Rust doesn't require the user to run the command you've listed, then the ARM64 version would need to work without the command in order to mark it as available.
That being said, I'm surprised the installer doesn't default to the correct toolchain, and I'll be filing an issue with rustup
later today.
Furthermore, I'm hesitant to mark Rust as available since it looks like rustc
and cargo
aren't available for aarch64-pc-windows-msvc
. I'm not familiar enough with Rust to fully understand what that means, but the fact that the platform support page is explicit in denoting whether a platform supports those gives me pause.
Furthermore, I'm hesitant to mark Rust as available since it looks like rustc and cargo aren't available for aarch64-pc-windows-msvc. I'm not familiar enough with Rust to fully understand what that means, but the fact that the platform support page is explicit in denoting whether a platform supports those gives me pause.
The rustc and cargo columns in that table indicate whether rustc and cargo are built for that platform when landing changes. I.e. continuous integration. It doesn’t indicate whether rustc and cargo are available or not.
Landing changes to the rust-lang/rust repository's master branch is gated on platforms building. For some platforms only the standard library is compiled, but for others rustc and cargo are too.
From my understanding, what it means is that you can target aarch64-pc-windows-msvc
, however as you say rustc
and cargo
are not yet available.
For starters, they are not in the list of standalone installers. In fact, there aren't any installers on that list that don't already have a tickmark in both the cargo
and rustc
column.
What you get by running rustup target add aarch64-pc-windows-msvc
is an x86_64 or i686 compiler that has the ability to build for aarch64, but it does not get you a compiler that is running natively.
There is currently an open issue about rustc
being unable to produce binaries when run natively on aarch64: https://github.com/rust-lang/rust/issues/72881 so native binaries certainly won't be available until that's fixed, and even then it needs to be integrated into the release builders.
rustc
is now working as a native ARM64 binary when cross-compiled from source. Once I've commited the necessary fixes upstream, I'll look into getting supported added to the release builders.
It seems that support will arrived with v1.49.0
Firefox is supported and is on production for Windows on Arm. One of its big dependencies is Rust.