GHC 9.6.3 is now released

The GHC developers are happy to announce the availability of GHC 9.6.3. Binary distributions, source distributions, and documentation are available on the release page.

This release is primarily a bugfix release addressing a few issues found in the 9.6 series. These include:

  • Disable Polymorphic Specialisation (a performance optimisation) by default. It was discovered that Polymorphic Specialisation as currently implemented in GHC can lead to hard to diagnose bugs resulting in incorrect runtime results. Users wishing to use this optimisation despite the caveats will now have to explicitly enable the new -fpolymorphic-specialisation flag. For more details see #23469 as well as #23109, #21229, #23445.

  • Improve compile time and code generation performance when -finfo-table-map is enabled (#23103).

  • Make the recompilation check more robust when code generation flags are changed (#23369).

  • Addition of memory barriers that improve soundness on platforms with weak memory ordering.

  • And dozens of other fixes.

A full accounting of changes can be found in the release notes. 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, Well-Typed, 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 GHC ticket if you see anything amiss.

Enjoy!

-Bryan

24 Likes

On a personal note, this was my first time executing the rather lengthy and finicky GHC release process. I took a ton of notes and hopefully I will be able to smooth off a lot of the rough edges before the next release cycle. :slight_smile:

23 Likes

That would be fantastic!

Links for the issues mentioned:

Improve compile time and code gen:

Recompilation check:

4 Likes

Many thanks, but is ghc-9.6.3-x86_64-apple-darwin.tar.bz2 really meant to be only 43,139,072 bytes in size? That is much smaller than the archive files for other binary distributions and the corresponding archive file for GHC 9.6.2. EDIT: I tried to look inside with 7-Zip and for the *.tar it reported ‘unexpected end of data’.

1 Like

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

4 Likes

That sounds like ARM64, is there a specific ticket/bug report for this change?

@tmcgilchrist:
23541 Array read operations are missing a read barrier is linked from the release notes.

2 Likes

Unfortunately you are right. I think this got broken during the recompress step. I will have to see if it’s possible to repair it.

@mpilgrem, where does this actually get implemented?

Oh, nevermind, answered my own question.

Thankfully, the other two variants are ok:

2 Likes

I have updated Stack’s default setup-info dictionary to use .xz rather than .bz2 for macOS/x86_64.

2 Likes

Nice, thanks!

I’ll reach out to you later about steps GHC can take during the release process to reduce this kind of problem.

The bz2 file was updated in place, so barring dns caching, the correct file should now be available.

4 Likes

Bumped the Docker images: DockerHub - Haskell

2 Likes

Heya and thanks for all the work!

I’ve downloaded ghc-9.6.3-x86_64-unknown-mingw32-int_native.tar.xz yesterday to check on something that I thought was wrong with what I got with the Stack Nightly resolver installation in 9.6.2.

Unpacked, there’s the doc/html folder.
In it, there’s index.html.
index.html links to the users_guide as it always did – But the users guide is missing from the archive.

Did something go wrong there? I depend on offline documentation, and this looks like a mistake during packaging to me. :slight_smile:

Hm! From poking around, it looks like none of the 9.6 releases have included the user’s guide. What’s more, it’s not available as a separate tarball, either.

I have to say that’s a change from before my time, so maybe @bgamari or @wz1000 can say more.

I have checked and the users guide is there in the releases we expect it to be there for.

We simply do not build the users guide to distribute on windows (and Centos7 and Rocky8). Please open a ticket if this is important for you.

Ah, so perhaps @Hai can download one of the other bindists and the docs will be in there?

What about the contents of the https://downloads.haskell.org/~ghc/9.6.3/docs/ directory? That seems unrelated to which bindists have docs included.

Regarding the directory, I didn’t want to have to use a crawler.

Ow, why is the users guide not distributed on Windows anymore? It’s extremely useful to have in there, and as said, the index page does link to it normally. o_o

Opened a ticket here: #24028: Missing users_guide for the Windows distributions of GHC 9.6.* · Issues · Glasgow Haskell Compiler / GHC · GitLab

Thanks all!

1 Like

I have updated Stackage Nightly to 9.6.3

https://www.stackage.org/nightly-2023-10-01

4 Likes