-
Notifications
You must be signed in to change notification settings - Fork 182
Drop support for pre-8.0 GHC #811
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
Comments
@phadej, @dterei, @ndmitchell, your comments on the potential impact of a |
Dropping GHC < 8.0 is IMO no-brainer, pretty much every other package (e. g., |
My opinion hasn't changed: #807 (comment) |
Strongly agreed with this idea. I'd drop < 8.6 support at the same time. Do people from the stone age really need the latest containers? I'd say not... But if 8.0 is the threshold that makes your lives easier, sounds great. If you can avoid the TH dependency your life will be easier. But whatever you need to do. |
@phadej thoughts on the TH dependency? @ndmitchell easier how? |
@treeowl the |
@phadej the instance is "semi-automatic" already thanks to the use of quotes. I don't know how your could hope to insert a normalization step with less code; there's basically no boilerplate. And it doesn't just normalize; it also shifts/merges coercions. |
Generally TH slows down builds, changes in each version, doesn't work on all platforms or stage1 compilers - it's got a lot of things that make things a bit different. I avoid it where I can, so it's definitely easier without, but not a big deal with it. |
@ndmitchell you confuse using TH and depending on |
@ndmitchell we only need |
@treeowl it isn't. It's exactly why it was introduced: to be used in stage 1 -like compilers without full TH support. |
With current deriving mechanism I indeed cannot. And in |
@phadej, I agree that being able to derive method implementations rather than just classes would sometimes be useful. It would not, however, be useful for |
Pre-8.0 GHC was dropped in #812 |
It seems impossible (or extremely difficult) to offer
Lift
instances for GHC versions before 8.0. Old versions oftemplate-haskell
depended oncontainers
, making it impossible to depend on them. There are newer versions oftemplate-haskell
that claim to build with the relevant GHC versions, but Cabal refuses, consideringtemplate-haskell
"non-upgradable". That leaves us a few options:th-lift-instances
. This is blecherous, of course.th-lift-instances
to cover earlier versions. Not exactly ideal.DeriveLift
also appeared in 8.0, most instances could be derived (theSeq
instance wants a bit of special treatment).Longer-term concerns about depending on
template-haskell
:template-haskell
won't be able to depend directly oncontainers
. I don't imagine this is a serious problem.template-haskell
can't depend indirectly oncontainers
either. This means thatpretty
can't depend oncontainers
. It's managed this long without doing so, so I guess that's probably fine, but if it finds itself needing anycontainers
-like structures, it'll have to reimplement them itself.The text was updated successfully, but these errors were encountered: