#3138: Returning a known constructor: GHC generates terrible code for cmonad
-----------------------------------------+----------------------------------
Reporter: simonpj | Owner:
Type: run-time performance bug | Status: new
Priority: normal | Milestone: 6.12 branch
Component: Compiler | Version: 6.10.1
Severity: normal | Resolution:
Keywords: | Difficulty: Unknown
Testcase: | Os: Unknown/Multiple
Architecture: Unknown/Multiple |
-----------------------------------------+----------------------------------
Comment (by augustss):
A first thing to look at is the fact that there's still dictionaries in
the code.
There's no unresolved overloading in Inf.hs, so all dictionaries should be
gone.
To avoid the disturbing recursive while function, try this code instead:
{{{
inf = runE $ do
s <- auto 0
i <- auto 0
i =: 1
if1 ((i :: E m Double) <= 1e3) $ do
s += 1/i
i += 1
retrn s
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3138#comment:4>
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