-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Daniel James Sent: Monday, February 24, 2014 1:10 PM To: boost@lists.boost.org Subject: Re: [boost] Library metadata
On 24 February 2014 12:18, Jason Roehm
wrote: Maybe this is out of scope, but another piece of metadata that could be useful would be some indication of compiler support (or non-support). Since some libraries are known to not work with certain compilers, it would be nice if there was a standard, central place to find that information on a library-by-library basis. I once spent a while trying to find open bugs that would explain why Boost.Coroutine didn't compile on my
system with gcc 4.4.
After a lot of searching, I found that this fact was known and indicated in the regression test configuration (i.e. gcc 4.4 isn't a supported compiler). I was unable to find this stated anywhere in the documentation, though. I think it could be beneficial to users if there was a standard place to find this information quickly.
This data is sort of stored in the explicit failure xml file (in the status directory), although
perhaps not in a
form that easily summarised for users. As an example, the coroutine entry follows. It only gives very specific versions of gcc, rather than stating 'gcc 4.4 and earlier', or whatever is appropriate. This is pretty much baked into the xml schema, which is only designed for testing purposes. There's a vague plan to break up the file and put it in the metadata folders, maybe that could be extended to include some documentation info which we could present to users.
<!-- coroutine --> <library name="coroutine"> <mark-unusable> <toolset name="cray-*"/> <toolset name="darwin-4.4"/> <toolset name="darwin-4.4_0x"/> <toolset name="gcc-4.4.4"/> <toolset name="gcc-4.4.4_0x"/> <toolset name="msvc-8.0"/> <toolset name="pgi-*"/> <toolset name="vacpp-*"/> <toolset name="gcc-mingw-4.4*"/> </mark-unusable> </library>
Will this be at a low enough level to be useful for a rambling library like Boost.Math? When one could look at the http://www.boost.org/development/tests/trunk/developer/math.html results, they showed a lot of yellow, but only for some compilers and platforms for *some tests*. There are: * very few compilers where the advice is "No way :-(" - don't bother. * lots where many uses will work (but not quite all uses, despite heroic efforts to cater for their foibles). * a few up-to-date ones with a "Everything works" advice. If all but the latter are marked as unusable, this will give an unnecessarily pessimistic view on the library. Boost.Multiprecision poses similar problems, and I am sure there are others too. Paul PS I didn't find the regression page immediately using my favourite search engine. I'm not quite sure what it should be called, but regression isn't the first name I would think of? It would be nice if users got to this metadata easily - without searching for 'regression' & 'metadata' ;-)