Wed Sep 22 06:37:41 PDT 2010  [email protected]
  * Fix an ASSERT failure with profiling
  
  The problem arose with this kind of thing
  
     x = (,) (scc "blah" Nothing)
  
  Then 'x' is marked NoCafRefs by CoreTidy, becuase it has 
  arity 1, and doesn't mention any caffy things.
  
  That in turns means that CorePrep must not float out the
  sat binding to give
  
    sat = scc "blah" Nothing
    x = (,) sat
  
  Rather we must generate
  
    x = \eta. let sat = scc "blah" Nothing 
              in (,) sat eta
  
  URGH! This Caf stuff is such a mess.

    M ./compiler/coreSyn/CorePrep.lhs -35 +53
    M ./compiler/coreSyn/CoreUtils.lhs -4 +3
    M ./compiler/main/Packages.lhs +3
    M ./compiler/main/TidyPgm.lhs -3 +4
    M ./compiler/stgSyn/CoreToStg.lhs -21 +17
    M ./compiler/stgSyn/StgSyn.lhs -12 +19

View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc-7.0/ghc;a=darcs_commitdiff;h=20100922133741-1287e-8ec18faab45dcd7630e1f6b6e0a1eada5f98f097.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to