GHC 9.12.4-rc1 is now available

The GHC developers are very pleased to announce the availability
of the release candidate for GHC 9.12.4. Binary distributions, source
distributions, and documentation are available at downloads.haskell.org and
via GHCup.

GHC 9.12.4 is a bug-fix release fixing many issues of a variety of
severities and scopes, including:

  • Fixed a critical code generation regression where sub-word division produced
    incorrect results (#26711, #26668), similar to the bug fixed in 9.12.2
  • Numerous fixes for register allocation bugs, preventing data corruption
    when spilling and reloading registers
    (#26411, #26526, #26537, #26542, #26550)
  • Fixes for several compiler crashes, including issues with
    CSE (#25468), SetLevels (#26681),
    implicit parameters (#26451), and the type-class specialiser (#26682)
  • Fixed cast worker/wrapper incorrectly firing on INLINE functions (#26903)
  • Fixed LLVM backend miscompilation of bit manipulation operations
    (#20645, #26065, #26109)
  • Fixed associated type family and data family instance changes not triggering
    recompilation (#26183, #26705)
  • Fixed negative type literals causing the compiler to hang (#26861)
  • Improvements to determinism of compiler output (#26846, #26858)
  • Fixes for eventlog shutdown deadlocks (#26573)
    and lost wakeups in the RTS (#26324)
  • Fixed split sections support on Windows (#26696, #26494) and the LLVM backend (#26770)
  • Fixes for the bytecode compiler, PPC native code generator, and Wasm backend
  • The runtime linker now supports COMMON symbols (#6107)
  • Improved backtrace support: backtraces for error exceptions are now
    evaluated at throw time
  • NamedDefaults now correctly requires the class to be standard or have an
    in-scope default declaration, and handles poly-kinded classes (#25775, #25778, #25882)
  • … and many more

A full accounting of these fixes can be found in the
release notes. As always, GHC’s release status, including planned future
releases, can be found on the GHC Wiki status.

This release candidate will have a two-week testing period. If all goes well
the final release will be available the week of 26 March 2026.

GHC development is sponsored by:

We would like to thank these sponsors and other anonymous contributors
whose on-going financial and in-kind support has facilitated GHC maintenance
and release management over the years. Finally, this release would not have
been possible without the hundreds of open-source contributors whose work
comprise this release.

As always, do give this release a try and open a ticket if you see
anything amiss.

15 Likes

As someone who pushed hard for regular RCs… please do try them. It can help increase the quality of the releases.

ghcup config add-release-channel prereleases
ghcup install ghc 9.12.3.20260311
10 Likes

Just so we are clear, 9.12.4-rc1 lives in GHCup as ghc 9.12.3.20260311?

2 Likes

Yes it does (and more characters to please discourse minimal length)

2 Likes

I second @hasufell’s appeal for more eyes on the RC releases. If you want to use with Stack:

Add a setup-info dictionary to a configuration file with the applicable entry for your operating system. For example, on Windows or macOS/AArch64, a stack.yaml:

snapshot: nightly-2026-03-13 # GHC 9.12.3
compiler: ghc-9.12.3.20260311
compiler-check: match-exact # Anticipating future rc releases

# Only required before the GHC version has been installed:
setup-info:
  ghc:
    windows64:
      9.12.3.20260311:
        url: https://downloads.haskell.org/ghc/9.12.4-rc1/ghc-9.12.3.20260311-x86_64-unknown-mingw32.tar.xz
        # Can be extended with SHA protections etc: see https://docs.haskellstack.org/en/stable/configure/yaml/non-project/#setup-info
    macosx-aarch64:
      9.12.3.20260311:
        url: https://downloads.haskell.org/ghc/9.12.4-rc1/ghc-9.12.3.20260311-aarch64-apple-darwin.tar.bz2
        # Can be extended with SHA protections etc: see https://docs.haskellstack.org/en/stable/configure/yaml/non-project/#setup-info

3 Likes

I did an unpublished test build of Stackage Nightly with this RC1 on Linux and did not hit any problems (around 3446 packages built including many testsuites and benchmark compilations). Should be essentially the same versions as Stackage Nightly 2026-03-23 (ghc-9.12.3) :: Stackage Server. So RC1 looks promising so far to me.

(The full curator log is about 38MB, but I could upload somewhere if needed - unfortunately I forgot to preserve the actual snapshot.yamlfile.)

4 Likes