patch applied (ghc-6.8/ghc): MERGED: Improve the treatment of 'seq'
igloo at earth.li
Fri May 23 07:44:22 EDT 2008
Wed May 21 14:20:31 PDT 2008 Ian Lynagh <igloo at earth.li>
* MERGED: Improve the treatment of 'seq' (Trac #2273)
Trac #2273 showed a case in which 'seq' didn't cure the space leak
it was supposed to. This patch does two things to help
a) It removes a now-redundant special case in Simplify, which
switched off the case-binder-swap in the early stages. This
isn't necessary any more because FloatOut has improved since
the Simplify code was written. And switching off the binder-swap
is harmful for seq.
However fix (a) is a bit fragile, so I did (b) too:
b) Desugar 'seq' specially. See Note [Desugaring seq (2)] in DsUtils
This isn't very robust either, since it's defeated by abstraction,
but that's not something GHC can fix; the programmer should use
a let! instead.
simonpj at microsoft.com**20080516085149
M ./compiler/basicTypes/MkId.lhs -6 +14
M ./compiler/deSugar/DsUtils.lhs -9 +44
M ./compiler/simplCore/Simplify.lhs -12 +15
View patch online:
More information about the Cvs-ghc