GHC 9.14.1-rc3 is now available to download

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

The changes from the second release candidate are:

  • Fix RTS segfaults in certain situations (#26495)
  • Fix use after free on windows due to a linker optimisation introduced in an earlier RC (#26613)

GHC 9.14 will bring a number of new features and improvements, including:

  • Significant improvements in specialisation:

    • The SPECIALISE pragma now allows use of type application syntax
    • The SPECIALISE pragma can be used to specialise for expression arguments
      as well as type arguments.
    • Specialisation is now considerably more reliable in the presence of
      newtypes
  • Significant GHCi improvements including:

    • Correctness and performance improvements in the bytecode interpreter
    • Features in the GHCi debugger
    • Support for multiple home units in GHCi
  • Implementation of the Explicit Level Imports proposal

  • RequiredTypeArguments can now be used in more contexts

  • SSE/AVX2 support in the x86 native code generator backend

  • A major update of the Windows toolchain and improved compatibility with
    macOS Tahoe

  • … and many more

A full accounting of changes can be found in the release notes. Given the many specialisation improvements and their potential for regression, we would very much appreciate testing and performance characterisation on downstream workloads.

Note that while this release makes many improvements in the specialisation optimisation, polymorphic specialisation will remain disabled by default in the final release due to concern over regressions of the sort identified in #26329. Users needing more aggressive specialisation can explicitly enable this feature with the -fpolymorphic-specialisation flag. Depending upon our experience with 9.14.1, we may enable this feature by default in a later minor release.

GHC development is sponsored by:

We would like to that 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.

18 Likes

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-2025-12-02 # GHC 9.12.2
compiler: ghc-9.14.0.20251128
compiler-check: match-exact # Anticipate possible future rc releases

# Only required before the GHC version has been installed:
setup-info:
  ghc:
    windows64:
      9.14.0.20251128:
        url: https://downloads.haskell.org/ghc/9.14.1-rc3/ghc-9.14.0.20251128-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.0.20251128:
        url: https://downloads.haskell.org/ghc/9.14.1-rc3/ghc-9.14.0.20251128-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

To avoid irritating warnings about Stack not being able to parse GHC 9.14’s *.hi files, upgrade to the master branch version of Stack. (My plan is to release the next update of Stack once GHC 9.14.1 is released.)

If you tried Alpha 1, 2 or 3 or RC 1 or 2 with Stack and now want to tidy up, delete its folder and *.installed file in the platform folder of Stack’s programs folder (see stack path --programs ).

2 Likes

It seems the GPG key used to sign the tarballs has expired:

gpg --verify ghc-9.14.0.20251128-src.tar.xz.sig
gpg: assuming signed data in ‘ghc-9.14.0.20251128-src.tar.xz’
gpg: Signature made Mon 01 Dec 2025 23:59:43 AEDT
gpg: using RSA key 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
gpg: Good signature from “Zubin Duggal (GHC signing key) <zubin@well-typed.com>” [expired]
gpg: Note: This key has expired!
Primary key fingerprint: 88B5 7FCF 7DB5 3B4D B3BF A4B1 5887 64FB E22D 19C4

I extended the expiry date and uploaded the keys last week, have you tried refreshing it from keys.openpgp.org recently?

Yes, much better. Thank you.