Wed Sep 3 04:56:29 PDT 2008 [EMAIL PROTECTED] * Improved specialisation of recursive groups This patch significantly improves the way in which recursive groups are specialised. This turns out ot be very important when specilising the bindings that (now) emerge from instance declarations. Consider let rec { f x = ...g x'... ; g y = ...f y'.... } in f 'a' Here we specialise 'f' at Char; but that is very likely to lead to a specialisation of 'g' at Char. We must do the latter, else the whole point of specialisation is lost. This was not happening before. The whole thing is desribed in Note [Specialising a recursive group] Simon
M ./compiler/simplCore/SimplEnv.lhs -1 +1 M ./compiler/simplCore/SimplMonad.lhs -3 +3 M ./compiler/simplCore/Simplify.lhs -3 +4 M ./compiler/specialise/Rules.lhs -31 +23 M ./compiler/specialise/Specialise.lhs -106 +185 View patch online: http://darcs.haskell.org/ghc/_darcs/patches/20080903115629-1287e-aad82b8d0cd888cd924e8e090d75314042fc9b38.gz _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc