[Haskell-cafe] Cyclic Inclusions

ajb at spamcop.net ajb at spamcop.net
Wed Aug 13 07:18:01 EDT 2008

G'day all.

Quoting Thomas Davie <tom.davie at gmail.com>:

> To be honest, ghc compiles things so fast (at least on any of
> my systems) that I couldn't care less if it took 10 times as long (I would
> however like some added convenience for that time spent)

Have you ever compiled GHC itself?  Just curious what you'd think about
a 10x speed hit there.

If it helps, think about the lifetime of a program.  If you assume that
a program grows linearly over time, and that recompilations occur at
a roughly constant rate, it follows that the time spent recompiling
is O(n^2).  Constant factors matter.

> If I compile a module on which lots of other modules depend,
> I have to do lots of recompilation... If I compile a module which is in
> a cyclic dependancy group, I have to do lots of recompilation,  I don't
> see that there's a difference here.

If you only change the implementation of a module, not its interface,
you don't need to recompile anything that imports it.  (At least, this
is true at -O0, which if you care about fast recompilation because
you're deep in development, you're probably doing.)

> That's a fair point about programming style, otoh, I don't think it's a
> reason to restrict users to not using cyclic dependancies.

As previously noted, cyclic dependencies alone aren't the problem.

Andrew Bromage

More information about the Haskell-Cafe mailing list