As many of you know, the Haskell Foundation ran a fundraiser during the month of July, Infrastructure Independence!. I’m happy to provide an update on how those funds have been used and what we’re planning moving forward.
First and most important, the ARM CI story for the Haskell community has never been stronger! We purchased two Ampere ARM servers, providing more capacity than we previously had with the Microsoft’s Azure. Having two servers means that there is some redundancy if we were to experience a server failure.
The ARM capacity is sufficient enough for us to look into the possibility of running Windows ARM VMs on this infrastructure, something we’ve never been able to do in the past. If you are someone that cares about Haskell on Windows on ARM, please reach out as we’d like someone to take on this project!
The funds were also used to provide a stopgap for cloud-based ARM infrastructure during the period where the ARM servers were being ordered/delivered/installed.
A significant priority of the HF is to ensure sustainable infrastructure for the shared services in the Haskell ecosystem. This fundraiser enabled us to commit to the capital expenditure that allows us to save 10s of thousands of dollars as compared to the cloud equivalent. Of course this isn’t completely ‘free’, as it requires our infrastructure team to maintain these services, so let’s thank our infrastructure team, for the ARM work we have @bgamari and @davean to thank in particular.
Thanks for everyone who contributed to the fundraiser and thanks to the infrastructure team for executing on this project. Our ARM infrastructure has never been in better shape!
I’ve posted update to my progress here. Unfortunately no much progress still that time but I am still wanting to back to these issues and resolve them.
If we have native Windows Aarch64 now, well, no much sense in dealing with Wine stack. We could move forward easier!
We don’t have it yet but setting up a VM builder on our nix ARM builders probably is easier than a WINE stack and would be more representative!
We have the capacity to run it now, but not the config and setup. If you’d prefer to put your effort into that, contact @bgamari or myself directly. We’d love to have a more representative CI for Windows-on-ARM.
i’m afraid proper licensing of windows on arm is going to be a challenge:
piracy is trivial but not an option for a public-facing project (GHC) with a legal entity (HF)
for non-azure local deployment, windows 11 on arm retail license is available for consumer devices like snapdragon, but can’t be legally used for ci servers
for windows server, it’s possible with a per-core licensing model (see Licensing Documents), though a bit unclear if it also applies to arm64 builds
for deploying in an vm, you need the host to be running a licensed copy of windows already
if we go with windows server, only windows server 2025 has arm64 builds for recent insider preview versions, and no official iso is available, we need to cook your own using uupdump. i’ve played with it on my macbook and it works, but i didn’t activate it, and i assume the license is going to be pricey…
The initial decision to use WINE was based on licensing considerations as well. I am not against continuing my attempts to make WINE work for the GHC Windows AArch64 pipeline. However, I felt that my initial wave of pure enthusiasm had faded, and I needed to recharge over time or find some motivation for faster results. I think the latter is a complex issue, so I decided to simply wait for my enthusiasm to return.