Build with ghc-9.2.1#366
Conversation
|
Wow, awesome work! I would prefer to support only one major version of GHC at a time. Honestly that's really all I have the bandwidth to do. It's unfortunate that doing that makes things worse for HLS. I like your suggestion of maintaining separate versions for different versions of GHC. For instance 0.13.x supports GHC 8.10, 0.14.x supports 9.0, and 0.15.x could support 9.2. I'm not sure how practical it is for Brittany, but separate conditionally-included modules are more palatable to me than CPP. For example my Splint project has different modules for GHC <= 8.8, 8.10, and >= 9.0: https://github.com/tfausak/splint/blob/f06756e738813f9a8112237a217f57d5bc588eaa/splint.cabal#L48 |
|
Aha; what do you think of putting a |
|
That sounds reasonable to me. |
(run into Brittany.Internal.Types, & commenting that _probably_ won't work)
The solution to this conundrum is probaby: migrate to The best part is that you don't need to do much other than replacing the |
Just a note regarding this migration: brittany heavily relies on |
|
Relevant The consensus seems to be that |
Early-stage PR, to check whether this kind of copious CPP is agreeable, and to share partial results if those are useful.
My intention here is to build with 9.0.* and 9.2.* series both, as 9.0.3 might well have breaking changes, and in this case haskell language server's brittany plugin will want a ghc-9.0.3-compatible brittany.
(Possibly brittany should have 0.14.* series dedicated to ghc-9.0.*, and a separate 0.15.* series for ghc-9.2.* support?)