Boost logo

Boost :

Subject: Re: [boost] Library metadata
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2014-02-24 10:14:32

> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Daniel James
> Sent: Monday, February 24, 2014 1:10 PM
> To: boost_at_[hidden]
> Subject: Re: [boost] Library metadata
> On 24 February 2014 12:18, Jason Roehm <jasonr_at_[hidden]> 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
> 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
> 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 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

* 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.


 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' ;-)

Boost list run by bdawes at, gregod at, cpdaniel at, john at