GHC 9.2.4 released

The GHC developers are very happy to at announce the availability of GHC
9.2.4. Binary distributions, source distributions, and documentation are
available at downloads.haskell.org.

Download Page: GHC 9.2.4 download — The Glasgow Haskell Compiler
Blog Post: GHC 9.2.4 is now available — The Glasgow Haskell Compiler

This release will include:

  • The new DeepSubsumption language extension which reverses the
    effects of the Simplified Subsumption Proposal introduced in GHC 9.0. This
    is an attempt to make GHC 9.2.4 more backwards compatible with GHC 8.10 and
    eases migration for users who depended on this feature.

    This extension is enabled by default with the Haskell2010
    and Haskell98 languages but disabled with the GHC2021
    language originally introduced in GHC 9.2.1.

    See the Deep Subsumption Proposal for more details.

  • Fixes for segfaults that may arise due to a bug in the implementation of the
    keepAlive# primop. This may regress performance for certain programs which
    use this primop or functions which use the primop, such as withForeignPtr.
    These regressions are mostly small, but can be larger in certain edge cases.
    Judicious use of unsafeWithForeignPtr when its argument is known not to
    statically diverge can mitigate these in many cases. It is our judgment that
    the critical correctness issues justify the regression in performance and that
    it is important to get a release out with the fix while we work on a better
    approach which will improve performance for future releases (#21708).

    We have a wiki page
    that tracks possible solutions to this problem, and Ben wrote a
    blog post
    detailing the introduction of the keepAlive# primop and its history.

  • Fixes for a number of miscompilations on AArch64 and other platforms (#21624,
    #21773, #20735, #21685).

  • Fixes for segfaults due to bugs in the RTS and GC (#21708, #21880, #21885).

  • Fixing the behaviour of Ctrl-C with GHCi on Windows (#21889).

  • … and much more. See the release notes for a full accounting.

As some of the fixed issues do affect correctness users are encouraged to
upgrade promptly.

We would like to thank Microsoft Azure, GitHub, IOG, the Zw3rk
stake pool, Tweag I/O, Serokell, Equinix, SimSpace, Haskell Foundation, 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.

Happy compiling,

  • Zubin
16 Likes

I’ve removed the [Haskell] and [ANNOUNCE] from the tile and recategorized this in the announcement category. I hope you don’t mind, otherwise please let me know.

Update: I also fixed the release notes link, it was missing .../html/....

2 Likes

Finally! I could perhaps update my window manager to the newest GHC.

Issues from the OP linked to Gitlab:

2 Likes

I giggled when I saw that.

Not sure this is the best place to note this, but the “Release notes” link is also broken in the linked blog post at GHC 9.2.4 is now available — The Glasgow Haskell Compiler.

Also the “latest” documentation at Welcome to the GHC User’s Guide — Glasgow Haskell Compiler 9.2.2 User's Guide appears to be version 9.2.2 still.

Where can I ask about HLS support for GHC 9.2.4? At least it is not available in ghcup. Is it available on master branch, at least?

Apparently you can compile HLS yourself (using GHCup) from the master branch. See this comment in the haskell-language-server repo.

1 Like

I’m sure somebody knows exactly why and when it does but for me building hls with ghcup seemed to work only randomly (I think I tested this last with ghc-9.2.3 where it did not work for me - as far as I can remember some dependencies could not be resolved - my hunch was to wait a bit and retry but hey in the meantime we’ve got another ghc release :wink: )

EDIT: it’s still compiling but it looks good for 9.2.4:

ghcup compile hls -g master --ghc 9.2.4 --cabal-update

in case someone wants the command (ghcup will give something very close in the help/examples if you ask it to - so not sure if it’s actually relevant)

EDIT2: yes it did work :+1: thanks for this great tool.

2 Likes

This is also documented here: https://www.haskell.org/ghcup/guide/#hls

4 Likes