
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
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