Boost logo

Boost :

Subject: Re: [boost] [c++11]
From: Phil Richards (news_at_[hidden])
Date: 2013-06-14 08:53:13


On 14/06/2013 11:53, Andrey Semashev wrote:
> On Friday 14 June 2013 11:40:35 Phil Richards wrote:
>> Would it be possible to maintain a "boost1-mainline" (old c++, optional
>> c++11) and "boost2-mainline" (c++11, optional old c++) for each of the
>> sub-modules?
> As a library maintainer, I wouldn't like doubling the maintenance effort and
> forking the code into boost 1.x and 2.x. That, of course, implies that I want
> to support C++03 compilers in my library (which I do, at least for a few years
> from now).
But, I think my point is, with the combination of breaking boost into
sub-modules, and using git, that, in your case, you wouldn't need to
fork your code base. The boost2 release would incorporate your (single)
mainline as a sub-module, as would the the boost1 release.

It's only if you wanted to support both separately that it would double
your maintenance effort, and that's assuming that you were trying to
implement the same functionality in both. And with git's cherry-picking
merges, any common code would be a lot easier to share between branches.
It is more likely a maintainer would draw a line under boost1 (except
bug-fixes), and do all new development on boost2. The testing system
would still test boost1 on appropriate platforms, and would catch any
incompatibilities that might get introduced.
> IMHO, it would be much better to just state clearly the level of compatibility
> for each library in the docs and the library list [1], so that this
> information is immediately apperent to users. Library authors may choose to
> drop support for older compilers as they see fit, in newer Boost release. I
> think, this will make a more natural transition to C++11.
The problem with this approach is that, as an end-user, you might find
that Boost 1.78 supports library X for C++03 (and contains features you
want), but the last version of Boost that supported library Y is 1.61.
Yes, you can roll your own set of modules, but then you are at the risk
of other modules being incompatible between versions.

As I said, it was just a thought,
Phil

-- 
Phil Richards, <news_at_[hidden]>

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