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