Filter

Adding Windows on Arm Support to the Glasgow Haskell Compiler (GHC)

Description

Why this is important?

The Glasgow Haskell Compiler (GHC) is the de facto standard compiler for Haskell, an advanced purely functional programming language with strong type inference and lazy evaluation. This project aims to port GHC to support Windows on Arm (WoA), a platform that is increasingly relevant with the rise of Arm-powered laptops and developer kits. Arm anticipates more original equipment manufacturers (OEMs) to be available in the coming years.

Project summary

Currently, GHC lacks robust support for WoA, hindering Haskell’s reach in energy-efficient and mobile-native environments (Request for support has previously been requested by the community). The goal is to bridge this gap by:

  • Enabling native compilation of Haskell code via GHC on WoA.
  • Implementing and testing architecture-specific assembly and intrinsic functions.
  • Extending the GHC build system to recognize WoA environments.
  • Integrating and validating linker and runtime support on Arm-based Windows systems.

The project requires in-depth familiarity with compiler backends, calling conventions, code generation pipelines, and the use of LLVM or native code generators. Students will also gain experience in cross-compilation, Windows PE/COFF linking, and performance benchmarking on Arm CPUs.

The work has potential for real-world deployment and academic publishing, and would be of high value to the Haskell and Arm developer ecosystems.


Prequisites

  • Advanced understanding of Haskell (including Template Haskell, Core-to-STG pipeline understanding)
  • Arm64 Windows device or Access to virtualized WoA platforms via Linaro’s Windows on Arm Environments
  • Intemediate understanding of Arm64 Assembly (AArch64)
  • Comfortable using compilers such as LLVM and Clang for backend work (if using LLVM codegen)
  • Access to MSYS2 / CMake / Ninja for Windows builds

Resources from Arm and our partners

Support Level

This project is designed to be self-serve but comes with opportunity of some community support from Arm Ambassadors, who are part of the Arm Developer program. If you are not already part of our program, click here to join.

Benefits

Standout project contributions will result in preferential internal referrals to Arm Talent Acquisition (with digital badges for CV building). And we are currently discussing with national agencies the potential for funding streams for Arm Developer Labs projects, which would flow to you, not us.

To receive the benefits, you must show us your project through our online form. Please do not include any confidential information in your contribution. Additionally if you are affiliated with an academic institution, please ensure you have the right to share your material.