GHC 9.12.3-rc3 is now available

The GHC developers are very pleased to announce the availability
of the third release candidate for GHC 9.12.3. Binary distributions, source
distributions, and documentation are available at downloads.haskell.org and
via GHCup.

GHC 9.12.3 is a bug-fix release fixing several issues of a variety of
severities and scopes. 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 22 December 2025.

The changes from the first release candidate are

  • Fix use after free on windows due to a linker optimisation introduced in an earlier RC (#26613)
  • A fix for a bug in the configure script which result in the LLVM toolchain not being detected in certain situations (#26564)
  • Fixes for the WASM backend

GHC development is sponsored by:

We would like to that 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.

12 Likes

What should I test in this GHC release candidate?

1 Like

There were a lot of wasm backend fixes, outside of that this fixed a segfault when using the runtime linker on windows. (TH, GHCi, ghc-the-library), and we now allow use of LLVM versions not explicitly supported without aborting with an error.

So anything related to that would be useful.

4 Likes

I ran into an error trying to use GHCup to install:

ghcup install ghc-9.12.3-rc3 --url https://downloads.haskell.org/ghc/9.12.3-rc3/ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz

[ Info  ] downloading: https://downloads.haskell.org/ghc/9.12.3-rc3/ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz as file /Users/vanessa/.ghcup/tmp/ghcup-286f188c002161de/ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  549M  100  549M    0     0  5773k      0  0:01:37  0:01:37 --:–:-- 5511k
[ Info  ] Unpacking: ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz to /Users/vanessa/.ghcup/tmp/ghcup-959bbdefb415be95
[ Info  ] Installing GHC (this may take a while)
[ ghc-configure ] checking build system type… aarch64-apple-darwin2…
[ ghc-configure ] checking host system type… aarch64-apple-darwin24…
[ ghc-configure ] checking target system type… Invalid configuratio…
[ ghc-configure ] configure: error: /bin/sh ./config.sub ghc failed

[ Error ] [GHCup-00841] Process “sh” with arguments [“./configure”,
[ …   ]                              “–prefix=/Users/vanessa/.ghcup/ghc/ghc-9.12.3-rc3”,
[ …   ]                              “–target=ghc”, “–disable-ld-override”] failed with exit code 1.
[ Error ] Also check the logs in /Users/vanessa/.ghcup/logs

> cat ~/.ghcup/logs/ghc-configure.log
checking build system type… aarch64-apple-darwin24.6.0
checking host system type… aarch64-apple-darwin24.6.0
checking target system type… Invalid configuration ‘ghc’: machine ‘ghc-unknown’ not recognized
configure: error: /bin/sh ./config.sub ghc failed

Didn’t see this with rc2 though maybe it’s a macOS update in the meantime? :\

1 Like

I’ve reproduced this on a clean VM.
It fails for rc3, and also fails for rc2 on the same VM.

Thanks for trying and reporting this @vem.

FWIW, this isn’t a problem if you configure and install the bindist manually.
e.g.

curl -LO https://downloads.haskell.org/ghc/9.12.3-rc3/ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz
tar xzf ghc-9.12.2.20251209-aarch64-apple-darwin.tar.gz
cd ghc-9.12.2.20251209-aarch64-apple-darwin
./configure --prefix=$(pwd)/here
make install
./here/bin/ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.12.2.20251209

I’ve opened a GHCup ticket to track this:

Thanks again @vem

EDIT:
@vem, @hasufell has pointed out in the ticket that the CLI invocation you are using is deprecated. Rather, you should use:

ghcup install ghc --url <url> <version>
1 Like