#5625: Code using seq has wrong strictness when unoptimised (too lazy)
-------------------------------------------+--------------------------------
Reporter: michal.palka | Owner: simonpj
Type: bug | Status: new
Priority: high | Milestone: 7.4.1
Component: Compiler | Version: 7.3
Keywords: seq strictness strict lazy | Testcase:
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: Incorrect result at
runtime
-------------------------------------------+--------------------------------
Comment(by simonpj@…):
commit a522c3b25eea1fe40edae7052335acce75e8a1c3
{{{
Author: Simon Peyton Jones <[email protected]>
Date: Fri Nov 11 20:08:42 2011 +0000
Tighten up the definition of arityType a bit further,
to make Trac #5625 work. The main change is that
we eta-expand (case x of p -> \y. blah) only if the
case-expression is in the context of a \x. That is still
technically unsound, but it makes a big difference to
performance; and the change narrows the unsound cases
a lot.
compiler/coreSyn/CoreArity.lhs | 140
+++++++++++++++++++++++-----------------
1 files changed, 80 insertions(+), 60 deletions(-)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5625#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs