|
Boost : |
Subject: Re: [boost] Reducing dependencies
From: Antony Polukhin (antoshkka_at_[hidden])
Date: 2018-04-07 12:53:47
On Sat, Apr 7, 2018, 12:58 Daniel James via Boost <boost_at_[hidden]>
wrote:
> On 7 April 2018 at 09:58, Vicente J. Botet Escriba via Boost
> <boost_at_[hidden]> wrote:
> > Le 25/03/2018 à 11:18, Antony Polukhin via Boost a écrit :
> >>
> >> Hello,
> >>
> >> I've noted that many libraries depend on container_hash while it
> >> depends only on a single header from Boost.Detail library
> >> https://pdimov.github.io/boostdep-report/master/module-levels.html
> >>
> >> Can we move "boost/detail/container_fwd.hpp" into Boost.Core or into
> >> Boost.ContainerHash? This will break the circular dependency, move the
> >> Boost.ContainerHash on level 4 and improve levels of Intrusive,
> >> Container, CircularBuffer, Unordered, Algorithm, Test, TypeIndex, Any,
> >> Function, Functional, ScopeExit, Signals, MultiArray, Variant.
> >>
> >>
> > Yes, please, move it to a specific Boost.ContainerHash.
> >
> > I don't mind having more components, if we reach to manage better the
> > dependencies.
>
> IMO the problem is that detail depends on MPL. It really shouldn't be
> an expensive dependency, and shuffling things around is just causing
> extra complication while avoiding dealing with the real problem. Most
> uses of MPL can be replaced with more lightweight functionality. I
> think the only exception is the support for MPL lambdas which I don't
> think is necessary. I haven't checked but there's a decent chance
> they're not used at all in Boost (and since it's detail they aren't
> for public use), and I don't think the workarounds are required for
> any of the compilers in use nowadays anyway.
>
In that case I'd love to see both changes:
* dropping circular dependency container_hash <=> detail
* dropping dependency of detail on mpl
With both changes much more libraries improve in dependency levels.
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk