Content-Length: 617701 | pFad | http://github.com/purescript/purescript/pull/4568

8A Upgrade to GHC 9.6.6 by ad-si · Pull Request #4568 · purescript/purescript · GitHub
Skip to content

Upgrade to GHC 9.6.6 #4568

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 45 commits into from
Apr 10, 2025
Merged

Upgrade to GHC 9.6.6 #4568

merged 45 commits into from
Apr 10, 2025

Conversation

ad-si
Copy link
Contributor

@ad-si ad-si commented Mar 26, 2025


This is a first starting point as a few things still need to be clarified:

I added 3 GitHub dependencies with fixes for the respective libraries.

There are several options how to deal with it:

  1. Use it like this
  2. Fork the repositories to purescript/… and use from there
  3. Upstream changes to Hackage packages first
    (Could be hard since the repos don't seem to be actively maintained anymore)
  4. Fork and republish under a new Hackage package name

I would actually just use it like this. The version is exactly pinned through the commit hash, and we're dependent on GitHub in many ways already anyways.
What do you think?

TODOs:

  • pattern-arrows - Integrate this into the source code as it is only one file
  • cheapskate - Use MercuryTechnologies/cheapskate until we replace it with commonmark-hs
  • aeson-better-errors - Release a new version on Hackage
  • Maybe upgrade even to GHC 9.6.7 if available soon (Update: In a follow up PR)
  • Added a file to CHANGELOG.d for this PR (see CHANGELOG.d/README.md)
  • Added myself to CONTRIBUTORS.md (if this is my first contribution)
  • Linked any existing issues or proposals that this pull request should close
  • Updated or added relevant documentation
  • Added a test for the contribution (if applicable)

f-f and others added 30 commits February 20, 2025 13:42
- Switch from `ansi-wl-pprint` to `prettyprinter`
- Add several `extra-deps`
@ad-si
Copy link
Contributor Author

ad-si commented Apr 1, 2025

@f-f the latest commit builds correctly in my fork. Were you able to figure out what's wrong with the self-hosted runners? Also, are they even still needed? Seems like GitHub has quite a few options for different runners by now.

Regarding the GHC version: Do we want to wait until 9.6.7 is available via Stackage or merge it with 9.6.6 already and upgrade it in another PR. I'd prefer if we already merge it, so I can create some follow up PRs with the actual changes I wanted to make. 😅

@purefunctor said he can release the new aeson-better-errors version on the weekend.

@f-f
Copy link
Member

f-f commented Apr 1, 2025

Were you able to figure out what's wrong with the self-hosted runners?

Yes, they are going again 🙂

Also, are they even still needed? Seems like GitHub has quite a few options for different runners by now.

Good question - it looks like GitHub runners can do Linux ARM64 as well these days, which is great and it means we could replace the self-hosted things with that.

I'd be happy to have them replaced with GitHub-hosted ones (and arguably we are already doing that given that we're running macos-14)

@f-f f-f mentioned this pull request Apr 1, 2025
@ad-si
Copy link
Contributor Author

ad-si commented Apr 3, 2025

The arm64 Linux runner seems to work well: https://github.com/ad-si/purescript/actions/runs/14227397693

@f-f Let me remove the self-hosted runners then, ok?

@f-f
Copy link
Member

f-f commented Apr 3, 2025

@ad-si ah yeah these builds look good. We're good to remove the self hosted runners!

Could we use ubuntu-22 for ARM? For the usual concerns about old glibc.

@ad-si
Copy link
Contributor Author

ad-si commented Apr 3, 2025

Could we use ubuntu-22 for ARM? For the usual concerns about old glibc.

But Ubuntu is only the host image, and it's actually build in the haskell:9.6.6 image, right?

@f-f
Copy link
Member

f-f commented Apr 3, 2025

But Ubuntu is only the host image, and it's actually build in the haskell:9.6.6 image, right?

Oh sorry, of course 😄

@f-f
Copy link
Member

f-f commented Apr 3, 2025

@ad-si one last thing: could you add to the changelog the fact that we are bumping the minimum required glibc from 2.28 to 2.31?

Copy link
Member

@f-f f-f left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great now - thanks @ad-si!

@ad-si
Copy link
Contributor Author

ad-si commented Apr 4, 2025

🙌 … just waiting for @purefunctor to release the new aeson-better-erros version and we're ready to go 🚀

@ad-si
Copy link
Contributor Author

ad-si commented Apr 8, 2025

Just pushed the update for aeson-better-erros 🚀
If there are no more concerns, I think we're ready to merge, right?

(The HLS for 9.6.7 is still not available via GHCup. So I would do that in a follow up PR.)

Copy link
Member

@purefunctor purefunctor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tiny comments

Copy link
Member

@purefunctor purefunctor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting on CI then merging

These errors are present in the Cabal build and seem to be caused
by Cabal and Stack using different versions of mtl, with 2.3.x notably
changing re-exports for certain modules.
Copy link
Member

@purefunctor purefunctor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once tests go green I think this should be good to merge. One caveat here is that Cabal builds are currently not working because it's pinned to haskeline-0.8.2, which avoids libtinfo from being added to the build. Our stack build works because of allow-newer-deps:

Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: cheapskate-0.1.1.2 (user goal)
[__1] trying: base-4.18.2.1/installed-4.18.2.1 (dependency of cheapskate)
[__2] trying: purescript-0.15.15 (user goal)
[__3] next goal: haskeline (dependency of purescript)
[__3] rejecting: haskeline-0.8.2.1/installed-0.8.2.1 (conflict: purescript => haskeline==0.8.2)
[__3] skipping: haskeline; 0.8.3.0, 0.8.2.1 (has the same characteristics that caused the previous version to fail: excluded by constraint '==0.8.2' from 'purescript')
[__3] rejecting: haskeline-0.8.2 (conflict: base==4.18.2.1/installed-4.18.2.1, haskeline => base>=4.9 && <4.18)
[__3] skipping: haskeline; 0.8.1.3, 0.8.1.2, 0.8.1.1, 0.8.1.0, 0.8.0.1, 0.8.0.0, 0.7.5.0, 0.7.4.3, 0.7.4.2, 0.7.4.1, 0.7.4.0, 0.7.3.1, 0.7.3.0, 0.7.2.3, 0.7.2.2, 0.7.2.1, 0.7.2.0, 0.7.1.3, 0.7.1.2, 0.7.1.1, 0.7.1.0, 0.7.0.3, 0.7.0.2, 0.7.0.1, 0.7.0.0, 0.6.4.7, 0.6.4.6, 0.6.4.5, 0.6.4.4, 0.6.4.3, 0.6.4.2, 0.6.4.1, 0.6.4.0, 0.6.3.2, 0.6.3.1, 0.6.3, 0.6.2.4, 0.6.2.3, 0.6.2.2, 0.6.2.1, 0.6.2 (has the same characteristics that caused the previous version to fail: excludes 'base' version 4.18.2.1)
[__3] rejecting: haskeline-0.6.1.6 (conflict: purescript => haskeline==0.8.2)
[__3] skipping: haskeline; 0.6.1.5, 0.6.1.3, 0.6.1.2, 0.6.1.1, 0.6.1, 0.6.0.1, 0.6, 0.5.0.1, 0.5, 0.4, 0.3.2, 0.3.1, 0.3, 0.2.1, 0.2 (has the same characteristics that caused the previous version to fail: excluded by constraint '==0.8.2' from 'purescript')
[__3] fail (backjumping, conflict set: base, haskeline, purescript)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: purescript, base, haskeline, cheapskate
Try running with --minimize-conflict-set to improve the error message.

#4573 should hopefully slay the libtinfo dragon once and forall in the near future.

@purefunctor purefunctor merged commit 48be80d into purescript:master Apr 10, 2025
7 checks passed
@ad-si ad-si deleted the upgrade-to-ghc-9.6 branch April 10, 2025 10:58
@kozak kozak mentioned this pull request May 27, 2025
@purefunctor purefunctor mentioned this pull request Jun 1, 2025
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Doesn't build on macOS arm64
4 participants








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/purescript/purescript/pull/4568

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy