The GHC team is very pleased to announce the availability of the first
release candidate of GHC 9.0.1 series. Source and binary distributions are
available at the usual place.
This release candidate comes quite a bit later than expected after
difficulty finding a performance neutral fix for a critical soundness
bug, #17760. See the migration page for details on the solution, particularly
if you are a library maintainer currently using the touch#
primop or
Foreign.ForeignPtr.withForeignPtr
.
Nevertheless, this release has nevertheless seen a considerable amount of
testing and consequently we hope that this should be the last
pre-release before the final release.
In addition to numerous bug fixes, GHC 9.0.1 will bring a number of new
features:
-
A first cut of the new
LinearTypes
language extension, allowing use
of linear function syntax and linear record fields. -
A new bignum library (
ghc-bignum
), allowing GHC to be more easily
used with integer libraries other than GMP. -
Improvements in code generation, resulting in considerable
performance improvements in some programs. -
Improvements in pattern-match checking, allowing more precise
detection of redundant cases and reduced compilation time. -
Implementation of the āsimplified subsumptionā proposal
simplifying the type system and paving the way for QuickLook
impredicativity in GHC 9.2. -
Implementation of the
QualifiedDo
extension, allowing more
convenient overloading ofdo
syntax. -
Improvements in compilation time.
And many more. See the release notes for a full accounting of the
changes in this release.
As always, do test this release and open tickets for whatever issues you
encounter. To help with this, we will be publishing a blog post
describing use of our new head.hackage
infrastructure to ease testing
of larger projects with Hackage dependencies later this week.