
On 23 June 2012 21:05, Dave Abrahams <dave@boostpro.com> wrote:
on Sat Jun 23 2012, Mathias Gaunard <mathias.gaunard-AT-ens-lyon.org> wrote:
On 06/22/2012 08:33 PM, Dave Abrahams wrote:
Good question. We do have two problematic dependency loops in Boost, but it's not caused by this sort of header structure:
What are the loops here? What do the colored boxes and arrows mean?
Each set of same-colored boxes is a SCC in the build dependency graph. Heavy black arrows are direct dependencies. Dashed arrows are dependencies introduced by usage-requirements (such as these: https://github.com/boost-lib/math/blob/master/CMakeLists.txt#L96). The blue ones are members of a transitive reduction of those usage dependencies. Ignoring the gray ones *might* make the structure easier to see.
Is this something we should be doing something about? I guess the Boost.Math circle could possibly be broken by splitting Boost.Math into smaller modules (obviously up to John).
Also this doesn't seem to cover all of Boost.
You don't want to see that graph :-). It looks something like http://f.cl.ly/items/3V2I3A103K1Y45113s3w/source-deps.pdf
That's pretty crazy. Do you know if separating test dependencies would make much of a difference?