GHC compile times (was Re: GHC 6.4.3 is stalled)

John Meacham john at
Wed Jul 26 21:09:09 EDT 2006

On Wed, Jul 26, 2006 at 11:54:37AM +0100, Malcolm Wallace wrote:
>     For hacking, you want the build to be quick - quick to build in the
>     first place, and quick to rebuild after making changes.  Tuning your
>     build setup can make the difference between several hours to build
>     GHC, and less than an hour.  Here's how to do it.

This reminds me of something. I ofter use {-# NOINLINE ... #-} with ghc
combined with frugal export lists in order to speed up the rebuild
process when I know something is not going to benefit from being inlined
or temporarily when I am making lots of internal changes to a file and
want the rebuilds to go as fast as possible.

However, whenever I change a data type or class even if they are not
exported, it seems to force a full rebuild of everything that depends on
that file. Is there any fundamental reason this can't be fixed? why do
the non exported classes and data types end up in the hi file anyway
(assuming they appear in no exported functions type signature of course)

perhaps there could be a mode that means "optimize, but do so in a way
that minimized the need to rebuild anything", so it will do optimization
and inlining within a module, but will avoid anything that changes the
external interface in a way that will cause dependencies to need to be


John Meacham - ⑆⑆john⑈

More information about the Glasgow-haskell-users mailing list