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

Reply via email to