dreixel / generic-deriving

BSD 3-Clause "New" or "Revised" License
44 stars 32 forks source link

Support building with GHC 8.9 #67

Closed adinapoli closed 4 years ago

adinapoli commented 4 years ago

The currently-unreleased GHC HEAD is 8.9, which comes with base-4.13. This commit slightly specialise some CPP macros inside Instances.hs to make sure this build not only on GHC 8.10 but also on 8.9.

@RyanGlScott Do you think this is benign enough to be merged?

RyanGlScott commented 4 years ago

I'm rather confused at what you mean by "currently-unreleased GHC HEAD is 8.9", since I get a much different version number on my (fairly recent) checkout of HEAD:

$ ~/Software/ghc5/inplace/bin/ghc-stage2 --version
The Glorious Glasgow Haskell Compilation System, version 8.11.0.20200113

Moreover, GHC 8.10.1-alpha2 is using base-4.14, which leads me to believe that you're using an outdated version of HEAD?

adinapoli commented 4 years ago

Moreover, GHC 8.10.1-alpha2 is using base-4.14, which leads me to believe that you're using an outdated version of HEAD?

Correct, I'm using a version of HEAD which is ~ 2 months ago. In particular, I don't need the latest HEAD, but only a version of GHC which supports dynFlags plugins (and therefore sticking to this one was merely an exercise in "status quo").

If you think this patch is unnecessary (I can now see how it might be) feel free to close; I would simply take a stab at using a more recent HEAD then 😉

RyanGlScott commented 4 years ago

I'm not keen on merging this since it changes the API (Rep{0,1}Kleisli would no longer be exposed on GHC 8.10). Generally speaking, it's never going to be possible for a library to support every pre-release version of GHC in existence, since different versions of HEAD have incompatible version bounds. Alas, I think GHC 8.10.1-alpha2 wins out in this case—sorry!

adinapoli commented 4 years ago

No worries, and thanks for your time! I agree that using 8.10.1-alpha2 is a much more sensible plan on my side 😸