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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ghc-devs mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to