Deprecation of 32-bit Darwin and Windows platforms

Hécate - 2024-06-13

In the continuous effort to reduce the burden on GHC developers, some house cleaning has been done to delete dead code from GHC, and in particular: the code generation and runtime logic used by 32-bit macOS/iOS and Windows.

At the time of writing, binary distributions for 32-bit macOS/iOS and Windows have not been provided by either the GHC release engineering team or GHCup maintainers for years. The relevant code paths are completely untested in GHC CI pipelines.

In 2018, Apple communicated that starting from iOS 11 and macOS 10.15, 32-bit applications support was being phased out. As a result “macOS Mojave would be the last version of macOS to run 32-bit apps. Starting with macOS Catalina, 32-bit apps are no longer compatible with macOS.”

In 2020, Microsoft formally discontinued new 32-bit Windows 10 for OEM distributions, which is in line with its hardware requirements for Windows 11.

The transition period that started three years ago is now reaching its conclusion, and users will see a mention of this in the release notes shipped with GHC 9.12. Rest assured, these changes should not affect most users! Existing support for macOS/iOS on x86_64/aarch64, as well as Windows on x86_64 are not affected. Also, these cleanups will not be backported to ghc-9.10, so the remaining users that wish to target these obsolete platforms still have a relatively new GHC major version to begin with. Moreover, removal of legacy 32-bit Windows support opens the door to better support of ARM64 Windows, significantly reducing GHC maintenance overhead when working on relevant patches.

Should you have any questions about the impact of this process, please contact your operating system vendor and/or contact the GHC development team on the ghc-devs mailing-list.