Boost logo

Boost :

Subject: Re: [boost] [modularization] Improving/splitting up detail
From: Ahmed Charles (acharles_at_[hidden])
Date: 2013-11-01 15:28:20


> From: john_at_[hidden]
> To: boost_at_[hidden]
> Date: Fri, 1 Nov 2013 19:15:17 +0000
> Subject: [boost] [modularization] Improving/splitting up detail
>
> Lets say we wanted boost/detail to depend on nothing but config, here's what
> it would take:
>
> boost/detail/algorithm.hpp
>
> Used by graph lib only, suggest it's moved there.
>
> boost/detail/allocator_utilities.hpp
>
> Used by multi index, statechart and flyweight, suggest move to new
> "common" module.
>
> boost/detail/atomic_count.hpp
>
> Depends on smart_ptr's details only, suggest those details are moved to
> "detail" module.
>
> boost/detail/binary_search.hpp
>
> Used by python and test, move to "common".
>
> boost/detail/bitmask.hpp
>
> Only external dependency is boost/cstdint.hpp, either move to "common",
> or else move cstdint.hpp to "config".
>
> boost/detail/call_traits.hpp
>
> Move to call_traits (should be there already).
>
> boost/detail/catch_exceptions.hpp
>
> Only external dependency is boost/cstdint.hpp, suggest latter is moved
> to config.
>
> boost/detail/compressed_pair.hpp
>
> Move to compressed pair (should be there already).
>
> boost/detail/endian.hpp
>
> Move to "predef"
>
> boost/detail/has_default_constructor.hpp
>
> File appears to be unused, and not very useful, suggest we remove it.
>
> boost/detail/identifier.hpp
>
> File appears to be unused, suggest we remove it.
>
> boost/detail/indirect_traits.hpp
>
> Used by iterator and python, move to "common"
>
> boost/detail/is_incrementable.hpp
>
> Move to common, or better modify the libraies using this to use the
> newer type_traits equivalents.
>
> boost/detail/is_sorted.hpp
>
> Used by graph and range, move to "common"
>
> boost/detail/is_xxx.hpp
>
> Used by parameter and python, move to "common"
>
> boost/detail/iterator.hpp
>
> I suspect this may be obsolete now compiler requirements have been
> bumped, but whatever it's still used by multiple libs: move to "common"
>
> boost/detail/lcast_precision.hpp
>
> Only used by lexical_cast, move it there.
>
> boost/detail/lightweight_mutex.hpp
>
> Only extern dependency is smart_ptr's details, suggest move those to
> detail.
>
> boost/detail/named_template_params.hpp
>
> Appears to be unused, suggest we remove.
>
> boost/detail/numeric_traits.hpp
>
> Used by graph and iterator, move to "common"
>
> boost/detail/ob_compressed_pair.hpp
>
> Move to compressed pair, might also be obsolete by now.
>
> boost/detail/quick_allocator.hpp
>
> Only external dependency is smart_ptr's details, suggest those are moved
> here. Or since only serialization uses this, move this file there...
>
> boost/detail/reference_content.hpp
>
> Used by optional and variant, move to "common".
>
> boost/detail/winapi/*
>
> Depends on boost/cstdint.hpp only, suggest that belongs to config.
>
> Everything else in detail has no dependencies other than config.
>
> Thoughts?

These look good. My only question is: what is the "common" that you refer to? An existing library or something that will be created?
                                               


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