#1592: Unexpected boxing in generated code
-------------------------+--------------------------------------------------
Reporter: neil | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.6.1
Severity: minor | Resolution:
Keywords: | Difficulty: Unknown
Os: Unknown | Testcase:
Architecture: Unknown |
-------------------------+--------------------------------------------------
Comment (by [EMAIL PROTECTED]):
This actually doesn't have to do with the mutual recursion; it happens
because of the "IO hack" in the demand analyzer. As per comments in the
dmdAnalAlt function in DmdAnal.lhs, what's happening is that the call to
$wccall_r2kv is being recognized as an IO operation (based on its type);
because an IO operation might terminate the program in a non-erroneous
way, it wouldn't be correct to evaluate f60's arguments before the call to
$wccall_r2kv.
Now, in this case, $wccall_r2kv is just getchar(), which I don't think
could possibly terminate the program, so maybe the IO hack needs to be
made a little bit more specific...
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1592>
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