GHC 9.6.5 is now available

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

GHC Blog Post:
https://www.haskell.org/ghc/blog/20240416-ghc-9.6.5-released.html

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

  • Bumping the bundled process library to 1.6.19.0 to avoid a potential
    command injection vulnerability on Windows for clients of this library. This isn’t
    known to affect GHC itself, but allows users who depend on the installed
    version of the process library to avoid the issue.
  • Fixing a bug resulting in the distributed hsc2hs wrapper using flags from the
    compiler build environment (#24050).
  • Disabling the -fasm-shortcutting optimisation with -O2 as it is known
    to result in unsoundess and incorrect runtime results in some cases (#24507).
  • Ensuring we take LDFLAGS into account when configuring a linker (#24565).
  • Fixing a bug arising from incorrect parsing of paths containing spaces in the
    settings file (#24265).
  • And many more 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 ticket if you see
anything amiss.

Enjoy!

-Zubin

21 Likes

I think the bump from boot package Cabal-3.10.1.0 to Cabal-3.10.3.0 is also important, because it fixes the -fplugin bug.

3 Likes

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

2 Likes

@mpilgrem The unofficial multi‑arch (linux/amd64 , linux/arm64/v8 ) GHC musl image glcr.b-data.ch/ghc/ghc-musl:9.6.5 is now available, too.

Also pushed to:

3 Likes

I finally found time to add 9.6.5 into ghcup proper: Ghc 9.6.5 proper by hasufell · Pull Request #204 · haskell/ghcup-metadata · GitHub

The main reason of the delay was:

So I had to manually fix all those. The unofficial bindists are located here:

8 Likes

I added GHC 9.6.5 to haskell-actions/setup.

3 Likes

Would it be possible to update the ‘library versions’ page on the GHC gitlab wiki?

2 Likes

The GHC Wiki home page states that “Everyone can edit this wiki. Please do so …” but I tried to follow the instructions at Git Access · Wiki · Glasgow Haskell Compiler / GHC · GitLab and it seems to me that, actually, commit rights are needed to edit the Wiki.

I have updated the page.

3 Likes

I tried to look for the settings to configure access, but I couldn’t find anything. Perhaps @chreekat can help?

I suspect the content on the home page probably just predates the switch to GitLab. As far as I can see, one needs to be logged in to edit the wiki.

Git access is probably possible, though, if you switch to an https url for the underlying repo. But then you’d still need an account to push changes. :stuck_out_tongue:

1 Like

Yeah, I think “everyone” can edit the wiki, as long as they have a user account and they are logged in.

I may be mistaken or missing something, but when I am logged into Home · Wiki · Glasgow Haskell Compiler / GHC · GitLab I can’t see anything that would allow you to edit the Wiki. I think you may need to have a certain ‘role’: GitLab ‘proper’ says you need to have ‘at least the Developer role’: see Wiki | GitLab.

1 Like

Ah, that’s interesting. I see “Edit” and “New page” above “Home … This is GHC’s Wiki”. I suppose I must have the developer role then, but I don’t know how to confirm that (nor how to confirm someone else’s role) and I don’t know how I was assigned that role!

1 Like

You are indeed a Developer: Members · Glasgow Haskell Compiler / GHC · GitLab

1 Like

I have been thinking to somehow incorporate that information into the ghcup metadata, but I don’t have a clear vision yet how to present that information. Right now, there is a special tag that denotes the base version: ghcup-metadata/ghcup-0.0.8.yaml at 94a79c488a01bc6b84e2e724246647ba70e91f5e · haskell/ghcup-metadata · GitHub

    9.6.5:
      viTags:
      - base-4.18.2.1

Maybe the format can be extended to something like

    9.6.5:
      viLibraries:
      - base-4.18.2.1
      - process-1.6.19.0
      - ...

And then a special command:

ghcup inspect ghc libraries

…inspired by docker inspect, so it can be extended for other purposes?

Old ticket: Show all GHC libraries versions? · Issue #122 · haskell/ghcup-hs · GitHub

2 Likes

That would be very useful!

Stack’s global hints file (stackage-content/stack/global-hints.yaml at master · commercialhaskell/stackage-content · GitHub) provides the information in YAML format.

1 Like

A related issue is “Add GHC resolver endpoint, ghc-x.y.z/cabal.config?”, stackage-server#322.

Given the demand, I’ve added the functionality to the master branch version of Stack:

stack ls globals # List all global packages
stack list <package> # Now covers packages included indirectly in a snapshot

For example:

> stack --snapshot ghc-9.4.5 ls globals
...
base-4.17.1.0
...

> stack --snapshot ghc-9.4.5 list Cabal
Cabal-3.8.1.0
4 Likes