Boost logo

Boost :

Subject: Re: [boost] [modularization] proposal and poll
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2014-05-30 06:03:52


I'll top post my reply as Robert's valuable post didn't make it onto
the list again. Please do read his reply below, it's worth reading as
Robert is one of the lead thinkers on the steering committee about
this.

Robert, I think you are under a misapprehension about what I mean by
"fork". By a fork, I mean forking just a very small part of existing
Boost, namely whatever minimal support is necessary to start from
scratch with a new *empty* set of C++ 14 only Boost libraries.

I don't propose to port *any* of the legacy Boost libraries
whatsoever, they stay where there are. If their maintainers - or a
sponsor - are willing to do:

1. Make their library entirely C++ 11/14 STL based, porting only the
absolute minimum of old Boost.

2. C++ Modules ready i.e. restructured and reorganised to properly
fit C++ Modules.

3. Contribute any general utility code to the core utilities library,
not duplicating any functionality there, and in a form suitable for
entering the C++ 17 STL.

4. Meet the raised unit test and CI soak test and sanitiser/valgrind
requirements.

Then they have a good chance of their library appearing highly ranked
in the list of C++ 14 Boost libraries, where that ranking is
generated by a set of clang AST analysers.

Does this make sense? I am specifically advocating a structural
break, a clean start. I think working on a fresh, empty Boost will
get people to volunteer to give up family time to write Boost code
again. Right now with the present situation there are few incentives
to sacrifice family time. That needs to change for Boost to survive,
else the continuing slow decline will continue.

Niall

On 29 May 2014 at 17:52, Robert Ramey wrote:

>
>
> On Thursday, May 29, 2014 2:17:11 PM UTC-7, Niall Douglas wrote:
> >
> > On 29 May 2014 at 22:22, Julian Gonggrijp wrote:
> >
> > If a fork of Boost becomes necessary later this year,
>
>
> LOL - this is not going to be necessary.
>
>
> > The hard part isn't what to do.
>
>
> LOL - not for you!
>
>
> > The hard part is gaining community
> > buy in when "their" code gets broken by the necessary changes. I have
> > concluded it isn't possible,
>
>
> LOL - you've underestimated the amount of work to convert
> everything to C++11 by a factor of .... 1000 ? Basically it's
> a whole rewrite of 100 modules. And the gain is ....?
>
> hence me proposing a fork where such
> > "radical" changes won't upset anyone.
>
>
> Your free to do this. And you should if you really believe that
> it would benefit anyone or anything.
>
> > I think it may be easier for the steering committee to justify any
> > > decision on this proposal,
>
>
> The steering committee doesn't have anything to decide here. The
> "Proposal" is:
>
> 1. Reduction of dependencies between Boost libraries.
>
> It's not clear what action is being proposed - but I'm pretty sure
> the steering committee won't be doing it.
>
> 2. Simple but effective automation of dependency handling.
>
> I'm pretty sure the steering committee won't be doing this either.
> If anyone believes that they can implement "simple and
> effective" automation of dependency handling - just go ahead
> and do it and let us see it.
>
>
> > Decisive and immediate action on this is vital if Boost is to
> > survive. I vote yes to both, ASAP.
> >
>
> LOL - There is wide agreement that boost has growing pains and
> will have to evolve. But I haven't seen any proposals for
> "Decisive and Immediate" which would do anything but make
> things worse.
>
> And since you've got me started - Here is what boost needs go to the next
> step.
>
> a) Make the review process more effective and efficient - we're taking real
> practical action to address this now. The jury is still out regarding the
> effectiveness of our efforts - but we ARE actually doing something.
>
> b) Recognize that we now have 4 variants of C++ - C++98, C++03, C++11
> and C++14. Our infrastructure doesn't explicitly address this. The
> following
> needs to change
> 1) for each library we need to explicitly state somewhere what
> version(s) of C++ the
> library is meant to support.
> 2) support running of tests and builds for only those platforms.
>
> I've suggested that we enhance B2 to address this. So far
> no one has responded to this suggestion
>
> Note that this would have he effect of encouraging libraries to evolve
> to later versions of C++ with minimal disruption to both library
> authors and users.
>
> c) Decouple Deployment of Boost Libraries from the Certification
> of boost libraries. Beman has noted that what he would like to
> see is something like CYGWIN whereby one specifies what one
> want's and somehow automagically you get that plush what you
> need. I realize that this is more or less what is being suggested here.
> But no one has presented credible proposal for making it it happen.
>
> This would also address the issue of "old" libraries. As they
> fall into disuse are become superseded by newer ones, the can
> still be in boost even though their frequency of deployment drops off.
>
> The above constitutes a real path forward. This is what Boost
> needs for the next 15 years.
>
> Robert Ramey
>

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



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