Haskell 9.12.4
GHC 9.12.4 has been released — the latest maintenance update to the Glasgow Haskell Compiler's 9.12 branch. Released on March 27, 2026, this patch focuses on stability, bug fixes, and a handful of back-ported improvements from the 9.14 LTS development line.
Why This Release Matters
Let's not get carried away — GHC 9.12.4 is not a feature release. It is a narrow bug-fix update that addresses regressions introduced in the 9.12 stable track. But if you are running Haskell in production, the fixes here are worth paying attention to, especially around the new typed-hole workflow and the Windows codegen path.
What Changed
The GHC team back-ported four key fixes from the 9.14 development branch. The most impactful is a correction to how the simplifier handles join points under certain rewrite-rule scenarios — an edge case that could produce silent code-size blowup (and, in extreme cases, compile-time OOM) on large projects using heavy inlining.
- Join-point simplifier fix — prevents explosive code duplication when rewrite rules interact with join points in recursive bindings. Projects using
streamlyorconduitwith aggressive optimisation flags are the most likely to benefit. - Typed-hole behaviour —
typed-holesnow correctly respect the-fdefer-type-errorsflag instead of promoting valid holes to errors in deferred-checking contexts. A welcome correction for interactive development workflows. - Windows codegen — fixed a miscompilation in the native code generator that produced incorrect floating-point comparisons on x86_64 Windows, affecting numerical code paths that rely on exact IEEE 754 semantics.
- CAF memory management — resolved a garbage-collector interaction that kept constant-applicative-form closures alive longer than necessary, increasing residency on long-running server processes.
The Reality Check
If your team was hoping for the 9.14 LTS features (the new Haskell debugger, overloaded record update, the module-surgery improvements), you will have to wait a bit longer. 9.12.4 is strictly a maintenance release. The 9.14 branch is still under active development and has not yet shipped a stable release beyond the December 2025 9.14.1 milestone.
That said, the 9.12 branch is the current stable recommendation for most users, and staying current with patches is sensible. The Windows codegen fix alone justifies the upgrade if you target that platform.
Upgrade Path
Upgrading is straightforward: grab the binary distribution from haskell.org or, if you build from source, pull the 9.12.4 tarball. The GHC release notes are comprehensive and no migration steps are needed from 9.12.3.