Boost logo

Boost :

Subject: Re: [boost] [modularization] proposal and poll
From: Peter Dimov (lists_at_[hidden])
Date: 2014-05-30 08:16:43


Julian Gonggrijp wrote:
> PROPOSAL
>
> The following (evolutionary) global changes to Boost should be planned and
> given priority over any other proposals [e.g. 5], in the following order:
>
> 1. Reduction of dependencies between Boost libraries.
> 2. Simple but effective automation of dependency handling.

We all agree on these goals in principle, but what do you actually propose
we need to do? We need to start somewhere. Specifics are needed.

What I can contribute at the moment is

- a suggestion that we publish a Boost dependency report in HTML format
somewhere on boost.org that tells us, and anyone interested, what depends on
what and why;

- a program that generates such a report (in plain text) as a starting point
(attached).

As an example, I've pasted inline the output of "boostdep smart_ptr".

This only gives the primary dependencies; it would be nice for the finished
product to include the secondary module dependencies as well (without going
into specifics what included what, just what module brought up the secondary
dependency).

Dependencies for smart_ptr:

align:
    <boost/align/align.hpp>
        from <boost/smart_ptr/detail/array_allocator.hpp>

assert:
    <boost/assert.hpp>
        from <boost/smart_ptr/detail/atomic_count_pt.hpp>
        from <boost/smart_ptr/detail/lwm_pthreads.hpp>
        from <boost/smart_ptr/detail/sp_counted_base_pt.hpp>
        from <boost/smart_ptr/detail/spinlock_nt.hpp>
        from <boost/smart_ptr/enable_shared_from_raw.hpp>
        from <boost/smart_ptr/enable_shared_from_this.hpp>
        from <boost/smart_ptr/intrusive_ptr.hpp>
        from <boost/smart_ptr/scoped_array.hpp>
        from <boost/smart_ptr/scoped_ptr.hpp>
        from <boost/smart_ptr/shared_array.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>
    <boost/current_function.hpp>
        from <boost/detail/sp_typeinfo.hpp>

config:
    <boost/config.hpp>
        from <boost/detail/lightweight_thread.hpp>
        from <boost/detail/sp_typeinfo.hpp>
        from <boost/get_pointer.hpp>
        from <boost/smart_ptr.hpp>
        from <boost/smart_ptr/detail/array_utility.hpp>
        from <boost/smart_ptr/detail/atomic_count.hpp>
        from <boost/smart_ptr/detail/lightweight_mutex.hpp>
        from <boost/smart_ptr/detail/quick_allocator.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>
        from <boost/smart_ptr/detail/sp_convertible.hpp>
        from <boost/smart_ptr/detail/sp_counted_base.hpp>
        from <boost/smart_ptr/detail/sp_counted_impl.hpp>
        from <boost/smart_ptr/detail/sp_forward.hpp>
        from <boost/smart_ptr/detail/sp_interlocked.hpp>
        from <boost/smart_ptr/detail/sp_nullptr_t.hpp>
        from <boost/smart_ptr/detail/spinlock.hpp>
        from <boost/smart_ptr/detail/spinlock_pool.hpp>
        from <boost/smart_ptr/detail/yield_k.hpp>
        from <boost/smart_ptr/enable_shared_from_raw.hpp>
        from <boost/smart_ptr/enable_shared_from_this.hpp>
        from <boost/smart_ptr/intrusive_ptr.hpp>
        from <boost/smart_ptr/intrusive_ref_counter.hpp>
        from <boost/smart_ptr/make_shared_object.hpp>
        from <boost/smart_ptr/make_unique_object.hpp>
        from <boost/smart_ptr/scoped_array.hpp>
        from <boost/smart_ptr/scoped_ptr.hpp>
        from <boost/smart_ptr/shared_array.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>
    <boost/config/no_tr1/functional.hpp>
        from <boost/smart_ptr/intrusive_ptr.hpp>
    <boost/config/no_tr1/memory.hpp>
        from <boost/get_pointer.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>
    <boost/detail/workaround.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>
        from <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
        from <boost/smart_ptr/enable_shared_from_raw.hpp>
        from <boost/smart_ptr/intrusive_ptr.hpp>
        from <boost/smart_ptr/scoped_array.hpp>
        from <boost/smart_ptr/scoped_ptr.hpp>
        from <boost/smart_ptr/shared_array.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>

exception:
    <boost/throw_exception.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>

type_traits:
    <boost/type_traits/add_rvalue_reference.hpp>
        from <boost/smart_ptr/make_unique_object.hpp>
    <boost/type_traits/alignment_of.hpp>
        from <boost/smart_ptr/detail/array_allocator.hpp>
        from <boost/smart_ptr/detail/quick_allocator.hpp>
        from <boost/smart_ptr/make_shared_object.hpp>
    <boost/type_traits/has_trivial_constructor.hpp>
        from <boost/smart_ptr/detail/array_utility.hpp>
    <boost/type_traits/has_trivial_destructor.hpp>
        from <boost/smart_ptr/detail/array_utility.hpp>
    <boost/type_traits/remove_cv.hpp>
        from <boost/smart_ptr/detail/array_traits.hpp>
    <boost/type_traits/type_with_alignment.hpp>
        from <boost/smart_ptr/detail/quick_allocator.hpp>
        from <boost/smart_ptr/make_shared_object.hpp>

utility:
    <boost/checked_delete.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>
        from <boost/smart_ptr/detail/sp_counted_impl.hpp>
        from <boost/smart_ptr/scoped_array.hpp>
        from <boost/smart_ptr/scoped_ptr.hpp>
        from <boost/smart_ptr/shared_array.hpp>
        from <boost/smart_ptr/shared_ptr.hpp>
    <boost/utility/addressof.hpp>
        from <boost/smart_ptr/detail/shared_count.hpp>




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk