Losing (parallel) sleep over module dependencies

Ben Gamari ben at smart-cactus.org
Tue Apr 9 14:22:34 UTC 2019

Matthew Pickering <matthewtpickering at gmail.com> writes:

> Hi all,
> I get worried quite often about the interaction of two facts
> 1. Adding a new dependency to a module is easy.
> 2. Adding a new dependency changes the build graph and potentially
> reduces the amount of parallelism which the build is capable of.
> Has anyone thought of any strategies to analyse the dependency graph
> of GHC so that a linter can be
> created to warn against any changes which create dependencies which
> affect the parallelism?
> hs-boot files make this issue even worse I think but I'm not sure of
> the precise recompilation semantics.
> It would be quite straight forward to index ghc as it is being built
> to create a dependency graph (at the identifier) level but it's
> unclear to me whether it is possible to do anything productive with
> this information.
In principle we could just produce a Hadrian profile as a CI product.
From this you could compute the mean available parallelism over the
course of the build and record this as a performance metric for, e.g.,


- Ben
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20190409/b5ac89a3/attachment.sig>

More information about the ghc-devs mailing list