#783: performance problem compiling large file
-------------------------+--------------------------------------------------
Reporter: guest | Owner: igloo
Type: merge | Status: new
Priority: normal | Milestone: 6.8.3
Component: Compiler | Version: 6.4.2
Severity: normal | Resolution:
Keywords: performance | Difficulty: Unknown
Testcase: | Architecture: Multiple
Os: Multiple |
-------------------------+--------------------------------------------------
Changes (by simonpj):
* owner: => igloo
* type: compile-time performance bug => merge
Comment:
OK I have fixed the immediate problem.
{{{
Thu Mar 6 13:47:34 GMT 2008 [EMAIL PROTECTED]
* Fix Trac #783: improve short-cutting literals in the type checker
}}}
Ian can you merge, and (somehow) add a test case to the test suite?
I'm not sure how to fully solve the quadratic behaviour in general. The
reason that the lits were appearing in the SRT is because the dictionary
for `Num Float` has a CAF in it. So, as Ian says, there really are N sub-
SRTs for the various stages of evaluation. However things are now less
bad than before:
* Ian has made the SRTs use bitmaps:
{{{
Wed Feb 27 06:45:05 PST 2008 Ian Lynagh <[EMAIL PROTECTED]>
* Add and use seqBitmap when constructing SRTs
}}}
* The above patch from me makes the literal problem go away for `Float`
and `Double` (common cases)
However, as Simon M says, I'm not sure why the N sub-SRTS don't all share
a single table, and that should really kill off the quadratic behaviour in
this case. That is the remaining bit that would be worth investigating.
Maybe leave the ticket open for that.
Simon
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/783#comment:12>
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