[predef] RFC: Predefined version numbers library..

Long ago, yes, years ago, I proposed normalizing the variety of ways of defining (in the preprocessor) version numbers and reflecting the predefined version information. As can be seen here <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostConfig>. Time traveling to the present I have finally put the finishing touches on the end result of this concept as a "Predef" library. It's now grown to include detection of more types of predefs, almost complete documentation with a reference generated directly from the source, and some utilities on adding new predefs. I'm still working on cross-platform testing. But I thought now would be a good time to ask for comments and for people to try it out. The lib is in the sandbox at <http://svn.boost.org/svn/boost/sandbox/predef>. And the docs can be rad directly from <http://svn.boost.org/svn/boost/sandbox/predef/libs/predef/doc/html/index.html>. Enjoy. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

Rene Rivera wrote:
Long ago, yes, years ago, I proposed normalizing the variety of ways of defining (in the preprocessor) version numbers and reflecting the predefined version information. As can be seen here <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostConfig>.
Time traveling to the present I have finally put the finishing touches on the end result of this concept as a "Predef" library. It's now grown to include detection of more types of predefs, almost complete documentation with a reference generated directly from the source, and some utilities on adding new predefs.
I'm still working on cross-platform testing. But I thought now would be a good time to ask for comments and for people to try it out.
The lib is in the sandbox at <http://svn.boost.org/svn/boost/sandbox/predef>. And the docs can be rad directly from <http://svn.boost.org/svn/boost/sandbox/predef/libs/predef/doc/html/index.html>.
It's not clear how this conflicts with or complements the current config system. Could you expand upon this please? Also this sort of "enshrines" the concept of a a "Boost Version" which I think is something that should/will eventually be replaced with versions of particular libraries. Robert Ramey
Enjoy.

On 11/30/2011 11:43 PM, Robert Ramey wrote:
Rene Rivera wrote:
Long ago, yes, years ago, I proposed normalizing the variety of ways of defining (in the preprocessor) version numbers and reflecting the predefined version information. As can be seen here <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?BoostConfig>.
Time traveling to the present I have finally put the finishing touches on the end result of this concept as a "Predef" library. It's now grown to include detection of more types of predefs, almost complete documentation with a reference generated directly from the source, and some utilities on adding new predefs.
I'm still working on cross-platform testing. But I thought now would be a good time to ask for comments and for people to try it out.
The lib is in the sandbox at <http://svn.boost.org/svn/boost/sandbox/predef>. And the docs can be rad directly from <http://svn.boost.org/svn/boost/sandbox/predef/libs/predef/doc/html/index.html>.
It's not clear how this conflicts with or complements the current config system. Could you expand upon this please?
It mostly complements Boost Config. And the parts that it conflicts with are actually exceptions in what Boost Config should be doing. This library doesn't define *features*, it defines everything else though. The exceptions being some of the informational macros Boost Config defines. This library would make it easier to write and maintain Boost Config (assuming it was rewritten to use Predef). And of course the same applies to any other library that needs to make platform/compiler choices as opposed to just language feature choices.
Also this sort of "enshrines" the concept of a a "Boost Version" which I think is something that should/will eventually be replaced with versions of particular libraries.
I don't see how you get that it "enshrines" the boost version, as it doesn't define a Boost version at all :-\ In fact it would make it easier for the modular system as then individual libraries could provide a consistent version number macro for others to use. And users would have a single version number format to worry about instead of likely dozens. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail
participants (2)
-
Rene Rivera
-
Robert Ramey