Niall Douglas wrote:
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.
To be honest I think Robert is right that forking is not necessary, even if it is a small subset of all libraries, and in particular I'm a bit sceptical that starting from scratch in any way would be a good idea. Evolutionary changes, of the type that I propose and of the type that Robert proposes, seem much more productive to me.
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.
While such changes might have value, they take much more work in a much more intrusive way than the more evolutionary type of proposal. I think Robert would be right to expect that few library maintainers will be willing to participate in such work.
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.
I don't think Boost is dying. I think with time, the changes you propose will happen anyway (except for the fork), one library at a time.
Niall
On 29 May 2014 at 17:52, Robert Ramey wrote:
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.
For clarity, I was not proposing that the steering committee would do the work. Rather, I was proposing that the steering committee would endorse the work (i.e., make it an official plan) so that dependency reduction will be considered a joint goal of all library maintainers as well as anyone willing to do pull requests. Stephen Kelly would take an advisory role in this project, which includes doing suggestions for changes.
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.
I have said I'm willing to do this. I'm not doing it *yet* simply because (1) I don't currently have the time (but I do want to create time for it) and (2) I believe it will be more worthwhile if most libraries do not depend on half of Boost.
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.
Please explain to me and the rest of the list how what I proposed would 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
I have been on a Boost hiatus between December and May, so that may explain why I missed your suggestion. I highly approve of it. By the way, since you are keen to take into account the "who": did your suggestion address who should execute the idea?
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.
Maybe I can convince you if I implement the scripts that I have in mind.
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