Boost logo

Boost :

From: Boris Kolpackov (boris_at_[hidden])
Date: 2022-12-06 15:20:58


Seth via Boost <boost_at_[hidden]> writes:

> On Tue, Dec 6, 2022, at 1:14 PM, Boris Kolpackov via Boost wrote:
> > Like libboost-multi-index depending on libboost-regex
> > and thus ICU.
>
> I was so baffled I had to check: https://pdimov.github.io/boostdep-report/boost-1.80.0/multi_index.html
>
> It's actually Boost Range, which is a completely sane dependency for
> Boost Multi Index. Regex could probably be an optional dependency for
> Boost Range (which only uses Regex inside the `tokenized` adaptor).

Yeah, here are all the direct dependents of libboost-regex (as of the
1.78.0 release):

libboost-iostreams
libboost-graph
libboost-range
libboost-spirit
libboost-log
libboost-algorithm
libboost-asio

Quite a few of these besides range rise an eyebrow (graph, algorithm,
iostreams). In fact, when we package the next release of Boost, we are
going to try to make these dependencies optional.

But I think this highlights the bigger underlying problem: Boost is not
using adequate tooling that would make dealing with this tractable.
It's probably not that difficult to make most of the above dependencies
optional. But that's not for free: now you have double the number of
configurations to test (if your CI service has support for testing such
custom build configurations, that is). Add a couple more such optional
dependencies and you are looking at a couple of hundreds build configurations.
At this point your pull-style CI service will likely start having scaling
issues and you have to wait hours for your feature branch to be completely
tested. Maybe what you have changed doesn't have anything to do with the
optional dependencies, but there is probably no easy way to communicate
this to the pull-style CI service.


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