-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
proposal: all: remove support for windows/arm #71671
Comments
Related Issues
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.) |
Change https://go.dev/cl/648795 mentions this issue: |
First of all, thank you for keeping and maintaining the ARM32 Windows version of And second, I personally disagree with this proposal. There IS demand for the Although such devices are rare nowadays, there are people (like me) who do have them, and being able to run software based on I also want to note that demand for ARM32 Windows software is rising as people are digging up their old devices since more and more software is being ported. In fact, there is an entire comunnity based on porting software to such devices (and just bringing back life to them in general), and they're fairly active: Link to OpenRT Discord server. As for the port itself, both of the issues that the ARM32 Windows port had have been fixed by @wmjb (#70234, #68996), and both the builder as well as the CI tests should run just fine on an ARM64 device running Windows 10 ARM64 or Windows 11 ARM64 up to version 23H2 (since these can run ARM32 apps), on in an emulated QEMU device running ARM32 Windows 10: https://files.open-rt.party/Miscellaneous/qemu-win10-15035-arm32.7z. With all that said, I personally believe the @qmuntal I want to hear your thoughts on this, and if you're still inclined to remove the |
This proposal has been added to the active column of the proposals project |
I would also like to mention that another valid use case for the |
@kristibektashi it is really cool that there is a community of people porting software to Windows ARM32 and bringing back old devices to live. I'm afraid it doesn't change my opinion here, though. The Go Windows maintainer team is small and we have to pick our battles, having the |
I understand what you're saying, which is why I want to propose an alternative. Have a list of "unsupported" ports (which would be similar to the list of "broken" ports) where support is done on a best effort basis by the community and it doesn't block releases or get tested by default (for compiling/functionality/etc), so it's not guaranteed to work in newer versions but someone could always fix it if they wanted to. This would probably also mean issues about these ports would be closed as wontfix unless someone actually sends code and submits a PR fixing the issue.
This would have the benefit of not needing to use a fork for running |
Hi @kristibektashi, FWIW I appreciate the desire to keep things working and the willingness to help out, but it's worth calling out this bit from @qmuntal's first comment:
In other words, routine changes to support Windows in general are currently slowed down by this, and it's not just about other gophers being willing to jump in when something breaks. There's a continual, on-going cost to people like @qmuntal and others. |
@kristibektashi Our current policy on these sorts of issues is described at https://go.dev/wiki/PortingPolicy. |
Yes I understand that, which is why I proposed the alternative since I thought it would alleviate this issue (since they could just ignore it theoretically, especially if the "unsupported" ports weren't automatically cross-compiled at all in the CI jobs, and it would have been up to the users to test them). However I understand there's an unwillingness in maintaining this port at all, and I also don't want to seem pressuring for something that actively hurts other development work (since that's not at all my intention), so I will not comment further on this, and I want to apologize for any inconvenience I may have caused. Once again thank you for all your work and for maintaining the |
Proposal Details
The
windows/arm
port, which runs on a Windows with 32-bit ARM architecture, has been broken and unable to initialize the Go runtime since Go 1.18 (see #68552 and #70705). Even more, we haven't got a builder for ages.From the Windows side, 32-bit ARM is no longer supported on Windows 11, as per these docs: https://learn.microsoft.com/en-us/windows/arm/arm32-to-arm64.
As a maintainer of the Go Windows port, having to keep up with the
windows/arm
port when changing the Go standard library (mainly the runtime package) is tedious and time consuming. Even if it doesn't really work, CI test that at least it can be cross-compiled, so I can't just pretend it doesn't exist.Having said all these arguments, I propose to remove the
windows/arm
port support from the Go toolchain, tentatively targeting Go 1.25.@golang/windows @golang/release
The text was updated successfully, but these errors were encountered: