
Unfortunately, that pragma pretty much makes the difference between vector
being fast, getting benefits out of stream fusion for all those
intermediate stream types and not.
It might be a much nicer story if stage-1 builds simply ignored ANN pragmas
entirely.
As it is I get complaints from distribution maintainers with wide
distributions about any use of module or function annotations for HLint,
and this particular ForceSpecConstr annotation has come up as a source of
pain for Austin before, though I've forgotten the details as to why.
-Edward
On Sun, Mar 30, 2014 at 6:05 PM, Nikita Karetnikov
The latest Hackage version and HEAD fail to build on mips64el due to the ANN pragma in ‘Data/Vector/Fusion/Stream/Monadic.hs’:
[ 5 of 21] Compiling Data.Vector.Fusion.Stream.Monadic ( Data/Vector/Fusion/Stream/Monadic.hs, dist/build/Data/Vector/Fusion/Stream/Monadic.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.6.3 for mipsel-unknown-linux): Cant do annotations without GHCi {Data/Vector/Fusion/Stream/Monadic.hs:104:19-33} base:GHC.Exts.ForceSpecConstr{d r2i8}
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
Here’s the relevant part of the code:
data SPEC = SPEC | SPEC2 #if __GLASGOW_HASKELL__ >= 700 {-# ANN type SPEC ForceSpecConstr #-} #endif
Is it possible to use CPP along with some configure flag to determine if GHCi is available, and if it is not, skip the said pragma? I tested the Hackage version, and it builds fine if I comment out the mentioned lines.
Does the lack of the pragma make a big difference? (The relevant section of the GHC manual is very brief.)
_______________________________________________ Libraries mailing list Libraries@haskell.org http://www.haskell.org/mailman/listinfo/libraries