> Unfortunately, we're not talking seconds, but coffee-breaks of > linking times on our Sun (yes, the stuff is in the range of a large > compiler - we're fortunate enough to be able to build on rather > substantial third-party packages, think haskell-in-haskell frontend > distributed over unusually many modules + strategic traversal > support + our own code). > > And yes, I was worried about NFS-mounting first, especially since > linking on our Sun takes even longer than on our PCs (long breaks > instead of short ones;-), but moving .hi and .o to local tmp-space > didn't speed things up (then again, it's a large machine, and our > disk setup is likely to be more complex than I know - I'll have to > check with our admins).
It does sound like it's taking rather too long, I'd investigate further. > > > 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? > > Calling it via GHC seemed the best way to ensure that it gets > everything it needs (what else would be the purpose of -pgml?). Ah I see - it's just like a normal linker, except it takes a previous version of the executable and attempts to just re-link the bits it needs? GHC has some built-in assumptions about the linker: it must accept gcc-style command line options. This probably isn't true of the incremental linker, so you could either (a) write a wrapper around it, or (b) arrange to call the incremental linker through gcc. I can't remember if (b) is possible, but a quick scan of the docs suggested that gcc doesn't have the equivalent of -pgml so (b) might be out. BTW, -pgml is usually just used to select a different version of gcc (as with -pgmc). > > 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. > > Presumably directed via Makefiles? > Could this please be automated for ghc --make? It's easy: $ ld -r -o All.o A.o B.o C.o ... Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users