
[ duh, hit send by mistake, that's twice today :-( ] Ok, we made some progress on performance last week, but there's still plenty to do. Here's a summary: - Simon PJ found an O(n^2) case in the simplifier that appears to be the cause of most, if not all, of the cases of GHC going out to lunch when compiling certain modules. However, while testing the fix we discovered that it caused worse code to be generated for some programs, so we're still looking into this. - I added a hack in GHC's back end to do some lightweight buffering of the output, which results in about a 10% speedup in compilation time. The C output was also using the full pretty printer, when it doesn't really need to do indentation. - I tweaked the garbage collector in a few places, to get some modest speedup. - A nasty space leak in the native code generator was found & fixed. The space usage of GHC in general remains worse than we'd like. - A few other minor optimisations were made in the compiler. We plan to put the simplifier fix into 6.4.1, and the NCG space-leak fix is already in. The other fixes are a little too intrusive with 6.4.1 being so close, so we'll hold off on those (possibly for 6.4.2). Cheers, Simon