[RFC][GHCup] Should GHC 9.6.4 be 'recommended'?

  • latest stackage LTS seems to be on 9.6.4: https://www.stackage.org/
  • I’m not a aware of major regressions
  • I assume the ecosystem has mostly caught up
  • are there any incentives of making this the default

Disclaimer: the “recommended” GHC in GHCup is not meant to be the latest. It’s supposed to be the safest choice for a wide range of users, especially beginners, student courses and people investing in a new codebase.

CCing some people with possible insights: @bgamari @mpilgrem @angerman @Ericson2314 @Kleidukos @juhp

12 Likes

9.6 seems to end up being our choice. It’s what we’ve sunk most time into after 8.10. It’s still regressing for highly polymorphic code over 8.10. But at this point (a year after the latest GHC alphas), it appears we don’t see compatibility issues anymore.

While we try to be more aggressive in upgrading, I predict we’ll likely be moving 8.10->9.6->9.10

3 Likes

I hope to ship GHC 9.6 as the default GHC version in Fedora Linus 41 this autumn (sadly didn’t get to it for the coming F40 release due to lack of time, though the ghc9.6 package is there of course).

2 Likes

As a hobbyist, I tend to move to the current Stackage LTS as it is released, and move Stack on to that version of GHC. I mostly build Stack with Stack, or toy projects while investigating Stack issues. I’ve had no problems with GHC 9.6.4.

1 Like

We tend to bump GHC 2 steps the moment a stable one after is released.
So we went from 8.10 to 9.2 when Stackage switched to 9.4, and we’ll be jumping to 9.6 when Stackage gets an LTS for 9.8

1 Like

GHC 9.6.4 is indeed a fine candidate for “Recommended”. I would approve of the title for this release.

1 Like

It seems like GHC 9.6.4 is shipping Cabal 3.10.1.0 (snoyman listing) which breaks Clash users: `-fplugin` could not find module when using GHC 9.6 · Issue #6251 · commercialhaskell/stack · GitHub

The issue in the GHC Gitlab is #24518: Update Cabal to version 3.10.3.0 for GHC-9.6 and GHC-9.8 · Issues · Glasgow Haskell Compiler / GHC · GitLab

3 Likes

I would not suggest making 9.6.4 recommended. Because of exactly this issue. It is a blocker for some industry users to upgrade.

Upon looking there don’t seem to be many open issues in the 9.6.5 milestone, but maybe someone else can say the level of effort for them. Looks like @wz1000 is assigned to them all. At the very least this issue seems like something else to consider to wait for 9.6.5.

1 Like

That looks like a cabal bug to me.

1 Like

GHC 9.6.4 find a sweet spot between annoying bugs of 9.2 branch now fixed and unsettled changes and new features of 9.8, with support of finally namespaced record fields. Most libs and apps I’m using now support 9.6 and Stack and HLS are now close to Cargo & Rust-analyzer in developer’s experience.

Further observations:

So far, it doesn’t look good to me.

3 Likes

Thanks for the investigation!

1 Like

That is a great point!

Should those second two have corresponding ghc issues opened? I couldn’t find anything in a quick search of the ghc issue tracker, but maybe someone else knows of these already.

Agreed, thank you so very much @hasufell !

1 Like

9.6.5 had just come out. Time to recheck all the issues affecting 9.6.4 to decide if 9.6.5 can save the day…

The cabal version bump with a fix for plugins made it into 9.6.5 according to #24518: Update Cabal to version 3.10.3.0 for GHC-9.6 and GHC-9.8 · Issues · Glasgow Haskell Compiler / GHC · GitLab

1 Like

Even a new minor release will at least take one or two months before GHCup will recommend it.

There has been some movement wrt 9.6.5, but there are still at least two outstanding issues that affect us moving forward:

1 Like

I think this issue makes GHC 9.6.5 problematic, compared to GHC 9.6.4: Windows, foreign-library, Cabal-3.10.3.0 regression in linker · Issue #9982 · haskell/cabal · GitHub

2 Likes

And !12548: driver: always merge objects when possible · Merge requests · Glasgow Haskell Compiler / GHC · GitLab which fixes the linking errors on darwin when using brew toolchain

2 Likes

The GHC gitlab has a list of merge requests that need backporting to 9.6.

2 Likes