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-notes.rst?ref_type=heads&plain=1
[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-jsem.rst
[static-forms]:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0732-simplify-static.rst
[jsem-warning]:
https://downloads.haskell.org/ghc/9.14.2-rc2/docs/users_guide/using-warnings.html#ghc-flag-Wsemaphore-open-failure
[rc1]: https://www.haskell.org/ghc/blog/20260730-ghc-9.14.2-rc1-released.html
[ticket]: https://gitlab.haskell.org/ghc/ghc/-/issues/new
signature.asc
Description: PGP signature
_______________________________________________ ghc-devs mailing list -- [email protected] To unsubscribe send an email to [email protected]
