attoparsec
attoparsec copied to clipboard
Lower bound on transformers
Attoparsec uses Data.Functor.Identity
. Consequently, it should require transformers >= 0.4.1.0
.
This only shows up when building with older versions of GHC. Try this for example to see the failure:
cabal new-build --constraint='transformers==0.4.0.0` -w ghc-7.4.2
I've fixed up the affected releases (@bgamari, so everything that's now left to do is to update the .cabal
file for the sake of future attoparsec
releases)
- https://hackage.haskell.org/package/attoparsec-0.13.0.0/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.0.1/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.0.2/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.1.0/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.2.0/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.2.1/revisions/
- https://hackage.haskell.org/package/attoparsec-0.13.2.2/revisions/
Awesome. Thanks!
Unfortunately, these revisions are causing various build failures for me (criterion
example).
Also, these new version bounds are too conservative. Data.Functor.Identity
was introduced in transformers-0.2.0.0
, not 0.4.1.0
. The reason that attoparsec
was failing to build was because it is importing Identity(runIdentity)
, and transformers-0.4.0.0
made the strange decision to not export runIdentity
as a record selector:
$ cabal build
Preprocessing library for attoparsec-0.13.2.2..
Building library for attoparsec-0.13.2.2..
[ 5 of 21] Compiling Data.Attoparsec.Zepto ( Data/Attoparsec/Zepto.hs, dist/build/Data/Attoparsec/Zepto.o )
Data/Attoparsec/Zepto.hs:44:31:
Module
`Data.Functor.Identity'
does not export
`Identity(runIdentity)'
This is why attoparsec
fails to build against that particular version of transformers
. For that reason, transformers-0.4.0.0
was deprecated on Hackage. (All other versions of transformers
between 0.2.0.0
and 0.5.5.0
do export runIdentity
as a record selector.)
If you really want to be sure that attoparsec
never builds against transformers-0.4.0.0
, you should change the version bounds to transformers >= 0.2 && < 0.4 || >=0.4.1 && <0.6
. I don't have the ability to change this myself—can a Hackage trustee please do this?
@RyanGlScott Oh dear... I totally missed that :-/
I've fixed up the version bound as you suggested; would have been easier to turn that soft-blacklist of transformers-0.4 into a hard-blacklist...