Boost logo

Boost :

Subject: Re: [boost] [modularization] Modularizing Boost (modularization)
From: Daniel James (daniel_at_[hidden])
Date: 2013-10-18 04:18:40

On 17 October 2013 23:24, Stephen Kelly <steveire_at_[hidden]> wrote:
> * Phase 2 - Form some kind of 'boost core library' or 'boost feature
> normalization library' from the guts of existing libraries like
> type_traits, static_assert, config mpl and utilities.

I think the intent was for 'detail' to be a sort of core module, but
several of its headers do drag in too many dependencies. I'd be
inclined to move them out of detail, but that's up to you.

> Move enable_if from utility to type_traits:

It might be worth breaking up modules like utility and iterator rather
than moving the headers into new modules. The smaller modules could
still feed into your boost core/feature normalization module. Although
that might be too difficult to do as part of the conversion. The
original plan was to break the functional module up, but there was a
problem with doing that in the conversion, so I was going to look into
doing it afterwards instead, which I think can be done while
preserving history.

> git submodule foreach 'git grep -l -P boost/detail/workaround.hpp --
> include/boost | xargs sed -i
> "s|boost/detail/workaround.hpp|boost/config/workaround.hpp|" || echo'
> mv libs/detail/include/boost/detail/workaround.hpp
> libs/config/include/boost/config/

I think moving workaround.hpp to config is just a case of moving a
line in this file:

Actually, we should probably create a pull request today, as it seems
like a sensible and uncontroversial change to me. Perhaps also
'boost/limits.hpp' and 'boost/version.hpp'. We can leave the
workaround header's path as 'boost/detail/workaround.hpp', there are
already 'detail' paths in multiple modules. The headers can be moved
round within a module after the conversion.

Btw. Unless I've misunderstood the command you're using (sorry if I
have), you're not updating '.cpp' files which might skew the results.
E.g. if you change the path of boost/detail/workaround.hpp files like:
"libs/graph/src/read_graphviz_new.cpp" and several others need to be

Boost list run by bdawes at, gregod at, cpdaniel at, john at