incremental linking?
Simon Marlow
simonmar@microsoft.com
Wed, 27 Nov 2002 09:50:56 -0000
> More fun with Haskell-in-the-large: linking time has become the
> main bottleneck in our development cycle. The standard solution
> would be to use an incremental linker, but it seems that gnu does
> not yet support this:-|
Hmm, I've never heard of linking being a bottleneck. Even GHC itself
links in about 3-4 seconds here. One common problem is that linking on
a network filesystem takes a *lot* longer than linking objects from a
local disk. It's always a good idea to keep the build tree on the local
disk, even if the sources are NFS-mounted.
> Alternative a: use someone else's incremental linker, e.g., Sun's
> ild (ghc's -pgml option appears to have its own idea about option
> formatting, btw) - this doesn't seem to work - should it?
You'd probably want to call the incremental linker directly rather than
using GHC - what exactly does it do, BTW? What files does it generate?
> Alternative b: convince ghc to link objects in stages, e.g., on a
> per-directory basis - gnu's ld seems to support at least this kind
> of partial linking (-i/-r). Not quite as nice as a fully incremental
> linker, but would probably save our day..
Yes, this works fine. We use it to build the libraries for GHCi.
Cheers,
Simon