The GHC developers are very pleased to announce the availability of the third release candidate for GHC 9.14.2. Binary distributions, source distributions, and documentation are available at [downloads.haskell.org][] and via [GHCup](https://www.haskell.org/ghcup/). See also the previous announcements of [9.14.2-rc1][rc1] and [9.14.2-rc2][rc2]. The changes since the second release candidate are: * Fixes for miscompilations involving strict fields (#27831, #27857). * Fixes for runtime system crashes and deadlocks (#23160, #27272). * Fixes for a `setInfoTableStackMap` panic (#27368), instances being dropped during instance resolution (#26610), and jump offset link errors for profiled code on AArch64 Linux (#26994). * A fix for a segfault when interface files generated with `-fbyte-code-and-object-code` are reused with `-fprefer-byte-code` (#27842). * Exception context is now preserved when rethrowing in more places in `base` ([CLC #446][clc446], [CLC #447][clc447], #27456), and a WinIO fix for misreported I/O results (#27971). * Hadrian and build system fixes (#25850, #27076, #27786, #28053), and an update to `containers` 0.8.1. GHC 9.14.2 is a bug-fix release fixing many issues of a variety of severities and scopes, including: * Version 2 of the [GHC Jobserver Protocol][jsem] for GHC's `-jsem` jobserver on Linux and other POSIX platforms (#25087, #27253). This is sadly a necessary breaking change: `-jsem` requires cabal-install 3.18 or later, and is otherwise ignored with a [warning][jsem-warning], falling back to sequential compilation. * A new deprecation warning for static forms that mention nested let-bound variables. This will become an error in GHC 10.0 ([GHC Proposal #732][static-forms], #26718). * A fix for a CorePrep miscompilation that could project a field out of an absent dictionary, resulting in a segfault (#25924). * A fix for demand analysis giving an absent demand to an argument that was still used by the function's stable unfolding, which could cause a runtime 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 NCG 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 subword widths. * A fix for a stack alignment bug on x86 that could cause segfaults or corrupted registers when using AVX/AVX-512 vector code (#26595, #26822). * Fixes for 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). * Fixes for many other runtime system crashes and races (#26341, #26573, #26640, #27007, #27008, #27009, #27082). * A fix for an "unknown/strange object" crash in the compacting garbage collector (#27434). * Fixes for split sections on Windows (#26696, #26494) and the LLVM backend (#26770). * Fixes for the Wasm backend (#26916, #27257), and the RISC-V (#27300, #27303, #27306) and PowerPC (#23969, #24145, #26828) native code generators. * The JavaScript backend now supports more than 128 registers, fixing runtime `ReferenceError` failures for functions taking very many arguments (#26558). * Correctness and performance improvements in the bytecode interpreter (#12953, #26287, #26946, #26995, #27001). * Fixes for several compiler panics, including issues with SetLevels (#26681), the type-class specialiser (#26682), `mkTick` (#26772, #27121), CoreToStg (#27182, #27386), the pattern-match checker (#25926, #27124), module graph reachability (#26568), and continuation trimming for bottoming functions (#27261). * Fixes for several cases where the compiler could hang or loop, including with negative type literals (#26861), deep subsumption (#26823), and when simplifying the right-hand sides of rewrite rules (#26323, #26826). * A fix for cast worker/wrapper incorrectly firing on INLINE functions (#26903). * A fix for exponential-time desugaring of nested `case` expressions (#27383, #20251). * A fix for a regression that caused overloaded functions to no longer be specialised as effectively as in previous releases, hurting runtime performance (#26831). * A fix for associated type family and data family instance changes not triggering recompilation (#26183, #26705). * Fixes for Explicit Level Imports and Template Haskell staging (#26088, #26098, #26099, #26616, #27385). * Improvements to determinism of compiler output, including the order in which `:info` lists instances (#26846, #26858, #26877, #27532). * Additions for GHCi and GHC API users: the `-fimport-loaded-targets` flag (#26866), custom external interpreter commands (#26652), `decodeStackWithIpe` and related stack-decoding helpers (#27065), an optional `SrcLoc` on `StackAnnotation` (#26806), and a `gc_sync_elapsed_ns` counter in `RTSStats` (#26944). * ... 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 23 November 2026. GHC development is sponsored by: * [Juspay](https://juspay.com/) * [QBayLogic](https://qbaylogic.com/) * [Channable](https://www.channable.com/) * [Haskell Foundation](https://haskell.foundation/) * [Serokell](https://serokell.io/) * [Well-Typed](https://well-typed.com/) * [Tweag](https://www.tweag.io/) * [Dotcom-Monitor](https://www.dotcom-monitor.com/) * [LoadView](https://www.loadview-testing.com/) * [Web Hosting Buddy](https://webhostingbuddy.com/) * [Find My Electric](https://www.findmyelectric.com/) * [Standard Chartered](https://www.sc.com) * [UpCloud](https://upcloud.com) * [Mercury](https://mercury.com) 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. [release notes]: https://gitlab.haskell.org/ghc/ghc/-/blob/ghc-9.14/docs/users_guide/9.14.2-n... [status]: https://gitlab.haskell.org/ghc/ghc/-/wikis/GHC-status [downloads.haskell.org]: https://downloads.haskell.org/ghc/9.14.2-rc3 [jsem]: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0540-js... [static-forms]: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0732-si... [jsem-warning]: https://downloads.haskell.org/ghc/9.14.2-rc3/docs/users_guide/using-warnings... [rc1]: https://www.haskell.org/ghc/blog/20260730-ghc-9.14.2-rc1-released.html [rc2]: https://www.haskell.org/ghc/blog/20260917-ghc-9.14.2-rc2-released.html [clc446]: https://github.com/haskell/core-libraries-committee/issues/446 [clc447]: https://github.com/haskell/core-libraries-committee/issues/447 [ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new
participants (1)
-
Zubin Duggal