Re: [boost] Thoughts on Boost v2
[Robert's input didn't come through. Replying so it shows up in the thread.] On 05/20/2014 08:47 AM, Robert Ramey wrote:
On Monday, May 19, 2014 6:51:51 PM UTC-7, Michael Caisse wrote:
On 05/19/2014 06:47 PM, David Stone wrote: > As the author of bounded::integer, I do intend to submit my library to > Boost at some point, for whatever that is worth. It's just not in a state > that is ready to submit yet (but soon it will be). I suspect that, as a > C++14 library, it will have an interesting process getting in, but maybe > the next Visual Studio preview will be out by then, which looks like it > might support all the features I need. > >
We welcome C++14 libraries and I see no problem with a submission on that basis alone if it is supported by at least two compilers.
I look forward to your submission David.
There is one issue that should be addressed. The Current test matrix doesn't distinguish between C++ versions. If I make a library which requires C++11 and start testing it, it will fail on all test platforms which don't support C++11. This creates pressure to support earlier versions of C++ when we don't there to be. Currently there is no way to tag a library "test for version >= C++11 only". We need to tweak the test setup only run tests configurations which match the C++ version supported by the library.
Note that this currently cannot be done with the current test markup for a few reasons: a) it's extremely tedious b) now some compilers have switches like -std=c++11 or such so the markup can't be kept in sync with the actual version being tested.
Things that are necessary are:
a) Each library needs to be marked/tagged as to what it's minimum version is. b) Each toolset needs to communicate what version of C++ it corresponds to c) Only compatible toolsets are actually tested.
This would show all green results for libraries for which a minimal version is required - unlike that which happens now. It would also skip useless testing for unsupported configurations thereby saving time.
It would also resolve the whole question of Boost version v2. Each library can support the version of C++ without conflict. Older, core components like Config would support everything while newer more specific libraries like spirit3 would only support C++14/17 etc..
On 21 May 2014 at 9:44, Michael Caisse wrote:
It would also resolve the whole question of Boost version v2. Each library can support the version of C++ without conflict. Older, core components like Config would support everything while newer more specific libraries like spirit3 would only support C++14/17 etc..
To close off this thread as it looks to be done for now ... I wish to state for the record that I think this sort of monolithic ifdef approach a wasted opportunity. I think we need a Python 3.x over Python 2.x approach, there is a ton more useful refactoring which can be done with a clean break. I also think that motivating people to work for free on refactoring a monolithic whole rather than small clearly defined bits of refactor of only the parts of Boost useful to C++ 11 is going to be extremely difficult. And we'll leave it at that. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/
participants (2)
-
Michael Caisse
-
Niall Douglas