On Sat, Apr 16, 2011 at 5:54 PM, Chris Casinghino
<chris.casinghino@gmail.com> wrote:
On Sat, Apr 16, 2011 at 10:45 AM, Greg Weber <
greg@gregweber.info> wrote:
> Are you compiling with the development server or doing a cabal build/
I'm doing a cabal build. To reproduce this, I run (cabal configure &&
cabal build) from the command line in the project directory.
I can confirm that this happens. However, it *only* happens when building with cabal. When building with "ghc --make", using runghc or wai-handler-devel, everything works fine. So I tried compiling with "ghc --make -O", and sure enough the same bug appeared.
I don't think there's anything we can do in the libraries to avoid this, it looks like a bug in GHC. You can modify your ghc-options line in the cabal file to pass in "-O0" to disable optimizations, though this is obviously not optimal (bad pun intended). I think we need to report this to the GHC team.
I know virtually nothing about GHC internals, but in case this means something to someone else, here's some of the output from "ghc --make -O -v test.hs":
*** Simplify:
*** CorePrep:
*** ByteCodeGen:
*** Desugar:
Result size = 8699
*** Simplifier SimplMode {Phase = InitialPhase [Gentle],
no inline,
rules,
eta-expand,
no case-of-case} max-iterations=4:
Result size = 9841
Result size = 9797
Result size = 9797
*** Specialise:
Result size = 9797
*** Float out(FOS {Lam = Just 0, Consts = True, PAPs = False}):
Result size = 13259
*** Float inwards:
Result size = 13259
*** Simplifier SimplMode {Phase = 2 [main],
inline,
rules,
eta-expand,
case-of-case} max-iterations=4:
Result size = 677741
Result size = 850762
Result size = 1028928
Result size = 1028928
*** Simplifier SimplMode {Phase = 1 [main],
inline,
rules,
eta-expand,
case-of-case} max-iterations=4:
Result size = 1026905
Result size = 1026876
Result size = 1026876
*** Simplifier SimplMode {Phase = 0 [main],
inline,
rules,
eta-expand,
case-of-case} max-iterations=4:
Michael