Boost logo

Boost :

Subject: Re: [boost] Some statistics about the C++ 11/14 mandatory Boost libraries
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2015-05-13 13:52:05


On 13/05/15 01:00 PM, Edward Diener wrote:
> On 5/13/2015 12:37 PM, Stefan Seefeld wrote:
>> On 13/05/15 12:19 PM, Niall Douglas wrote:
>>> Personally speaking, I think the new library authors are
>>> overwhelmingly voting for a complete break with Boost 1.x. It makes
>>> no sense to bundle these new libraries into a 1.x monolithic distro
>>> when they have no dependencies on Boost.
>>>
>>> I believe now is the time we start establishing the infrastructure to
>>> shape the new Boost 2.0 distro instead of wasting resources on trying
>>> to refactor the 1.x distro. APIBind is there for maintainers wanting
>>> to be part of both distros. Let's make a clean break.
>>
>> Allow me to bring up a point I have been trying to make for quite a
>> while: Why does Boost need a single "distro" ?
>> Assuming a full breakup of boost libraries with well documented (and
>> encoded) dependencies among them, I think a much more viable solution
>> for everyone would be to let each boost library become its own project
>> with its own release schedule etc.
>>
>> So Boost would be merely an umbrella organization, and what you call a
>> distro may be the repository of Boost libraries.
>>
>> Wouldn't that be something worthwhile to think about and discuss ?
>
> It is definitely worth discussing. The key is "with well documented (and
> encoded) dependencies among them".
>
> How do we do this ?

Glad you asked. :-)

I think the answer is easy within the context I brought this up in:
Niall is suggesting a clean break, with only little concern for any
transition (refactoring).
So, if we start by assuming that each prerequisite library lives in a
separate space, we can code these assumptions right into the build logic
(e.g., separate header include and library search paths for each, etc.)

Likewise, documenting the prerequisites is easy, if you have to do it
upfront. It's only hard if these dependencies are implied, and only
after the fact you need to re-discover them.

>
> It is silly to suppose that new "Boost" libraries will be developed
> that do not depend on other already existing Boost libraries. If
> library X depends on library Y we currently know that library X will
> work with library Y for Boost distro N because we have tested them
> before we release distro N. If library X goes off with its own release
> schedule how do we determine with which versions of Y it will work
> when it is being released ?

That's for each library maintainer to determine and to encode. Of
course, I would assume boost to provide shareable tools to make it
easier to do this, but boost is hardly the only project facing such
tasks. In fact, the entire Free Software world had to solve this for
many years.
(I can think of ways to add support for expressing and checking right
into boost.build, for example, but no boost library author should be
forced to use any of those. It's merely a convenience to make their life
easier, not harder !)

    Stefan

-- 
      ...ich hab' noch einen Koffer in Berlin...

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