Skip to content

Compatibility with 9.6#438

Merged
aspiwack merged 6 commits intomasterfrom
compat/9.6
Mar 17, 2023
Merged

Compatibility with 9.6#438
aspiwack merged 6 commits intomasterfrom
compat/9.6

Conversation

@aspiwack
Copy link
Copy Markdown
Member

@aspiwack aspiwack commented Feb 16, 2023

This pull request makes linear-base compatible with GHC 9.6.

I've moved the compatibility files around to permit for many version transitions if we need to (even if I plan to drop 9.2 support soon).

Draft because this is very not done

  • Fix the Solo instances
  • Any other fixes?
  • Update Nixpkgs to a version with GHC 9.6 in it
  • Add 9.6 to CI
  • Formatting

Closes #437

- The directory is name `src-<something>` so as to be listed closed to
  `src`.
- It contains a sub-directory for each version where a change needs to
  be enacted. Which avoids having to duplicate files between version,
  or a complicated combinatorics in the cabal file.
@aspiwack
Copy link
Copy Markdown
Member Author

@matthew-healy since you participated in the previous such occurrence, would you have a look and tell me what you think of the general plan? (I'm sparing @jeicher because I know he wants to focus on his client's work at present).

@matthew-healy
Copy link
Copy Markdown

@aspiwack Sure thing! From a very cursory glance it looks reasonable, but I'll take a more in-depth look tomorrow morning just to make sure.

@aspiwack
Copy link
Copy Markdown
Member Author

Using a quick and dirty matrix job to check against more versions of GHC. I'll have to fiddle with the branch protection options to reflect this.

@@ -0,0 +1,16 @@
{-# LANGUAGE LinearTypes #-}
module Data.Tuple.Linear.Compat where
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'm pondering whether I want Data.Tuple.Linear.Compat to be hidden in Haddock as an internal module (applies to both copies).

@aspiwack
Copy link
Copy Markdown
Member Author

Some bikeshedding thoughts to ponder:

  • We could rename src-version-changes to src-something-snappier
  • We could rename changed-in-ghcxx to ghcxx
    • In which case, we could rename the subdirectory ghcxx and ghcyy to before and after, so that the directory structure is more predictable.

@aspiwack
Copy link
Copy Markdown
Member Author

aspiwack commented Mar 17, 2023

I've tried using a more recent Nixpkgs version, but for whatever reason it ends up rebuilding a large proportion of the Haskell dependencies. I don't have time to investigate, and it would break CI. Maybe I'll join testing on GHC 9.6 with dropping support for GHC 9.2. @guibou I'd be appreciative if you could test this version with GHC 9.6 before I merge.

@aspiwack
Copy link
Copy Markdown
Member Author

Actually, it was a bit hacky, but I managed to test with GHC 9.6. I think that most of the issues with Nix are in haskell-language-server and its dependencies. So it may be fixable, but I won't have time today. I'll merge as soon as CI is green.

@aspiwack aspiwack marked this pull request as ready for review March 17, 2023 14:31
@aspiwack aspiwack enabled auto-merge March 17, 2023 14:32
@aspiwack aspiwack merged commit 322c32c into master Mar 17, 2023
@aspiwack aspiwack deleted the compat/9.6 branch March 17, 2023 14:34
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.

Fails to build with GHC 9.6 alpha2

2 participants