Tue Sep 8 06:14:00 PDT 2009 [email protected]
* Fix Trac #3403: interaction of CPR and pattern-match failure
Ignore-this: 38bbb145cdc2c814a45122144ef84a4d
A fine bug report (#3403) demonstrated that we were losing the tail
call property when a complicated pattern match was involved. After
a bit of investigation I discovered that the culprit was the failure
join-point introduced by the pattern matcher. It was a zero-argument
thunk, which is not very CPR-friendly, and that interacted badly with
CPR worker/wrapper.
It's easy to fix, the same way that we fix other join points, by supplying
a dummy argument (that is not really passed at runtime.
M ./compiler/deSugar/DsUtils.lhs -12 +25
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20090908131400-1287e-21c6e6d71215e87a6960d697144a4eee8d611645.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc