GHC 9.12.1 is now available

The GHC developers are very pleased to announce the release of GHC 9.12.1.
Binary distributions, source distributions, and documentation are available at
downloads.haskell.org.

We hope to have this release available via ghcup shortly.

GHC 9.12 will bring a number of new features and improvements, including:

  • The new language extension OrPatterns allowing you to combine multiple
    pattern clauses into one.

  • The MultilineStrings language extension to allow you to more easily write
    strings spanning multiple lines in your source code.

  • Improvements to the OverloadedRecordDot extension, allowing the built-in
    HasField class to be used for records with fields of non lifted representations.

  • The NamedDefaults language extension has been introduced allowing you to
    define defaults for typeclasses other than Num.

  • More deterministic object code output, controlled by the -fobject-determinism
    flag, which improves determinism of builds a lot (though does not fully do so)
    at the cost of some compiler performance (1-2%). See #12935 for the details

  • GHC now accepts type syntax in expressions as part of GHC Proposal #281.

  • The WASM backend now has support for TemplateHaskell.

  • Experimental support for the RISC-V platform with the native code generator.

  • … and many more

A full accounting of changes 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.

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

51 Likes

I have updated Stack’s default setup-info dictionary for these binary distributions, and added GHC 9.12.1’s global hints to global-hints.yaml.

5 Likes

@mpilgrem GHC musl image glcr.b-data.ch/ghc/ghc-musl:9.12.1 is available now.

The image is also published on Quay and Docker Hub:

  • quay.io/benz0li/ghc-musl:9.12.1
  • docker.io/benz0li/ghc-musl:9.12.1

Due to #25594: [riscv64] GHC 9.12.1: Error: [Cabal-7125]: Failed to build <package> (...). The build process segfaulted (i.e. SIGSEGV) · Issues · Glasgow Haskell Compiler / GHC · GitLab, there is currently no image for linux/riscv64 available the linux/riscv64 image is built using --flavour=quick+llvm instead of --flavour=perf+llvm+split_sections.

4 Likes