On Thu, Nov 12, 2009 at 2:57 AM, Neil Mitchell <ndmitchell@gmail.com> wrote:
Hi,

I'd really love a faster GHC! I spend hours every day waiting for GHC,
so any improvements would be most welcome.

Has anyone built a profiling enabled GHC to get data on where GHC spends time during compilation?
 

I remember when developing Yhc on a really low powered computer, it
had around 200 modules and loaded from scratch (with all the Prelude
etc) in about 3 seconds on Hugs. ghc --make took about that long to
start compiling the first file, and I think a complete compile was
around 5 minutes. It's one of the main reasons I stuck with Hugs for
so long.

Running GHC in parallel with --make would be nice, but I find on
Windows that the link time is the bottleneck for most projects.

Yes, when GHC calls GNU ld, it can be very costly.  In my experience, on a linux virtual host I had to build my own GHC to disable split-obj because having it enabled caused ld to use about 1GB of memory.  This is insane for a virtual host.  I tried to solve it by adding swap that meant linking a trivial Setup.hs took about an hour.

In conclusion, improving GNU ld could be a huge win for GHC, at least on linux.  Does GHC on windows use GNU ld?

Jason