GHC 9.6.1 is now available

The GHC team is very pleased to announce the availability of GHC 9.6.1.
As usual, binaries and source distributions are available at

Beginning with GHC 9.6.1, GHC can be built as a cross-compiler to
WebAssembly and JavaScript. This is an important step towards robust
support for compiling Haskell to the Web, but there are a few caveats to be
aware of in the 9.6 series:

  • Both the Javascript and WebAssembly backends are still at an early
    stage of development and are present in this release as a technology preview

  • Using GHC as a cross-compiler is not as easy as we would like it to
    be; in particular, there are challenges related to Template Haskell

  • GHC is not yet run-time retargetable; a given GHC binary targets
    exactly one platform, and both WebAssembly and JavaScript are considered
    platforms for this purpose. Cross-compilers must be built from source by
    their users

We hope to lift all of these limitations in future releases.

Additionally, 9.6.1 includes:

  • Significant latency improvements in the non-moving garbage collector

  • Efficient runtime support for delimited continuations

  • Improvements in compiler error messages

  • Numerous improvements in the compiler’s memory usage

See the release notes for a comprehensive accounting of changes in this

As always, one can find a migration guide to aid in transitioning from older
releases on the GHC Wiki. We have also recently started
extending our release process to cover a wider set of Linux distributions. In
particular, we now offer Rocky 8 and Ubuntu 20.04 binary distributions which
cover RedHat-derivative and distributions using older glibc releases (namely
2.27), respectively.

Thanks to everyone who has contributed code, documentation, testing, and
tickets to this release process. As this release represents upstream GHC’s
first step towards supporting web targets, we are very excited to have this
release out the door!


  • Ben

Unofficial FreeBSD bindist (with native gmp backend, because there seems to be a hadrian bug when building with libgmp): Index of /ghcup/unofficial-bindists/ghc/9.6.1/

metadata updated: Add GHC 9.6.1 proper · haskell/ghcup-metadata@c58f03c · GitHub


I have updated Stack’s default setup-info dictionary for these binary distributions, and added GHC 9.6.1’s global hints to global-hints.yaml . (As there is no ‘Fedora 27’ version of GHC 9.6.1, Stack uses the ‘Debian 10’ version for Linux/x86_64 systems where tinfo6 is present and the libc6 version is pre-2.32.)


The fedora substitute is Rocky8, which is more portable.

1 Like

In that case, I’ll change Stack’s default setup-info to refer to the ‘Rocky 8’ version of GHC 9.6.1 where it would have referred to the ‘Fedora 27’ version.

1 Like