[web-devel] problem with yesod, persist and enumerations

Michael Snoyman michael at snoyman.com
Sat Apr 16 19:25:39 CEST 2011


On Sat, Apr 16, 2011 at 5:54 PM, Chris Casinghino <
chris.casinghino at gmail.com> wrote:

> On Sat, Apr 16, 2011 at 10:45 AM, Greg Weber <greg at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/web-devel/attachments/20110416/9ae5545b/attachment.htm>


More information about the web-devel mailing list