Subject: Re: [boost] Boost and exceptions
From: Dave Abrahams (dave_at_[hidden])
Date: 2012-06-23 20:55:06
on Sat Jun 23 2012, Daniel James <dnljms-AT-gmail.com> wrote:
> On 23 June 2012 21:05, Dave Abrahams <dave_at_[hidden]> 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:
>>>> Â Â Â http://f.cl.ly/items/343N460u3b3039091C0g/deps.pdf
>>> 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).
There are a few libraries that are substantially, but not completely,
usable without their compiled component. That is to say, they're
header-only except for a few features. If in each case, those few
features were split into their own module, this issue would go away.
>>> Also this doesn't seem to cover all of Boost.
>> You don't want to see that graph :-). Â It looks something like
> That's pretty crazy. Do you know if separating test dependencies would
> make much of a difference?
They're already separated, along with documentation dependencies. You
*really* don't want to see the graph that includes the test dependencies
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk