GHC 9.14.2-rc1 is now available

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

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

  • Fixed a CorePrep miscompilation that could project a field out of an absent
    dictionary, resulting in a segfault (#25924)
  • Fixed demand analysis giving an absent demand to an argument that was still
    used by the function’s stable unfolding, which could cause a run-time crash
    (#26416)
  • Numerous fixes for register allocation and Cmm register-conflict analysis
    bugs, preventing incorrect code generation and corruption of vector registers
    when spilling and reloading (#26411, #26526, #26537, #26542, #26550, #26668)
  • Many NGG fixes on AArch64: MOVK clobbering live values (#26980), register
    clobbering and an incorrect overflow bit in MUL2 (#27046, #27047), and
    incorrect sign extension (#26978) and unsigned right shift (#26979) at sub-word
    widths
  • Fixed several black hole handling bugs that could lead to deadlocks or crashes
    in multithreaded programs, showing up as hangs or “END_TSO_QUEUE object
    entered” errors (#26922, #26936)
  • Fixed a stack alignment bug on x86 that could cause segfaults or corrupted
    registers when using AVX/AVX-512 vector code (#26595, #26822)
  • Fixed an “unknown/strange object” crash in the compacting garbage collector
    (#27434)
  • Fixed a regression that caused overloaded functions to no longer be
    specialised as effectively as in previous releases, hurting runtime
    performance (#26831)
  • Fixed exponential-time desugaring of nested case expressions (#27383, #20251)
  • Fixes for several compiler panics, including issues with SetLevels (#26681),
    the type-class specialiser (#26682), mkTick (#26772, #27121) and
    CoreToStg (#27182, #27386)
  • Fixed cast worker/wrapper incorrectly firing on INLINE functions (#26903)
  • Fixed negative type literals causing the compiler to hang (#26861)
  • Fixed associated type family and data family instance changes not triggering
    recompilation (#26183, #26705)
  • Improvements to determinism of compiler output, including the order in which
    :info lists instances (#26846, #26858, #26877, #27532)
  • Fixed split sections support on Windows (#26696, #26494) and the LLVM
    backend (#26770)
  • The JavaScript backend now supports more than 128 registers, fixing runtime
    ReferenceError failures for functions taking very many arguments (#26558)
  • Fixes for the Wasm backend, and the RISC-V and PowerPC native code generators
  • … 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 13 August 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.

20 Likes

With this release, the issue - Documentation/Source Link Broken in Emacs/VScode

should get fixed?

1 Like

yes hadrian: Don’t include the package hash in the haddock directory

1 Like

If you want to use GHC 9.14.2-rc1 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-08-10 # GHC 9.12.4
compiler: ghc-9.14.1.20260728
compiler-check: match-exact # Anticipating possible future RC releases

# Only required before the GHC version has been installed:
setup-info:
  ghc:
    windows64:
      9.14.1.20260728:
        url: https://downloads.haskell.org/ghc/9.14.2-rc1/ghc-9.14.1.20260728-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.14.1.20260728:
        url: https://downloads.haskell.org/ghc/9.14.2-rc1/ghc-9.14.1.20260728-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

What ??! I am no bot :sob:

I have a doubt, I am a beginner, as in the post it was said that the release will be available post 13th August, I am trying the command

➜  completions git:(master) ghcup install ghc 9.14.2
[ Info  ] downloading: https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-0.1.0.yaml as file /Users/krishnanshagarwal/.ghcup/cache/ghcup-0.1.0.yaml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
[ Error ] [GHCup-00010] Unable to find a download for Tool "ghc" version '9.14.2' on detected platform aarch64-darwin
[ Error ] Also check the logs in /Users/krishnanshagarwal/.ghcup/log

and GHCUP version is

The GHCup Haskell installer, version v0.2.6.2

Do I have to switch my release-channel ?

RC-2 is not ready yet, a number of issues affecting both the branch and master were raised and still need to be resolved, including annotateSTM should use catchSTM# not catch# · Issue #437 · haskell/core-libraries-committee · GitHub

It’s a side effect of the site protection of the gitlab instance and how discourse scrapes the site; there’s a page that checks whether or not people are bots, and obviously discourse is a bot in this case, so it replaces the text for the link with “Making sure you’re not a bot!”.

2 Likes

Thank you for the update!

I want to test out the documentation fix in the new release asap :eyes: