GHC 9.14.2-rc2 is now available
The GHC developers are very pleased to announce the availability of the second 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 announcement of 9.14.2-rc1][rc1]. The changes since the first release candidate are: * Several fixes to the specialiser and demand analyser for miscompilations causing incorrect runtime results, crashes, or hangs (#27626, #27627, #27629, #27703, #27704, #27705, #27717). * Fixes for a number of runtime system bugs: * a missing memory barrier in the parallel garbage collector, which could crash or silently corrupt the heap on weakly-ordered architectures such as AArch64 (#27477). * a use-after-free with TSOs (#26716, #26717). * an "unknown/strange object" crash in the compacting collector when collecting the large data constructors that the bytecode interpreter allocates (#27649). * a segfault when querying the label of an unlabelled thread (#27618). * a crash when capturing or resuming a delimited continuation that adjusts the asynchronous exception masking state (#27651). * stack corruption when returning large unboxed tuples in GHCi (#27633). * Further fixes to the AArch64 native code generator, addressing bugs that caused incorrect runtime results from subword operations (#27430, #27533, #27537, #27538, #27539, #27550). * `toException` for `SomeException` no longer drops the attached `ExceptionContext`, and a `catchSTM` handler no longer breaks `retry` or asynchronous exception delivery (#27455, #27657). * Reduced memory usage with multiple home units (#26423, #27308, #27500, #27748). * Fixes for panics and spurious out-of-scope errors involving type arguments in pattern synonym right-hand sides (#27440, #27583, #27586). * The pattern-match checker now recognises `considerAccessible` under ticks, and no longer emits a spurious `-Wincomplete-uni-patterns` warning under `-finfo-table-map` (#27314, #27360). * The deprecation warning for static forms, added in rc1, no longer fires on free type variables (#27664). * A fix for a regression preventing modules from being loaded into GHCi after startup (#27202, #27640). * A fix for representation-polymorphism checks producing a coercion that fails Core Lint (#27639). * Support for LLVM up to version 23 (#27764). * Updates for libffi (3.8.0), `directory` (1.3.11.0), `file-io` (0.1.6), `haskeline` (0.8.5.0) and `os-string` (2.0.10). 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 1 October 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-rc2 [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-rc2/docs/users_guide/using-warnings... [rc1]: https://www.haskell.org/ghc/blog/20260730-ghc-9.14.2-rc1-released.html [ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new
participants (1)
-
Zubin Duggal