# GHC 9.6.6 is now available

**URL:** <https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852>\
**Category:** Announcements\
**Created:** [July 1, 2024, 9:39am UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852 "2024-07-01T09:39:44Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![wz1000](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/wz1000/32/1245_2.png) [@wz1000](https://discourse.haskell.org/u/wz1000)\
**Post date:** [July 1, 2024, 9:39am UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/1 "2024-07-01T09:39:44Z")

</div>

The GHC developers are happy to announce the availability of GHC 9.6.6. Binary  
distributions, source distributions, and documentation are available on the  
[release page](https://www.haskell.org/ghc/download_ghc_9_6_6.html).

Blog Post: [GHC 9.6.6 is now available — The Glasgow Haskell Compiler](https://www.haskell.org/ghc/blog/20240701-ghc-9.6.6-released.html)

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

- A fix for a bug in the NCG that could lead to incorrect runtime results due to  
erroneously removing a jump instruction (#24507).
- A fix for a linker error that manifested on certain platform/toolchain combinations,  
particularly darwin with a brew provisioned toolchain, arising due to a confusion  
in linker options between GHC and cabal (#22210).
- A fix for a compiler panic in the simplifier due to incorrect eta expansion (#24718).
- A fix for possible segfaults when using the bytecode interpreter due to incorrect  
constructor tagging (#24870).
- And a few more fixes

A full accounting of changes can be found in the [release notes](https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.6-notes.html). 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](https://gitlab.haskell.org/ghc/ghc/-/issues/new) if you see  
anything amiss.

Happy Hacking!

-Zubin

---

<div class="post-metadata">

**Author:** ![mpilgrem](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/mpilgrem/32/2529_2.png) [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Post date:** [July 1, 2024, 9:34pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/2 "2024-07-01T21:34:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [July 2, 2024, 2:59pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/3 "2024-07-02T14:59:01Z")

</div>

> <https://github.com/haskell/ghcup-metadata/pull/230>

Curated bindists: [Index of /ghcup/unofficial-bindists/ghc/9.6.6/](https://downloads.haskell.org/ghcup/unofficial-bindists/ghc/9.6.6/)

- freebsd-x86\_64 and alpine-i386 are only provided by ghcup
- the other bindists have fixed documentation (manpage, user manual, etc. are missing from official ones)

---

<div class="post-metadata">

**Author:** ![kushagarr](https://avatars.discourse-cdn.com/v4/letter/k/f05b48/32.png) [@kushagarr](https://discourse.haskell.org/u/kushagarr)\
**Post date:** [July 2, 2024, 5:13pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/4 "2024-07-02T17:13:43Z")

</div>

I don’t see **hls-powered** attached with this. I thought changes between 9.6.5 and 9.6.6 were merely bugfixes rather than new features and don’t see any changes in base version as well.  
So my assumption was that it would, by default, be supported by the hls-2.9.0.0.

Could you correct my understanding here.  
Thanks

---

<div class="post-metadata">

**Author:** ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)\
**Post date:** [July 2, 2024, 7:53pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/5 "2024-07-02T19:53:48Z")

</div>

> [@kushagarr](#):
>
> I don’t see **hls-powered** attached with this. I thought changes between 9.6.5 and 9.6.6 were merely bugfixes rather than new features and don’t see any changes in base version as well.

There is HLS 2.9.0.1 in works, I imagine it will be available pretty soon.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [July 2, 2024, 11:40pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/6 "2024-07-02T23:40:01Z")

</div>

> [@kushagarr](#):
>
> So my assumption was that it would, by default, be supported by the hls-2.9.0.0.

GHC has no practical ABI compatibility. For every new GHC a new HLS binary needs to be built.

You can think of HLS as a proper compiler.

---

<div class="post-metadata">

**Author:** ![kushagarr](https://avatars.discourse-cdn.com/v4/letter/k/f05b48/32.png) [@kushagarr](https://discourse.haskell.org/u/kushagarr)\
**Post date:** [July 3, 2024, 5:37pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/7 "2024-07-03T17:37:21Z")

</div>

if you don’t mind me asking, by when would we be able to use hls and cabal and a common ghc for both regular Haskell development and wasm or js development in haskell?

How far or close are we from that? Because after using Haskell, I want to continue using Haskell for everything.

---

<div class="post-metadata">

**Author:** ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)\
**Post date:** [July 3, 2024, 5:39pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/8 "2024-07-03T17:39:17Z")

</div>

I think it would be good if GHC maintains a status page about JS/WASM somewhere. Maybe that already exists @mpickering?

---

<div class="post-metadata">

**Author:** ![michaelpj](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/michaelpj/32/417_2.png) [@michaelpj](https://discourse.haskell.org/u/michaelpj)\
**Post date:** [July 3, 2024, 6:18pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/9 "2024-07-03T18:18:48Z")

</div>

I think the keyword you are looking for is “runtime retargetability”, i.e. being able to use a single GHC binary to compile for multiple targets. There is definitely work going on here by @romes and others, but I don’t know how close we are.

---

<div class="post-metadata">

**Author:** ![romes](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/romes/32/2912_2.png) [@romes](https://discourse.haskell.org/u/romes)\
**Post date:** [July 3, 2024, 8:25pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/10 "2024-07-03T20:25:38Z")

</div>

That’s right. I’m not actively working on it at the moment (even though it is on my priority list to get back to it when possible), but “runtime retargetability” would mean the same compiler could produce code for multiple targets such as x86\_64, aarch64, JS, WASM, etc…

GHC has been coming closer than ever to being runtime retargetable over the years due to the work of many people, but there’s still a considerable amount of work to be done. As for me, I picked the project up in the toolchain configuration end of it and did a lot of progress on a tool to configure multiple targets and their toolchains that GHC can understand: `ghc-toolchain`. Here’s a blog post on it: [Improving GHC's configuration logic and cross-compilation support with ghc-toolchain - Well-Typed: The Haskell Consultants](https://well-typed.com/blog/2023/10/improving-ghc-configuration-and-cross-compilation-with-ghc-toolchain/)

---

<div class="post-metadata">

**Author:** ![juhp](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/juhp/32/323_2.png) [@juhp](https://discourse.haskell.org/u/juhp)\
**Post date:** [July 4, 2024, 7:00pm UTC](https://discourse.haskell.org/t/ghc-9-6-6-is-now-available/9852/11 "2024-07-04T19:00:26Z")

</div>

Latest Stackage LTS 22.28 is now on ghc-9.6.6

[https://www.stackage.org/lts-22.28](https://www.stackage.org/lts-22.28)
