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/