get_machine_architecture returns "x64" on arm64 Windows machines
- Dominant language
- F#
- Stars
- 773
- Forks
- 301
- Avg merge
- 6d 9h
- Merged PRs (30d)
- 15
Description
Kicked off the monthly perf run on my Surface Pro X (arm64) device, and it appears this script selected __x64__ as the default architecture for the perf run.
https://github.com/dotnet/performance/blob/6f83cd97938edf618eca3d45a766811e185d51d3/scripts/performance/common.py#L22-L34
It's possible that this is due to Python not having a native arm64 build on Windows and instead going through x64 emulation. Unfortunately it also causes the benchmarks themselves to run under x64 emulation, which throws off the results.
This should default to __arm64__ on true arm64 devices, regardless of any emulation the Python scripting engine might be running under.
Note - the coming Python 3.11 release will have native Win-arm64 support (see https://bugs.python.org/issue33125), but I suspect many devs will either rely on old versions for a while or will need to install the x64 versions for compat with other software on the machine. I don't think it's viable for us to rely on any 3.11-specific behaviors here.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.