Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75548 - in sandbox/predef: . boost boost/predef boost/predef/architecture boost/predef/compiler boost/predef/detail boost/predef/language boost/predef/library boost/predef/library/c boost/predef/library/std boost/predef/os libs/predef/doc libs/predef/test
From: grafikrobot_at_[hidden]
Date: 2011-11-18 22:46:50


Author: grafik
Date: 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
New Revision: 75548
URL: http://svn.boost.org/trac/boost/changeset/75548

Log:
Major cleanup and update, although still in progress. Now contains tests for all predefs and utility macros. And added language predefs.
Added:
   sandbox/predef/boost/predef/architecture/convex.h (contents, props changed)
   sandbox/predef/boost/predef/architecture/pyramid.h (contents, props changed)
   sandbox/predef/boost/predef/detail/_cassert.h (contents, props changed)
   sandbox/predef/boost/predef/detail/_exception.h (contents, props changed)
   sandbox/predef/boost/predef/detail/test.h (contents, props changed)
   sandbox/predef/boost/predef/language/
   sandbox/predef/boost/predef/language.h (contents, props changed)
   sandbox/predef/boost/predef/language/objc.h (contents, props changed)
   sandbox/predef/boost/predef/language/stdc.h (contents, props changed)
   sandbox/predef/boost/predef/language/stdcpp.h (contents, props changed)
   sandbox/predef/boost/predef/make.h
      - copied, changed from r74943, /sandbox/predef/boost/predef/detail/vrp.h
   sandbox/predef/jamroot.jam (contents, props changed)
   sandbox/predef/libs/predef/doc/build.jam (contents, props changed)
   sandbox/predef/libs/predef/doc/predef.qbk (contents, props changed)
   sandbox/predef/libs/predef/test/build.jam (contents, props changed)
   sandbox/predef/libs/predef/test/info_as_c.c (contents, props changed)
   sandbox/predef/libs/predef/test/info_as_cpp.cpp (contents, props changed)
   sandbox/predef/libs/predef/test/info_as_objc.m (contents, props changed)
   sandbox/predef/libs/predef/test/info_as_objcpp.mm (contents, props changed)
   sandbox/predef/libs/predef/test/make.cpp (contents, props changed)
   sandbox/predef/libs/predef/test/version.cpp (contents, props changed)
Removed:
   sandbox/predef/boost/predef/detail/vrp.h
Text files modified:
   sandbox/predef/boost/predef.h | 6 +
   sandbox/predef/boost/predef/architecture.h | 19 ++++++++
   sandbox/predef/boost/predef/architecture/alpha.h | 14 +++++
   sandbox/predef/boost/predef/architecture/amd64.h | 13 +++++
   sandbox/predef/boost/predef/architecture/arm.h | 13 +++++
   sandbox/predef/boost/predef/architecture/ia64.h | 16 ++++++-
   sandbox/predef/boost/predef/architecture/m68k.h | 35 ++++++++++------
   sandbox/predef/boost/predef/architecture/mips.h | 13 +++++
   sandbox/predef/boost/predef/architecture/parisc.h | 19 ++++++--
   sandbox/predef/boost/predef/architecture/ppc.h | 17 ++++++-
   sandbox/predef/boost/predef/architecture/rs6k.h | 13 +++++
   sandbox/predef/boost/predef/architecture/sparc.h | 19 ++++++--
   sandbox/predef/boost/predef/architecture/superh.h | 30 +++++++++----
   sandbox/predef/boost/predef/architecture/sys370.h | 13 +++++
   sandbox/predef/boost/predef/architecture/sys390.h | 13 +++++
   sandbox/predef/boost/predef/architecture/x86.h | 34 ++++++++++++---
   sandbox/predef/boost/predef/architecture/z.h | 12 ++++
   sandbox/predef/boost/predef/compiler.h | 2
   sandbox/predef/boost/predef/compiler/borland.h | 7 ++
   sandbox/predef/boost/predef/compiler/comeau.h | 7 ++
   sandbox/predef/boost/predef/compiler/compaq.h | 5 +
   sandbox/predef/boost/predef/compiler/cygwin.h | 5 +
   sandbox/predef/boost/predef/compiler/diab.h | 9 ++-
   sandbox/predef/boost/predef/compiler/digitalmars.h | 7 ++
   sandbox/predef/boost/predef/compiler/dignus.h | 7 ++
   sandbox/predef/boost/predef/compiler/edg.h | 7 ++
   sandbox/predef/boost/predef/compiler/ekopath.h | 5 +
   sandbox/predef/boost/predef/compiler/gcc.h | 5 +
   sandbox/predef/boost/predef/compiler/gcc_xml.h | 5 +
   sandbox/predef/boost/predef/compiler/greenhills.h | 7 ++
   sandbox/predef/boost/predef/compiler/hp_acc.h | 7 ++
   sandbox/predef/boost/predef/compiler/iar.h | 7 ++
   sandbox/predef/boost/predef/compiler/ibm.h | 11 +++-
   sandbox/predef/boost/predef/compiler/intel.h | 7 ++
   sandbox/predef/boost/predef/compiler/kai.h | 7 ++
   sandbox/predef/boost/predef/compiler/llvm.h | 5 +
   sandbox/predef/boost/predef/compiler/metaware.h | 5 +
   sandbox/predef/boost/predef/compiler/metrowerks.h | 7 ++
   sandbox/predef/boost/predef/compiler/microtec.h | 5 +
   sandbox/predef/boost/predef/compiler/mingw.h | 5 +
   sandbox/predef/boost/predef/compiler/mpw.h | 7 ++
   sandbox/predef/boost/predef/compiler/palm.h | 7 ++
   sandbox/predef/boost/predef/compiler/pgi.h | 5 +
   sandbox/predef/boost/predef/compiler/sgi_mipspro.h | 9 ++-
   sandbox/predef/boost/predef/compiler/sunpro.h | 7 ++
   sandbox/predef/boost/predef/compiler/tendra.h | 5 +
   sandbox/predef/boost/predef/compiler/visualc.h | 5 +
   sandbox/predef/boost/predef/compiler/watcom.h | 7 ++
   sandbox/predef/boost/predef/library/c.h | 2
   sandbox/predef/boost/predef/library/c/gnu.h | 12 +++++
   sandbox/predef/boost/predef/library/c/uc.h | 5 +
   sandbox/predef/boost/predef/library/c/vms.h | 5 +
   sandbox/predef/boost/predef/library/c/zos.h | 7 ++
   sandbox/predef/boost/predef/library/std.h | 6 +-
   sandbox/predef/boost/predef/library/std/dinkumware.h | 7 ++
   sandbox/predef/boost/predef/library/std/libcomo.h | 5 +
   sandbox/predef/boost/predef/library/std/modena.h | 5 +
   sandbox/predef/boost/predef/library/std/msl.h | 9 ++-
   sandbox/predef/boost/predef/library/std/roguewave.h | 9 ++-
   sandbox/predef/boost/predef/library/std/sgi.h | 7 ++
   sandbox/predef/boost/predef/library/std/stdcpp3.h | 11 +++-
   sandbox/predef/boost/predef/library/std/stlport.h | 9 ++-
   sandbox/predef/boost/predef/library/std/vacpp.h | 5 +
   sandbox/predef/boost/predef/make.h | 82 +++++++++++++++++++++++++++++----------
   sandbox/predef/boost/predef/os/aix.h | 9 ++-
   sandbox/predef/boost/predef/os/amigaos.h | 9 ++-
   sandbox/predef/boost/predef/os/beos.h | 9 ++-
   sandbox/predef/boost/predef/os/bsd.h | 19 +++++++-
   sandbox/predef/boost/predef/os/cygwin.h | 9 ++-
   sandbox/predef/boost/predef/os/hpux.h | 9 ++-
   sandbox/predef/boost/predef/os/irix.h | 9 ++-
   sandbox/predef/boost/predef/os/linux.h | 9 ++-
   sandbox/predef/boost/predef/os/macos.h | 9 ++-
   sandbox/predef/boost/predef/os/qnxnto.h | 11 +++-
   sandbox/predef/boost/predef/os/solaris.h | 9 ++-
   sandbox/predef/boost/predef/os/unix.h | 9 ++-
   sandbox/predef/boost/predef/os/windows.h | 9 ++-
   sandbox/predef/boost/predef/version_number.h | 33 ++++++++++++---
   78 files changed, 626 insertions(+), 217 deletions(-)

Modified: sandbox/predef/boost/predef.h
==============================================================================
--- sandbox/predef/boost/predef.h (original)
+++ sandbox/predef/boost/predef.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -8,8 +8,10 @@
 #ifndef BOOST_PREDEF_H
 #define BOOST_PREDEF_H
 
+#include <boost/predef/language.h>
+#include <boost/predef/architecture.h>
 #include <boost/predef/compiler.h>
 #include <boost/predef/library.h>
-#include <boost/predef/platform.h>
+#include <boost/predef/os.h>
 
 #endif

Modified: sandbox/predef/boost/predef/architecture.h
==============================================================================
--- sandbox/predef/boost/predef/architecture.h (original)
+++ sandbox/predef/boost/predef/architecture.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -8,6 +8,23 @@
 #ifndef BOOST_PREDEF_ARCHITECTURE_H
 #define BOOST_PREDEF_ARCHITECTURE_H
 
-#include <boost/predef/architecture/.h>
+#include <boost/predef/architecture/alpha.h>
+#include <boost/predef/architecture/amd64.h>
+#include <boost/predef/architecture/arm.h>
+#include <boost/predef/architecture/convex.h>
+#include <boost/predef/architecture/ia64.h>
+#include <boost/predef/architecture/m68k.h>
+#include <boost/predef/architecture/mips.h>
+#include <boost/predef/architecture/parisc.h>
+#include <boost/predef/architecture/ppc.h>
+#include <boost/predef/architecture/pyramid.h>
+#include <boost/predef/architecture/rs6k.h>
+#include <boost/predef/architecture/sparc.h>
+#include <boost/predef/architecture/superh.h>
+#include <boost/predef/architecture/sys370.h>
+#include <boost/predef/architecture/sys390.h>
+#include <boost/predef/architecture/x86.h>
+#include <boost/predef/architecture/z.h>
+//#include <boost/predef/architecture/.h>
 
 #endif

Modified: sandbox/predef/boost/predef/architecture/alpha.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/alpha.h (original)
+++ sandbox/predef/boost/predef/architecture/alpha.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,14 @@
 #define BOOST_PREDEF_ARCHITECTURE_ALPHA_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_ALPHA`]
+
+[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture:
+If available versions [4-6] are specifically detected.
+ */
 
 #define BOOST_ARCHITECTURE_ALPHA BOOST_VERSION_NUMBER(0,0,0)
 
@@ -27,4 +34,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_ALPHA,"DEC Alpha")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/amd64.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/amd64.h (original)
+++ sandbox/predef/boost/predef/architecture/amd64.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_AMD64_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_AMD64`]
+
+[@http://en.wikipedia.org/wiki/Amd64 American Micro Devices AMD 64] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_AMD64 BOOST_VERSION_NUMBER(0,0,0)
 
@@ -20,4 +26,7 @@
     #define BOOST_ARCHITECTURE_AMD64 BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_AMD64,"American Micro Devices AMD 64")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/arm.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/arm.h (original)
+++ sandbox/predef/boost/predef/architecture/arm.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_ARM_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_ARM`]
+
+[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_ARM BOOST_VERSION_NUMBER(0,0,0)
 
@@ -25,4 +31,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_ARM,"ARM")
+
 #endif

Added: sandbox/predef/boost/predef/architecture/convex.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/architecture/convex.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,43 @@
+/*
+Copyright Redshift Software Inc 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_ARCHITECTURE_CONVEX_H
+#define BOOST_PREDEF_ARCHITECTURE_CONVEX_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_CONVEX`]
+
+[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture.
+ */
+
+#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__convex__)
+ #undef BOOST_ARCHITECTURE_CONVEX
+ #if defined(__convex_c1__)
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(1,0,0)
+ #elif defined(__convex_c2__)
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(2,0,0)
+ #elif defined(__convex_c32__)
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,2,0)
+ #elif defined(__convex_c34__)
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,4,0)
+ #elif defined(__convex_c38__)
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,8,0)
+ #else
+ #define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_CONVEX,"Convex Computer")
+
+
+#endif

Modified: sandbox/predef/boost/predef/architecture/ia64.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/ia64.h (original)
+++ sandbox/predef/boost/predef/architecture/ia64.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,15 +9,25 @@
 #define BOOST_PREDEF_ARCHITECTURE_IA64_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_IA64`]
+
+[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_IA64 BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__ia64__) || defined(_IA64) || \
     defined(__IA64__) || defined(__ia64) || \
- defined(_M_IA64)
+ defined(_M_IA64) || defined(__itanium__) || \
+ defined(__x86_64) || defined(__x86_64__)
     #undef BOOST_ARCHITECTURE_IA64
     #define BOOST_ARCHITECTURE_IA64 BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_IA64,"Intel IA-64")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/m68k.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/m68k.h (original)
+++ sandbox/predef/boost/predef/architecture/m68k.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,27 +9,36 @@
 #define BOOST_PREDEF_ARCHITECTURE_M68K_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_M68K`]
+
+[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__m68k__) || defined(M68000)
     #undef BOOST_ARCHITECTURE_M68K
- #if defined(__mc68000__)
- #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
- #elif defined(__mc68010__)
- #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(1,0,0)
- #elif defined(__mc68020__)
- #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(2,0,0)
- #elif defined(__mc68030__)
- #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(3,0,0)
- #elif defined(__mc68040__)
- #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(4,0,0)
- #elif defined(__mc68060__)
+ #if defined(__mc68060__) || defined(mc68060) || defined(__mc68060)
         #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(6,0,0)
+ #elif defined(__mc68040__) || defined(mc68040) || defined(__mc68040)
+ #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(4,0,0)
+ #elif defined(__mc68030__) || defined(mc68030) || defined(__mc68030)
+ #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(3,0,0)
+ #elif defined(__mc68020__) || defined(mc68020) || defined(__mc68020)
+ #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(2,0,0)
+ #elif defined(__mc68010__) || defined(mc68010) || defined(__mc68010)
+ #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(1,0,0)
+ #elif defined(__mc68000__) || defined(mc68000) || defined(__mc68000)
+ #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
     #else
         #define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_M68K,"Motorola 68k")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/mips.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/mips.h (original)
+++ sandbox/predef/boost/predef/architecture/mips.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_MIPS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_MIPS`]
+
+[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_MIPS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -31,4 +37,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_MIPS,"MIPS")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/parisc.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/parisc.h (original)
+++ sandbox/predef/boost/predef/architecture/parisc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,21 +9,30 @@
 #define BOOST_PREDEF_ARCHITECTURE_PARISC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_PARISK`]
+
+[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(0,0,0)
 
-#if defined(__hppa__) || defined(__hppa)
+#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__)
     #undef BOOST_ARCHITECTURE_PARISC
     #if defined(_PA_RISC1_0)
         #define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(1,0,0)
- #elif defined(_PA_RISC1_1)
+ #elif defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)
         #define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(1,1,0)
- #elif defined(_PA_RISC2_0)
+ #elif defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)
         #define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(2,0,0)
     #else
         #define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PARISC,"HP/PA RISC")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/ppc.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/ppc.h (original)
+++ sandbox/predef/boost/predef/architecture/ppc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,13 +9,21 @@
 #define BOOST_PREDEF_ARCHITECTURE_PPC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_PPC`]
+
+[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_PPC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__powerpc) || defined(__powerpc__) || \
     defined(__POWERPC__) || defined(__ppc__) || \
- defined(_M_PPC) || defined(_ARCH_PPC)
+ defined(_M_PPC) || defined(_ARCH_PPC) || \
+ defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
+ defined(_XENON)
     #undef BOOST_ARCHITECTURE_PPC
     #if defined(__ppc601__) || defined(_ARCH_601)
         #define BOOST_ARCHITECTURE_PPC BOOST_VERSION_NUMBER(6,1,0)
@@ -28,4 +36,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PPC,"PowerPC")
+
 #endif

Added: sandbox/predef/boost/predef/architecture/pyramid.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/architecture/pyramid.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,30 @@
+/*
+Copyright Redshift Software Inc 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_ARCHITECTURE_PYRAMID_H
+#define BOOST_PREDEF_ARCHITECTURE_PYRAMID_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_PYRAMID`]
+
+Pyramid 9810 architecture.
+ */
+
+#define BOOST_ARCHITECTURE_PYRAMID BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(pyr)
+ #undef BOOST_ARCHITECTURE_PYRAMID
+ #define BOOST_ARCHITECTURE_PYRAMID BOOST_VERSION_NUMBER(0,0,1)
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PYRAMID,"Pyramid 9810")
+
+#endif

Modified: sandbox/predef/boost/predef/architecture/rs6k.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/rs6k.h (original)
+++ sandbox/predef/boost/predef/architecture/rs6k.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_RS6K_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_RS6000`]
+
+[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_RS6000 BOOST_VERSION_NUMBER(0,0,0)
 
@@ -22,4 +28,7 @@
 
 #define BOOST_ARCHITECTURE_PWR BOOST_ARCHITECTURE_RS6000
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_RS6000,"RS/6000")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/sparc.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/sparc.h (original)
+++ sandbox/predef/boost/predef/architecture/sparc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,19 +9,28 @@
 #define BOOST_PREDEF_ARCHITECTURE_SPARC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_SPARC`]
+
+[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__sparc__) || defined(__sparc)
     #undef BOOST_ARCHITECTURE_SPARC
- #if defined(__sparcv8)
- #define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(8,0,0)
- #elif defined(__sparcv9)
+ #if defined(__sparcv9)
         #define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(9,0,0)
+ #elif defined(__sparcv8)
+ #define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(8,0,0)
     #else
         #define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SPARC,"SPARC")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/superh.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/superh.h (original)
+++ sandbox/predef/boost/predef/architecture/superh.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,25 +9,35 @@
 #define BOOST_PREDEF_ARCHITECTURE_SUPERH_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_SH`]
+
+[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture:
+If available versions [1-5] are specifically detected.
+ */
 
 #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__sh__)
     #undef BOOST_ARCHITECTURE_SH
- #if defined(__sh1__)
- #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(1,0,0)
- #elif defined(__sh2__)
- #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(2,0,0)
- #elif defined(__sh3__) || defined(__SH3__)
- #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(3,0,0)
+ #if defined(__SH5__)
+ #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(5,0,0)
     #elif defined(__SH4__)
         #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(4,0,0)
- #elif defined(__SH5__)
- #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(5,0,0)
+ #elif defined(__sh3__) || defined(__SH3__)
+ #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(3,0,0)
+ #elif defined(__sh2__)
+ #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(2,0,0)
+ #elif defined(__sh1__)
+ #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(1,0,0)
     #else
         #define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SH,"SuperH")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/sys370.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/sys370.h (original)
+++ sandbox/predef/boost/predef/architecture/sys370.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_SYS370_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_SYS370`]
+
+[@http://en.wikipedia.org/wiki/System/370 System/370] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_SYS370 BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +24,7 @@
     #define BOOST_ARCHITECTURE_SYS370 BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SYS370,"System/370")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/sys390.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/sys390.h (original)
+++ sandbox/predef/boost/predef/architecture/sys390.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_ARCHITECTURE_SYS390_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_SYS390`]
+
+[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
+ */
 
 #define BOOST_ARCHITECTURE_SYS390 BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +24,7 @@
     #define BOOST_ARCHITECTURE_SYS390 BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SYS390,"System/390")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/x86.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/x86.h (original)
+++ sandbox/predef/boost/predef/architecture/x86.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,24 +9,42 @@
 #define BOOST_PREDEF_ARCHITECTURE_X86_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(0,0,0)
 
+/*`
+[heading `BOOST_ARCHITECTURE_X86`]
+
+[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
+If available versions [3-6] are specifically detected.
+ */
+
 #if defined(i386) || defined(__i386__) || \
- defeind(__i486__) || defined(__i586__) || \
- defeind(__i686__) || defined(__i386) || \
- defeind(_M_IX86) || defined(_X86_) || \
- defeind(__THW_INTEL__) || defined(__I86__) || \
- defeind(__INTEL__)
+ defined(__i486__) || defined(__i586__) || \
+ defined(__i686__) || defined(__i386) || \
+ defined(_M_IX86) || defined(_X86_) || \
+ defined(__THW_INTEL__) || defined(__I86__) || \
+ defined(__INTEL__)
     #undef BOOST_ARCHITECTURE_X86
     #if defined(__I86__)
         #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(__I86__,0,0)
     #elif defined(_M_IX86)
- #define BOOST_ARCHITECTURE_X86 BOOST_PREDEF_VRP_N_N_N(_M_IX86)
+ #define BOOST_ARCHITECTURE_X86 BOOST_PREDEF_MAKE_NN_00(_M_IX86)
+ #elif defined(__i686__)
+ #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(6,0,0)
+ #elif defined(__i586__)
+ #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(5,0,0)
+ #elif defined(__i486__)
+ #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(4,0,0)
+ #elif defined(__i386__)
+ #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(3,0,0)
     #else
         #define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_X86,"Intel x86")
+
 #endif

Modified: sandbox/predef/boost/predef/architecture/z.h
==============================================================================
--- sandbox/predef/boost/predef/architecture/z.h (original)
+++ sandbox/predef/boost/predef/architecture/z.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,5 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,12 @@
 #define BOOST_PREDEF_ARCHITECTURE_Z_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_ARCHITECTURE_Z`]
+
+[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. */
 
 #define BOOST_ARCHITECTURE_Z BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +23,7 @@
     #define BOOST_ARCHITECTURE_Z BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_Z,"z/Architecture")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler.h
==============================================================================
--- sandbox/predef/boost/predef/compiler.h (original)
+++ sandbox/predef/boost/predef/compiler.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -17,8 +17,8 @@
 #include <boost/predef/compiler/dignus.h>
 #include <boost/predef/compiler/edg.h>
 #include <boost/predef/compiler/ekopath.h>
-#include <boost/predef/compiler/gcc.h>
 #include <boost/predef/compiler/gcc_xml.h>
+#include <boost/predef/compiler/gcc.h>
 #include <boost/predef/compiler/greenhills.h>
 #include <boost/predef/compiler/hp_acc.h>
 #include <boost/predef/compiler/iar.h>

Modified: sandbox/predef/boost/predef/compiler/borland.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/borland.h (original)
+++ sandbox/predef/boost/predef/compiler/borland.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_BORLAND_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_BORLAND BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__BORLANDC__)
     #undef BOOST_CXX_BORLAND
- #define BOOST_CXX_BORLAND BOOST_PREDEF_VRP_FF_F_F(__BORLANDC__)
+ #define BOOST_CXX_BORLAND BOOST_PREDEF_MAKE_FF_F_F(__BORLANDC__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_BORLAND,"Borland")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/comeau.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/comeau.h (original)
+++ sandbox/predef/boost/predef/compiler/comeau.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_COMEAU_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_COMO BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__COMO__)
     #undef BOOST_CXX_COMO
- #define BOOST_CXX_COMO BOOST_PREDEF_VRP_F_F_FF(__COMO_VERSION__)
+ #define BOOST_CXX_COMO BOOST_PREDEF_MAKE_F_F_FF(__COMO_VERSION__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_COMO,"Comeau")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/compaq.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/compaq.h (original)
+++ sandbox/predef/boost/predef/compiler/compaq.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_COMPAQ_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_DEC BOOST_VERSION_NUMBER(0,0,0)
 
@@ -21,4 +21,7 @@
         (__DECC_VER%10000))
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DEC,"Compaq")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/cygwin.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/cygwin.h (original)
+++ sandbox/predef/boost/predef/compiler/cygwin.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_CYGWIN_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_CYGWIN BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_CYGWIN BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_CYGWIN,"Cygwin")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/diab.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/diab.h (original)
+++ sandbox/predef/boost/predef/compiler/diab.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -6,16 +6,19 @@
 */
 
 #ifndef BOOST_PREDEF_COMPILER_DIAB_H
-#define BOOST_PREDEF_COMPILER_BORLAND_H
+#define BOOST_PREDEF_COMPILER_DIAB_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_DIAB BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__DCC__)
     #undef BOOST_CXX_DIAB
- #define BOOST_CXX_DIAB BOOST_PREDEF_VRP_N_N_NN(__VERSION_NUMBER__)
+ #define BOOST_CXX_DIAB BOOST_PREDEF_MAKE_N_N_NN(__VERSION_NUMBER__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DIAB,"Diab")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/digitalmars.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/digitalmars.h (original)
+++ sandbox/predef/boost/predef/compiler/digitalmars.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_DIGITALMARS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_DMC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__DMC__)
     #undef BOOST_CXX_DMC
- #define BOOST_CXX_DMC BOOST_PREDEF_VRP_F_F_F(__DMC__)
+ #define BOOST_CXX_DMC BOOST_PREDEF_MAKE_F_F_F(__DMC__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DMC,"Digital Mars")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/dignus.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/dignus.h (original)
+++ sandbox/predef/boost/predef/compiler/dignus.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_DIGNUS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_SYSC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__SYSC__)
     #undef BOOST_CXX_SYSC
- #define BOOST_CXX_SYSC BOOST_PREDEF_VRP_N_NN_NN(__SYSC_VER__)
+ #define BOOST_CXX_SYSC BOOST_PREDEF_MAKE_N_NN_NN(__SYSC_VER__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SYSC,"SysC")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/edg.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/edg.h (original)
+++ sandbox/predef/boost/predef/compiler/edg.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_EDG_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_EDG BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__EDG__)
     #undef BOOST_CXX_EDG
- #define BOOST_CXX_EDG BOOST_PREDEF_VRP_N_N_N(__EDG_VERSION__)
+ #define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_EDG,"EDG")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/ekopath.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/ekopath.h (original)
+++ sandbox/predef/boost/predef/compiler/ekopath.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_EKOPATH_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_PATH BOOST_VERSION_NUMBER(0,0,0)
 
@@ -19,4 +19,7 @@
         BOOST_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PATH,"Ekopath")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/gcc.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/gcc.h (original)
+++ sandbox/predef/boost/predef/compiler/gcc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_GCC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_GNUC BOOST_VERSION_NUMBER(0,0,0)
 
@@ -24,4 +24,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"GNUC")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/gcc_xml.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/gcc_xml.h (original)
+++ sandbox/predef/boost/predef/compiler/gcc_xml.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_GCC_XML_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_GCCXML BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_GCCXML BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GCCXML,"GCC XML")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/greenhills.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/greenhills.h (original)
+++ sandbox/predef/boost/predef/compiler/greenhills.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_GREENHILLS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_GHS BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__ghs)
     #undef BOOST_CXX_GHS
- #define BOOST_CXX_GHS BOOST_PREDEF_VRP_N_N_N(__ghs)
+ #define BOOST_CXX_GHS BOOST_PREDEF_MAKE_N_N_N(__ghs)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GHS,"Green Hills")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/hp_acc.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/hp_acc.h (original)
+++ sandbox/predef/boost/predef/compiler/hp_acc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_HP_ACC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_HPACC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__HP_aCC)
     #undef BOOST_CXX_HPACC
- #define BOOST_CXX_HPACC BOOST_PREDEF_VRP_NN_NN_NN(__HP_aCC)
+ #define BOOST_CXX_HPACC BOOST_PREDEF_MAKE_NN_NN_NN(__HP_aCC)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HPACC,"HP ACC")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/iar.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/iar.h (original)
+++ sandbox/predef/boost/predef/compiler/iar.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_IAR_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_IAR BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__IAR_SYSTEMS_ICC__)
     #undef BOOST_CXX_IAR
- #define BOOST_CXX_IAR BOOST_PREDEF_VRP_NN_NN(__VER__)
+ #define BOOST_CXX_IAR BOOST_PREDEF_MAKE_NN_NN(__VER__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IAR,"IAR")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/ibm.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/ibm.h (original)
+++ sandbox/predef/boost/predef/compiler/ibm.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,19 +9,22 @@
 #define BOOST_PREDEF_COMPILER_IBM_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_IBM BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__IBMCPP__) || defined(__xlC__)
     #undef BOOST_CXX_IBM
     #if defined(__COMPILER_VER__)
- #define BOOST_CXX_IBM BOOST_PREDEF_VRP_F_FF_FFFF(__COMPILER_VER__)
+ #define BOOST_CXX_IBM BOOST_PREDEF_MAKE_F_FF_FFFF(__COMPILER_VER__)
     #elif defined(__xlC__)
- #define BOOST_CXX_IBM BOOST_PREDEF_VRP_FF_FF(__xlC__)
+ #define BOOST_CXX_IBM BOOST_PREDEF_MAKE_FF_FF(__xlC__)
     #else
- #define BOOST_CXX_IBM BOOST_PREDEF_VRP_N_N_N(__IBMCPP__)
+ #define BOOST_CXX_IBM BOOST_PREDEF_MAKE_N_N_N(__IBMCPP__)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IBM,"IBM")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/intel.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/intel.h (original)
+++ sandbox/predef/boost/predef/compiler/intel.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,14 +9,17 @@
 #define BOOST_PREDEF_COMPILER_INTEL_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_INTEL BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
     defined(__ECC)
     #undef BOOST_CXX_INTEL
- #define BOOST_CXX_INTEL BOOST_PREDEF_VRP_N_N_N(__INTEL_COMPILER)
+ #define BOOST_CXX_INTEL BOOST_PREDEF_MAKE_N_N_N(__INTEL_COMPILER)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_INTEL,"Intel")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/kai.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/kai.h (original)
+++ sandbox/predef/boost/predef/compiler/kai.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_KAI_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_KCC BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__KCC)
     #undef BOOST_CXX_KCC
- #define BOOST_CXX_KCC BOOST_PREDEF_VRP_F_F_FF(__KCC_VERSION)
+ #define BOOST_CXX_KCC BOOST_PREDEF_MAKE_F_F_FF(__KCC_VERSION)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_KCC,"Kai")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/llvm.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/llvm.h (original)
+++ sandbox/predef/boost/predef/compiler/llvm.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_LLVM_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_LLVM,"LLVM")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/metaware.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/metaware.h (original)
+++ sandbox/predef/boost/predef/compiler/metaware.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_METAWARE_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_HIGHC BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_HIGHC BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HIGHC,"Metaware HighC")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/metrowerks.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/metrowerks.h (original)
+++ sandbox/predef/boost/predef/compiler/metrowerks.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_METROWERKS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -36,8 +36,11 @@
     #elif __MWERKS__ == 0x3206
         #define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,5,0)
     #else
- #define BOOST_CXX_MWERKS BOOST_PREDEF_VRP_F_F_FF(__MWERKS__)
+ #define BOOST_CXX_MWERKS BOOST_PREDEF_MAKE_F_F_FF(__MWERKS__)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MWERKS,"Metrowerks")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/microtec.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/microtec.h (original)
+++ sandbox/predef/boost/predef/compiler/microtec.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_MICROTEC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_MRI BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_MRI BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MRI,"Microtec")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/mingw.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/mingw.h (original)
+++ sandbox/predef/boost/predef/compiler/mingw.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_MINGW_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_MINGW BOOST_VERSION_NUMBER(0,0,0)
 
@@ -20,4 +20,7 @@
         BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MINGW,"MinGW")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/mpw.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/mpw.h (original)
+++ sandbox/predef/boost/predef/compiler/mpw.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_MPW_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_MPW BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__MRC__)
     #undef BOOST_CXX_MPW
- #define BOOST_CXX_MPW BOOST_PREDEF_VRP_FF_FF(__MRC__)
+ #define BOOST_CXX_MPW BOOST_PREDEF_MAKE_FF_FF(__MRC__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MPW,"MPW")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/palm.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/palm.h (original)
+++ sandbox/predef/boost/predef/compiler/palm.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_PALM_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_PALM BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(_PACC_VER)
     #undef BOOST_CXX_PALM
- #define BOOST_CXX_PALM BOOST_PREDEF_VRP_F_FF_FF_000(_PACC_VER)
+ #define BOOST_CXX_PALM BOOST_PREDEF_MAKE_F_FF_FF_000(_PACC_VER)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PALM,"Palm")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/pgi.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/pgi.h (original)
+++ sandbox/predef/boost/predef/compiler/pgi.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_PGI_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PGI,"PGI")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/sgi_mipspro.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/sgi_mipspro.h (original)
+++ sandbox/predef/boost/predef/compiler/sgi_mipspro.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,17 +9,20 @@
 #define BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_SGI BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__sgi)
     #undef BOOST_CXX_SGI
     #if defined(_SGI_COMPILER_VERSION)
- #define BOOST_CXX_SGI BOOST_PREDEF_VRP_N_N_N(_SGI_COMPILER_VERSION)
+ #define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_SGI_COMPILER_VERSION)
     #else
- #define BOOST_CXX_SGI BOOST_PREDEF_VRP_N_N_N(_COMPILER_VERSION)
+ #define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_COMPILER_VERSION)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SGI,"SGI Mips-pro")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/sunpro.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/sunpro.h (original)
+++ sandbox/predef/boost/predef/compiler/sunpro.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_SUNPRO_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_SUNPRO BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__SUNPRO_CC)
     #undef BOOST_CXX_SUNPRO
- #define BOOST_CXX_SUNPRO BOOST_PREDEF_VRP_F_F_F(__SUNPRO_CC)
+ #define BOOST_CXX_SUNPRO BOOST_PREDEF_MAKE_F_F_F(__SUNPRO_CC)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SUNPRO,"Sun Pro")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/tendra.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/tendra.h (original)
+++ sandbox/predef/boost/predef/compiler/tendra.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_TENDRA_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_TENDRA BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_CXX_TENDRA BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_TENDRA,"Tendra")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/visualc.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/visualc.h (original)
+++ sandbox/predef/boost/predef/compiler/visualc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_COMPILER_VISUALC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_MSVC BOOST_VERSION_NUMBER(0,0,0)
 
@@ -35,4 +35,7 @@
         BOOST_CXX_MSVC_BUILD)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MSVC,"Microsoft Visual C/C++")
+
 #endif

Modified: sandbox/predef/boost/predef/compiler/watcom.h
==============================================================================
--- sandbox/predef/boost/predef/compiler/watcom.h (original)
+++ sandbox/predef/boost/predef/compiler/watcom.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_COMPILER_WATCOM_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_CXX_WATCOM BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__WATCOMC__)
     #undef BOOST_CXX_WATCOM
- #define BOOST_CXX_WATCOM BOOST_PREDEF_VRP_NN_NN(__WATCOMC__)
+ #define BOOST_CXX_WATCOM BOOST_PREDEF_MAKE_NN_NN(__WATCOMC__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_WATCOM,"Watcom")
+
 #endif

Added: sandbox/predef/boost/predef/detail/_cassert.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/detail/_cassert.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,17 @@
+/*
+Copyright Redshift Software, Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_DETAIL__CASSERT_H
+#define BOOST_PREDEF_DETAIL__CASSERT_H
+
+#if defined(__cpluplus)
+#include <cassert>
+#else
+#include <assert.h>
+#endif
+
+#endif

Added: sandbox/predef/boost/predef/detail/_exception.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/detail/_exception.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,15 @@
+/*
+Copyright Redshift Software, Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_DETAIL__EXCEPTION_H
+#define BOOST_PREDEF_DETAIL__EXCEPTION_H
+
+#if defined(__cpluplus)
+#include <exception>
+#endif
+
+#endif

Added: sandbox/predef/boost/predef/detail/test.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/detail/test.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,17 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_DETAIL_TEST_H
+#define BOOST_PREDEF_DETAIL_TEST_H
+
+#if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS)
+
+#define BOOST_PREDEF_DECLARE_TEST(x,s)
+
+#endif
+
+#endif

Deleted: sandbox/predef/boost/predef/detail/vrp.h
==============================================================================
--- sandbox/predef/boost/predef/detail/vrp.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
+++ (empty file)
@@ -1,32 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2010
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_DETAIL_VRP_H
-#define BOOST_PREDEF_DETAIL_VRP_H
-
-/* Shorthands for the common version number formats used by vendors... */
-
-/* Hexadecimal... */
-#define BOOST_PREDEF_VRP_F_F_F(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_FF_F_F(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_F_F_FF(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
-#define BOOST_PREDEF_VRP_FF_FF(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
-#define BOOST_PREDEF_VRP_F_FF_FFFF(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
-#define BOOST_PREDEF_VRP_FF_FF_F(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_F_FF_FF_000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
-
-/* Decimal... */
-#define BOOST_PREDEF_VRP_N_N_N(V) BOOST_VERSION_NUMBER((V)/100,(V%100)/10,(V%10))
-#define BOOST_PREDEF_VRP_NN_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
-#define BOOST_PREDEF_VRP_NN_NN(V) BOOST_VERSION_NUMBER((V%10000)/100,(V%100),0)
-#define BOOST_PREDEF_VRP_N_N_NN(V) BOOST_VERSION_NUMBER((V)/1000,(V%1000)/100,(V%100))
-#define BOOST_PREDEF_VRP_N_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
-#define BOOST_PREDEF_VRP_N_N_N_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/10000,(V%1000)/1000)
-#define BOOST_PREDEF_VRP_N_NN_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/1000,0)
-#define BOOST_PREDEF_VRP_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER((V)/100000000,(V%100000000)/1000000,(V%10000)/100)
-
-#endif

Added: sandbox/predef/boost/predef/language.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/language.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,15 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_LANGUAGE_H
+#define BOOST_PREDEF_LANGUAGE_H
+
+#include <boost/predef/language/stdc.h>
+#include <boost/predef/language/stdcpp.h>
+#include <boost/predef/language/objc.h>
+
+#endif

Added: sandbox/predef/boost/predef/language/objc.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/language/objc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,30 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_LANGUAGE_OBJC_H
+#define BOOST_PREDEF_LANGUAGE_OBJC_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_LANGUAGE_OBJC`]
+
+Objective C language.
+ */
+
+#define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__OBJC__)
+ #undef BOOST_LANGUAGE_OBJC
+ #define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,1)
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective C")
+
+#endif

Added: sandbox/predef/boost/predef/language/stdc.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/language/stdc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,39 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_LANGUAGE_STDC_H
+#define BOOST_PREDEF_LANGUAGE_STDC_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_LANGUAGE_STDC`]
+
+Standard C language. If available, the year of the standard
+is detected as 0.0.YYYY.
+ */
+
+#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__STDC__)
+ #undef BOOST_LANGUAGE_STDC
+ #if defined(__STDC_VERSION__)
+ #if (__STDC_VERSION__ > 100)
+ #define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,__STDC_VERSION__/100)
+ #else
+ #define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+ #else
+ #define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDC,"Standard C")
+
+#endif

Added: sandbox/predef/boost/predef/language/stdcpp.h
==============================================================================
--- (empty file)
+++ sandbox/predef/boost/predef/language/stdcpp.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,72 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_LANGUAGE_STDCPP_H
+#define BOOST_PREDEF_LANGUAGE_STDCPP_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+/*`
+[heading `BOOST_LANGUAGE_STDCPP`]
+
+Standard C++ language. If available, the year of the standard
+is detected as 0.0.YYYY.
+ */
+
+#define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__cplusplus)
+ #undef BOOST_LANGUAGE_STDCPP
+ #if (__cplusplus > 100)
+ #define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,__cplusplus/100)
+ #else
+ #define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPP,"Standard C++")
+
+/*`
+[heading `BOOST_LANGUAGE_STDCPPCLI`]
+
+Standard C++/CLI language. If available, the year of the standard
+is detected as 0.0.YYYY.
+ */
+
+#define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__cplusplus_cli)
+ #undef BOOST_LANGUAGE_STDCPPCLI
+ #if (__cplusplus_cli > 100)
+ #define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,__cplusplus_cli/100)
+ #else
+ #define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPPCLI,"Standard C++/CLI")
+
+/*`
+[heading `BOOST_LANGUAGE_STDECPP`]
+
+Standard Embedded C++ language.
+ */
+
+#define BOOST_LANGUAGE_STDECPP BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(__embedded_cplusplus)
+ #undef BOOST_LANGUAGE_STDECPP
+ #define BOOST_LANGUAGE_STDECPP BOOST_VERSION_NUMBER(0,0,1)
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDECPP,"Standard Embedded C++")
+
+#endif

Modified: sandbox/predef/boost/predef/library/c.h
==============================================================================
--- sandbox/predef/boost/predef/library/c.h (original)
+++ sandbox/predef/boost/predef/library/c.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -8,7 +8,7 @@
 #ifndef BOOST_PREDEF_LIBRARY_C_H
 #define BOOST_PREDEF_LIBRARY_C_H
 
-#include <cassert>
+#include <boost/predef/detail/_cassert.h>
 
 #include <boost/predef/library/c/gnu.h>
 #include <boost/predef/library/c/uc.h>

Modified: sandbox/predef/boost/predef/library/c/gnu.h
==============================================================================
--- sandbox/predef/boost/predef/library/c/gnu.h (original)
+++ sandbox/predef/boost/predef/library/c/gnu.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,13 @@
 #define BOOST_PREDEF_LIBRARY_C_GNU_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
+
+#if defined(__STDC__)
+#include <stddef.h>
+#elif defined(__cplusplus)
+#include <cstddef>
+#endif
 
 #define BOOST_LIBC_GNU BOOST_VERSION_NUMBER(0,0,0)
 
@@ -21,6 +27,10 @@
     #else
         #define BOOST_LIBC_GNU \
             BOOST_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0)
+ #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_GNU,"GNU")
+
 #endif

Modified: sandbox/predef/boost/predef/library/c/uc.h
==============================================================================
--- sandbox/predef/boost/predef/library/c/uc.h (original)
+++ sandbox/predef/boost/predef/library/c/uc.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_C_UC_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBC_UC BOOST_VERSION_NUMBER(0,0,0)
 
@@ -19,4 +19,7 @@
         __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_UC,"uC")
+
 #endif

Modified: sandbox/predef/boost/predef/library/c/vms.h
==============================================================================
--- sandbox/predef/boost/predef/library/c/vms.h (original)
+++ sandbox/predef/boost/predef/library/c/vms.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_C_VMS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBC_VMS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -21,4 +21,7 @@
         (__CRTL_VER%10000)/100)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_VMS,"VMS")
+
 #endif

Modified: sandbox/predef/boost/predef/library/c/zos.h
==============================================================================
--- sandbox/predef/boost/predef/library/c/zos.h (original)
+++ sandbox/predef/boost/predef/library/c/zos.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,13 +9,16 @@
 #define BOOST_PREDEF_LIBRARY_C_ZOS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBC_ZOS BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__LIBREL__)
     #undef BOOST_LIBC_ZOS
- #define BOOST_LIBC_ZOS BOOST_PREDEF_VRP_F_FF_FFFF(__LIBREL__)
+ #define BOOST_LIBC_ZOS BOOST_PREDEF_MAKE_F_FF_FFFF(__LIBREL__)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_ZOS,"zOS")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std.h
==============================================================================
--- sandbox/predef/boost/predef/library/std.h (original)
+++ sandbox/predef/boost/predef/library/std.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -16,11 +16,11 @@
 as I can tell (RR) it's not a standalone header in most
 implementations. Using <exception> also has the benefit of
 being available in EC++, so we get a chance to make this work
-for embeded users. And since it's not a header impacted by TR1
+for embedded users. And since it's not a header impacted by TR1
 there's no magic needed for inclusion in the face of the
 Boost.TR1 library.
 */
-#include <exception>
+#include <boost/predef/detail/_exception.h>
 
 /*
 STLPort library; this _must_ come first, otherwise since
@@ -30,7 +30,7 @@
 #include <boost/predef/library/std/stlport.h>
 
 /*
-The rest in apha order, except for Dinkumware.
+The rest in alpha order, except for Dinkumware.
 */
 #include <boost/predef/library/std/libcomo.h>
 #include <boost/predef/library/std/modena.h>

Modified: sandbox/predef/boost/predef/library/std/dinkumware.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/dinkumware.h (original)
+++ sandbox/predef/boost/predef/library/std/dinkumware.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,17 +9,20 @@
 #define BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_DINKUMWARE BOOST_VERSION_NUMBER(0,0,0)
 
 #if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
     #undef BOOST_LIBSTD_DINKUMWARE
     #if defined(_CPPLIB_VER)
- #define BOOST_LIBSTD_DINKUMWARE BOOST_PREDEF_VRP_NN_NN(__CPPLIB_VER)
+ #define BOOST_LIBSTD_DINKUMWARE BOOST_PREDEF_MAKE_NN_NN(__CPPLIB_VER)
     #else
         #define BOOST_LIBSTD_DINKUMWARE BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_DINKUMWARE,"Dinkumware")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/libcomo.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/libcomo.h (original)
+++ sandbox/predef/boost/predef/library/std/libcomo.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_COMO BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_LIBSTD_COMO BOOST_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_COMO,"Como")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/modena.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/modena.h (original)
+++ sandbox/predef/boost/predef/library/std/modena.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_STD_MODENA_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_MSIPL BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_LIBSTD_MSIPL BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSIPL,"Modena MSIPL")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/msl.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/msl.h (original)
+++ sandbox/predef/boost/predef/library/std/msl.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,17 +9,20 @@
 #define BOOST_PREDEF_LIBRARY_STD_MSL_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_MSL BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__MSL_CPP__) || defined(__MSL__)
     #undef BOOST_LIBSTD_MSL
     #if defined(__MSL_CPP__)
- #define BOOST_LIBSTD_MSL BOOST_PREDEF_VRP_F_F_FF(__MSL_CPP__)
+ #define BOOST_LIBSTD_MSL BOOST_PREDEF_MAKE_F_F_FF(__MSL_CPP__)
     #else
- #define BOOST_LIBSTD_MSL BOOST_PREDEF_VRP_F_F_FF(__MSL__)
+ #define BOOST_LIBSTD_MSL BOOST_PREDEF_MAKE_F_F_FF(__MSL__)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSL,"Metrowerks")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/roguewave.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/roguewave.h (original)
+++ sandbox/predef/boost/predef/library/std/roguewave.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_RW BOOST_VERSION_NUMBER(0,0,0)
 
@@ -17,13 +17,16 @@
     #undef BOOST_LIBSTD_RW
     #if defined(_RWSTD_VER)
         #if _RWSTD_VER < 0x010000
- #define BOOST_LIBSTD_RW BOOST_PREDEF_VRP_FF_FF_F(_RWSTD_VER)
+ #define BOOST_LIBSTD_RW BOOST_PREDEF_MAKE_FF_FF_F(_RWSTD_VER)
         #else
- #define BOOST_LIBSTD_RW BOOST_PREDEF_VRP_FF_FF_FF(_RWSTD_VER)
+ #define BOOST_LIBSTD_RW BOOST_PREDEF_MAKE_FF_FF_FF(_RWSTD_VER)
         #endif
     #else
         #define BOOST_LIBSTD_RW BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_RW,"Roguewave")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/sgi.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/sgi.h (original)
+++ sandbox/predef/boost/predef/library/std/sgi.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,17 +9,20 @@
 #define BOOST_PREDEF_LIBRARY_STD_SGI_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_SGI BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__STL_CONFIG_H)
     #undef BOOST_LIBSTD_SGI
     #if defined(__SGI_STL)
- #define BOOST_LIBSTD_SGI BOOST_PREDEF_VRP_F_F_F(__SGI_STL)
+ #define BOOST_LIBSTD_SGI BOOST_PREDEF_MAKE_F_F_F(__SGI_STL)
     #else
         #define BOOST_LIBSTD_SGI BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_SGI,"SGI")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/stdcpp3.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/stdcpp3.h (original)
+++ sandbox/predef/boost/predef/library/std/stdcpp3.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,17 +9,22 @@
 #define BOOST_PREDEF_LIBRARY_STD_STDCPP3_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__GLIBCPP__) || defined(__GLIBCXX__)
     #undef BOOST_LIBSTD_GNU
     #if defined(__GLIBCXX__)
- #define BOOST_LIBSTD_GNU BOOST_PREDEF_VRP_NN_NN_NN(__GLIBCXX__)
+ #define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCXX__)
+ #elif
+ #define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCPP__)
     #else
- #define BOOST_LIBSTD_GNU BOOST_PREDEF_VRP_NN_NN_NN(__GLIBCPP__)
+ #define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,1)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_GNU,"GNU")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/stlport.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/stlport.h (original)
+++ sandbox/predef/boost/predef/library/std/stlport.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_STD_STLPORT_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_STLPORT BOOST_VERSION_NUMBER(0,0,0)
 
@@ -19,10 +19,13 @@
         #define BOOST_LIBSTD_STLPORT \
             BOOST_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL)
     #elif defined(_STLPORT_VERSION)
- #define BOOST_LIBSTD_STLPORT BOOST_PREDEF_VRP_F_F_F(_STLPORT_VERSION)
+ #define BOOST_LIBSTD_STLPORT BOOST_PREDEF_MAKE_F_F_F(_STLPORT_VERSION)
     #else
- #define BOOST_LIBSTD_STLPORT BOOST_PREDEF_VRP_F_F_F(__SGI_STL_PORT)
+ #define BOOST_LIBSTD_STLPORT BOOST_PREDEF_MAKE_F_F_F(__SGI_STL_PORT)
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_STLPORT,"STLport")
+
 #endif

Modified: sandbox/predef/boost/predef/library/std/vacpp.h
==============================================================================
--- sandbox/predef/boost/predef/library/std/vacpp.h (original)
+++ sandbox/predef/boost/predef/library/std/vacpp.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -9,7 +9,7 @@
 #define BOOST_PREDEF_LIBRARY_STD_VACPP_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_IBM,"IBM VACPP")
+
 #endif

Copied: sandbox/predef/boost/predef/make.h (from r74943, /sandbox/predef/boost/predef/detail/vrp.h)
==============================================================================
--- /sandbox/predef/boost/predef/detail/vrp.h (original)
+++ sandbox/predef/boost/predef/make.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -4,29 +4,69 @@
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
 */
+#include <boost/predef/detail/test.h>
 
-#ifndef BOOST_PREDEF_DETAIL_VRP_H
-#define BOOST_PREDEF_DETAIL_VRP_H
+#ifndef BOOST_PREDEF_MAKE_H
+#define BOOST_PREDEF_MAKE_H
 
-/* Shorthands for the common version number formats used by vendors... */
+/*
+Shorthands for the common version number formats used by vendors...
+*/
+
+/*`
+[heading `BOOST_PREDEF_MAKE_F..` macros]
+
+These set of macros decompose common vendor version number
+macros which are composed of hexadecimal digits. The naming
+convention indicates what the format of the vendor version
+number. Where "`F`" indicates a hexadecimal digit, "`_`"
+separates the major/minor/patch parts of the version number,
+and "`0`" indicates an ignored hexadecimal digit. Macros are:
+*/
+/*` `BOOST_PREDER_MAKE_F_F_F(V)` */
+#define BOOST_PREDEF_MAKE_F_F_F(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
+/*` `BOOST_PREDEF_MAKE_FF_F_F(V)` */
+#define BOOST_PREDEF_MAKE_FF_F_F(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
+/*` `BOOST_PREDEF_MAKE_F_F_FF(V)` */
+#define BOOST_PREDEF_MAKE_F_F_FF(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
+/*` `BOOST_PREDEF_MAKE_FF_FF(V)` */
+#define BOOST_PREDEF_MAKE_FF_FF(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
+/*` `BOOST_PREDEF_MAKE_F_FF_FFFF(V)` */
+#define BOOST_PREDEF_MAKE_F_FF_FFFF(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
+/*` `BOOST_PREDEF_MAKE_FF_FF_F(V)` */
+#define BOOST_PREDEF_MAKE_FF_FF_F(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
+/*` `BOOST_PREDEF_MAKE_F_FF_FF_000(V)` */
+#define BOOST_PREDEF_MAKE_F_FF_FF_000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
+
+/*`
+[heading `BOOST_PREDEF_MAKE_N..` macros]
 
-/* Hexadecimal... */
-#define BOOST_PREDEF_VRP_F_F_F(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_FF_F_F(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_F_F_FF(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
-#define BOOST_PREDEF_VRP_FF_FF(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
-#define BOOST_PREDEF_VRP_F_FF_FFFF(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
-#define BOOST_PREDEF_VRP_FF_FF_F(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
-#define BOOST_PREDEF_VRP_F_FF_FF_000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
-
-/* Decimal... */
-#define BOOST_PREDEF_VRP_N_N_N(V) BOOST_VERSION_NUMBER((V)/100,(V%100)/10,(V%10))
-#define BOOST_PREDEF_VRP_NN_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
-#define BOOST_PREDEF_VRP_NN_NN(V) BOOST_VERSION_NUMBER((V%10000)/100,(V%100),0)
-#define BOOST_PREDEF_VRP_N_N_NN(V) BOOST_VERSION_NUMBER((V)/1000,(V%1000)/100,(V%100))
-#define BOOST_PREDEF_VRP_N_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
-#define BOOST_PREDEF_VRP_N_N_N_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/10000,(V%1000)/1000)
-#define BOOST_PREDEF_VRP_N_NN_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/1000,0)
-#define BOOST_PREDEF_VRP_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER((V)/100000000,(V%100000000)/1000000,(V%10000)/100)
+These set of macros decompose common vendor version number
+macros which are composed of decimal digits. The naming
+convention indicates what the format of the vendor version
+number. Where "`N`" indicates a decimal digit, "`_`"
+separates the major/minor/patch parts of the version number,
+and "`0`" indicates an ignored decimal digit. Macros are:
+*/
+/*` `BOOST_PREDEF_MAKE_N_N_N(V)` */
+#define BOOST_PREDEF_MAKE_N_N_N(V) BOOST_VERSION_NUMBER((V)/100,(V%100)/10,(V%10))
+/*` `BOOST_PREDEF_MAKE_NN_NN_NN(V)` */
+#define BOOST_PREDEF_MAKE_NN_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
+/*` `BOOST_PREDEF_MAKE_NN_NN(V)` */
+#define BOOST_PREDEF_MAKE_NN_NN(V) BOOST_VERSION_NUMBER((V%10000)/100,(V%100),0)
+/*` `BOOST_PREDEF_MAKE_N_N_NN(V)` */
+#define BOOST_PREDEF_MAKE_N_N_NN(V) BOOST_VERSION_NUMBER((V)/1000,(V%1000)/100,(V%100))
+/*` `BOOST_PREDEF_MAKE_N_NN_NN(V)` */
+#define BOOST_PREDEF_MAKE_N_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
+/*` `BOOST_PREDEF_MAKE_N_N_N_000(V)` */
+#define BOOST_PREDEF_MAKE_N_N_N_000(V) BOOST_VERSION_NUMBER((V%1000000)/100000,(V%100000)/10000,(V%10000)/1000)
+/*` `BOOST_PREDEF_MAKE_N_NN_000(V)` */
+#define BOOST_PREDEF_MAKE_N_NN_000(V) BOOST_VERSION_NUMBER((V%1000000)/100000,(V%100000)/1000,0)
+/*` `BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V)` */
+#define BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER((V)/100000000,(V%100000000)/1000000,(V%10000)/100)
+/*` `BOOST_PREDEF_MAKE_NN_00(V)` */
+#define BOOST_PREDEF_MAKE_NN_00(V) BOOST_VERSION_NUMBER((V)/100,0,0)
+/*` `BOOST_PREDEF_MAKE_YYYY_MM_DD(V)` */
+#define BOOST_PREDEF_MAKE_YYYY_MM_DD(V) BOOST_VERSION_NUMBER((V)/10000-1970,(V%10000)/100,(V%100))
 
 #endif

Modified: sandbox/predef/boost/predef/os/aix.h
==============================================================================
--- sandbox/predef/boost/predef/os/aix.h (original)
+++ sandbox/predef/boost/predef/os/aix.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_AIX_H
-#define BOOST_PREDEF_COMPILER_AIX_H
+#ifndef BOOST_PREDEF_OS_AIX_H
+#define BOOST_PREDEF_OS_AIX_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_AIX BOOST_VERSION_NUMBER(0,0,0)
 
@@ -28,4 +28,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,"AIX")
+
 #endif

Modified: sandbox/predef/boost/predef/os/amigaos.h
==============================================================================
--- sandbox/predef/boost/predef/os/amigaos.h (original)
+++ sandbox/predef/boost/predef/os/amigaos.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_AMIGAOS_H
-#define BOOST_PREDEF_COMPILER_AMIGAOS_H
+#ifndef BOOST_PREDEF_OS_AMIGAOS_H
+#define BOOST_PREDEF_OS_AMIGAOS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,"Amiga OS")
+
 #endif

Modified: sandbox/predef/boost/predef/os/beos.h
==============================================================================
--- sandbox/predef/boost/predef/os/beos.h (original)
+++ sandbox/predef/boost/predef/os/beos.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_BEOS_H
-#define BOOST_PREDEF_COMPILER_BEOS_H
+#ifndef BOOST_PREDEF_OS_BEOS_H
+#define BOOST_PREDEF_OS_BEOS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,"Be OS")
+
 #endif

Modified: sandbox/predef/boost/predef/os/bsd.h
==============================================================================
--- sandbox/predef/boost/predef/os/bsd.h (original)
+++ sandbox/predef/boost/predef/os/bsd.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_BSD_H
-#define BOOST_PREDEF_COMPILER_BSD_H
+#ifndef BOOST_PREDEF_OS_BSD_H
+#define BOOST_PREDEF_OS_BSD_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_BSD BOOST_VERSION_NUMBER(0,0,0)
 #define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER(0,0,0)
@@ -35,7 +35,7 @@
     #elif defined(BSD4_4)
         #define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0)
     #elif defined(BSD)
- #define BOOST_OS_BSD BOOST_PREDEF_VRP_NN_NN(BSD)
+ #define BOOST_OS_BSD BOOST_PREDEF_MAKE_NN_NN(BSD)
     #else
         #define BOOST_OS_BSD BOOST_VERSION_NUMBER(0,0,1)
     #endif
@@ -68,6 +68,9 @@
         #elif defined(__NetBSD_Version)
             #define BOOST_OS_NET_BSD \
                 BOOST_PREDEF_VRP_NN_NN_00_NN_00(__NetBSD_Version)
+ #else
+ #define BOOST_OS_NET_BSD BOOST_VERSION_NUMBER(0,0,1)
+ #endif
     #endif
     #if defined(__OpenBSD__)
         #if defined(OpenBSD2_0)
@@ -124,4 +127,12 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,"BSD")
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_DRAGONFLY_BSD,"Dragonfly BSD")
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_FREE_BSD,"Free BSD")
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSDI_BSD,"BSDI BSD")
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_NET_BSD,"Net BSD")
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OPEN_BSD,"Open BSD")
+
 #endif

Modified: sandbox/predef/boost/predef/os/cygwin.h
==============================================================================
--- sandbox/predef/boost/predef/os/cygwin.h (original)
+++ sandbox/predef/boost/predef/os/cygwin.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_CYGWIN_H
-#define BOOST_PREDEF_COMPILER_CYGWIN_H
+#ifndef BOOST_PREDEF_OS_CYGWIN_H
+#define BOOST_PREDEF_OS_CYGWIN_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_CYGWIN,"Cygwin")
+
 #endif

Modified: sandbox/predef/boost/predef/os/hpux.h
==============================================================================
--- sandbox/predef/boost/predef/os/hpux.h (original)
+++ sandbox/predef/boost/predef/os/hpux.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_HPUX_H
-#define BOOST_PREDEF_COMPILER_HPUX_H
+#ifndef BOOST_PREDEF_OS_HPUX_H
+#define BOOST_PREDEF_OS_HPUX_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_HPUX BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_HPUX BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HPUX,"HP-UX")
+
 #endif

Modified: sandbox/predef/boost/predef/os/irix.h
==============================================================================
--- sandbox/predef/boost/predef/os/irix.h (original)
+++ sandbox/predef/boost/predef/os/irix.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_IRIX_H
-#define BOOST_PREDEF_COMPILER_IRIX_H
+#ifndef BOOST_PREDEF_OS_IRIX_H
+#define BOOST_PREDEF_OS_IRIX_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_IRIX BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_IRIX BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_IRIX,"Irix")
+
 #endif

Modified: sandbox/predef/boost/predef/os/linux.h
==============================================================================
--- sandbox/predef/boost/predef/os/linux.h (original)
+++ sandbox/predef/boost/predef/os/linux.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_LINUX_H
+#define BOOST_PREDEF_OS_LINUX_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_LINUX BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_LINUX BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_LINUX,"Linux")
+
 #endif

Modified: sandbox/predef/boost/predef/os/macos.h
==============================================================================
--- sandbox/predef/boost/predef/os/macos.h (original)
+++ sandbox/predef/boost/predef/os/macos.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_MACOS_H
+#define BOOST_PREDEF_OS_MACOS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_MACOS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -23,4 +23,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,"MacOS")
+
 #endif

Modified: sandbox/predef/boost/predef/os/qnxnto.h
==============================================================================
--- sandbox/predef/boost/predef/os/qnxnto.h (original)
+++ sandbox/predef/boost/predef/os/qnxnto.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,18 +5,18 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_QNXNTO_H
+#define BOOST_PREDEF_OS_QNXNTO_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_QNX BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(__QNX__) || defined(__QNXNTO__)
     #undef BOOST_OS_QNX
     #if defined(_NTO_VERSION)
- #define BOOST_OS_QNX BOOST_PREDEF_VRP_NN_NN(_NTO_VERSION)
+ #define BOOST_OS_QNX BOOST_PREDEF_MAKE_NN_NN(_NTO_VERSION)
     #elif defined(__QNX__)
         #define BOOST_OS_QNX BOOST_VERSION_NUMBER(4,0,0)
     #else
@@ -24,4 +24,7 @@
     #endif
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,"QNX-NTO")
+
 #endif

Modified: sandbox/predef/boost/predef/os/solaris.h
==============================================================================
--- sandbox/predef/boost/predef/os/solaris.h (original)
+++ sandbox/predef/boost/predef/os/solaris.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_SOLARIS_H
+#define BOOST_PREDEF_OS_SOLARIS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -18,4 +18,7 @@
     #define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SOLARIS,"Solaris")
+
 #endif

Modified: sandbox/predef/boost/predef/os/unix.h
==============================================================================
--- sandbox/predef/boost/predef/os/unix.h (original)
+++ sandbox/predef/boost/predef/os/unix.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_UNIX_H
+#define BOOST_PREDEF_OS_UNIX_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,0)
 
@@ -19,4 +19,7 @@
     #define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,"Unix")
+
 #endif

Modified: sandbox/predef/boost/predef/os/windows.h
==============================================================================
--- sandbox/predef/boost/predef/os/windows.h (original)
+++ sandbox/predef/boost/predef/os/windows.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -5,11 +5,11 @@
 http://www.boost.org/LICENSE_1_0.txt)
 */
 
-#ifndef BOOST_PREDEF_COMPILER_H
-#define BOOST_PREDEF_COMPILER_H
+#ifndef BOOST_PREDEF_OS_WINDOWS_H
+#define BOOST_PREDEF_OS_WINDOWS_H
 
 #include <boost/predef/version_number.h>
-#include <boost/predef/detail/vrp.h>
+#include <boost/predef/make.h>
 
 #define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER(0,0,0)
 
@@ -19,4 +19,7 @@
     #define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER(0,0,1)
 #endif
 
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,"Windows")
+
 #endif

Modified: sandbox/predef/boost/predef/version_number.h
==============================================================================
--- sandbox/predef/boost/predef/version_number.h (original)
+++ sandbox/predef/boost/predef/version_number.h 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -1,6 +1,6 @@
 /*
 Copyright Rene Rivera 2005
-Copyright Redshift Software, Inc. 2008-2010
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -9,14 +9,31 @@
 #ifndef BOOST_PREDEF_VERSION_NUMBER_H
 #define BOOST_PREDEF_VERSION_NUMBER_H
 
-/*
-/// Defines standard version numbers, with these properties:
-/// * Decimal base whole numbers in the range [0,major*10000000]
-/// * The number range is designed to allow for a (2,2,5) triplet.
-/// Which fits within a 32 bit value.
-/// * Values can be specified in any base.
+/*`
+[heading BOOST_VERSION_NUMBER]
+
+``
+BOOST_VERSION_NUMBER(major,minor,patch)
+``
+
+Defines standard version numbers, with these properties:
+
+* Decimal base whole numbers in the range [0,major*10000000].
+ The number range is designed to allow for a (2,2,5) triplet.
+ Which fits within a 32 bit value.
+* The `major` number can be in the [0,99] range.
+* The `minor` number can be in the [0,99] range.
+* The `patch` number can be in the [0,99999] range.
+* Values can be specified in any base. As the defined value
+ is an constant expression.
+* Value can be directly used in both preprocessor and compiler
+ expressions for comparison to other similarly defined values.
+* The implementation enforces the individual ranges for the
+ major, minor, and patch numbers. And values over the ranges
+ are truncated (modulo).
+
 */
 #define BOOST_VERSION_NUMBER(major,minor,patch) \
- ( ((major)*10000000) + ((minor)*100000) + (patch) )
+ ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) )
 
 #endif

Added: sandbox/predef/jamroot.jam
==============================================================================
--- (empty file)
+++ sandbox/predef/jamroot.jam 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,10 @@
+# Copyright Redshift Software Inc. 2011
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+project predef
+ : build-dir bin
+ ;
+
+path-constant BOOST_PREDEF_ROOT : . ;

Added: sandbox/predef/libs/predef/doc/build.jam
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/doc/build.jam 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,38 @@
+# Copyright Redshift Software, Inc. 2011
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+using quickbook ;
+
+if ! $(BOOST_ROOT)
+{
+ BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;
+}
+
+xml predef
+ :
+ predef.qbk
+ ;
+explicit predef ;
+
+boostbook standalone
+ :
+ predef
+ :
+ <xsl:param>boost.root=../../..
+ <xsl:param>generate.section.toc.level=3
+ <xsl:param>chunk.section.depth=1
+ <xsl:param>chunk.first.sections=1
+
+ <dependency>images
+ <dependency>callouts
+ <dependency>css
+ ;
+
+install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : <location>html/images ;
+explicit images ;
+install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : <location>html/images/callouts ;
+explicit callouts ;
+install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : <location>html ;
+explicit css ;

Added: sandbox/predef/libs/predef/doc/predef.qbk
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/doc/predef.qbk 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,236 @@
+[article Predef
+ [quickbook 1.6]
+ [version 1.0]
+ [authors [Rivera, Rene]]
+ [copyright 2005 Rene Rivera, 2008-2011 Redshift Software Inc]
+ [purpose Identification and specification of predefined macros.]
+ [license
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ [@http://www.boost.org/LICENSE_1_0.txt])
+ ]
+ [source-mode teletype]
+]
+
+[section Introduction]
+
+This library defines a set of compiler, architecture, operating system,
+and library version numbers from the information it can gather of C++
+predefined macros or those defined in generally available headers. The
+idea for this library grew out of a proposal to extend the Boost Config
+library to provide more, and consistent, information than the feature
+definitions it supports. What follows is an edited version of that brief
+proposal.
+
+[heading Proposal]
+
+The idea is to define a set of macros to identify compilers and
+consistently represent their version. This includes:
+
+* A unique BOOST_VERSION_NUMBER(major,minor,patch) macro to specify version
+ numbers (unfortunately, the name BOOST_VERSION is already taken to designate
+ the version number of boost itself).
+* A compiler identification macro, suitable for use in #if/#elif directives,
+ for each of the supported compilers. All macros would be defined, regardless
+ of the compiler. The one macro corresponding to the compiler being used would
+ be defined, in terms of BOOST_VERSION_NUMBER, to carry the exact compiler
+ version. All other macros would expand to an expression evaluating to false
+ (for instance, the token 0) to indicate that the corresponding compiler is not
+ present.
+* "Null values" could be set, for all macros, in
+ boost/config/select_compiler.hpp; then, for each compiler the corresponding
+ identification macro would be #undef and re-#defined in the corresponding
+ boost/compiler/(cc).hpp; however in the context of the Boost.Config
+ infrastructure using a "prefix" header (to be introduced) or
+ boost/config/suffix.hpp is a better solution. This point is further
+ clarified later.
+
+[heading Current Library]
+
+The current Predef library is now, both an independent library, and expanded
+in scope. It includes detection and definition of architectures, compilers,
+libraries, and operating systems. The key benefits are:
+
+* Version numbers that are always defined so that one doesn't have to guard
+ with `#ifdef`.
+* All possible definitions are included with the single `#include <boost/predef.h>`
+ so that it's friendly to precompiled header usage.
+* Predefs can be directly used in both preprocessor and compiler expressions
+ for comparison to other similarly defined values.
+* The headers are usable from multiple languages, that support the C preprocessor.
+ In particular C++, C, Objective C, and Objective C++.
+
+[heading Design choices]
+
+An important design choice concerns how to represent compiler versions by means
+of a single integer number suitable for use in preprocessing directives. Let's
+do some calculation. The "basic" signed type for preprocessing
+constant-expressions is long in C90 (and C++, as of 2006) and intmax_t in C99.
+The type long shall at least be able to represent the number [^+2 147 483 647].
+This means the most significant digit can only be 0, 1 or 2; and if we want all
+decimal digits to be able to vary between 0 and 9, the largest range we can
+consider is [^\[0, 999 999 999\]]. Distributing evenly, this means 3 decimal
+digits for each version number part.
+
+So we can:
+
+# use an uneven distribution or
+# use more bits (a larger type) or
+# use 3/3/3 and have the particular compiler/platform/stdlib deal with setting
+ the numbers within the 3-digit range.
+
+It appears relatively safe to go for the first option and set it at 2/2/5. That
+covers CodeWarrior and others, which are up to and past 10 for the major number.
+Some compilers use the build number in lieu of the patch one; five digits
+(which is already reached by VC++ 8) seems a reasonable limit even in this case.
+
+[note A 2/2/6 scheme would allow for bigger patch/build numbers at the cost,
+for instance, of limiting the major version number to 20 (or, with further
+constraints, to 21).]
+
+It might reassure the reader that this decision is actually encoded in one place
+in the code; the definition of BOOST_VERSION_NUMBER.
+
+[heading Future work]
+
+Even though the basics of this library are done, there is much work that can be
+done:
+
+* Right now we limit the detection of libraries to known built-in predefined
+ macros, and to guaranteed to exist system and library headers. It might be
+ interesting to add something like auto-configuration predefs. This way we can
+ add definitions for user specific libraries and features.
+* Along with the above, it might be good to add some user control as to which
+ headers are included with the top-level header.
+* Additionally, even if there is no auto-configure style option.. It would be
+ good to add optionally included headers so that user can get consistent
+ version number definitions for libraries they use.
+* Having a consistent set of version number definitions opens the door to
+ improving the user level syntax of libraries that do checks against version
+ numbers. Specifically Boost Config's `BOOST_WORKAROUND` macro would benefit
+ from a more readable syntax. As would the `BOOST_TESTED_AT` detail macro.
+* And obviously there's lots of work to do in reformulating the existing
+ Boost libraries to use the Predef library once it's accepted.
+* And there's the continuing work of adding definitions for present and
+ future compilers, platforms, architectures, and libraries.
+
+[endsect] [/Introduction]
+
+[section Using the predefs]
+
+To use the automatically defined predefs one needs to only include the
+single top-level header:
+
+``
+ #include <boost/predef.h>
+``
+
+This defines [*all] the version macros known to the library. For each
+macro it will be defined to either a /zero/ valued expression for when
+the particular item is not detected, and to a /positive/ value if it
+is detected. The predef macros fall onto the four categories each with
+macros of a particular prefix:
+
+* `BOOST_ARCHITECTURE_`for system/CPU architecture one is compiling for.
+* `BOOST_CXX_` for the compiler one is using.
+* `BOOST_LIBC_` and `BOOST_LIBSTD_` for the C and C++ standard library
+ in use.
+* `BOOST_OS_` for the operating system we are compiling to.
+
+[note The detected definitions are for the configuration one is targeting
+during the compile. In particular in a cross-compile this means the target
+system, and not the host system.]
+
+``
+ #include <boost/predef.h>
+ #include <iostream>
+
+ #if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(1,0,0))
+ bool application_is_at_least_version_1 = true;
+ #else
+ bool application_is_at_least_version_1 = false;
+ #endif
+
+ int main()
+ {
+ if (application_is_at_least_version_1)
+ std::cout << "Application is at least version 1.0.0" << std::endl;
+ if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(2,0,0))
+ std::cout << "Application is at least version 2.0.0" << std::endl;
+ return 0;
+ }
+``
+
+[heading Using existing version predefs]
+
+[heading Using the `BOOST_VERSION_NUMBER` macro]
+
+[endsect]
+
+[section Adding new predefs]
+
+[heading Requirements of the header]
+
+[heading Structure of the header]
+
+``
+/*
+Copyright Jane Doe 20xx
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+
+#ifndef BOOST_PREDEF_category_tag_H
+#define BOOST_PREDEF_category_tag_H
+
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+
+#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,0)
+
+#if defined(condition)
+ #undef BOOST_category_tag
+ #if defined(condition)
+ #define BOOST_category_tag BOOST_VERSION_NUMBER(1,0,0)
+ #elif defined(__alpha_ev5__)
+ #define BOOST_category_tag BOOST_VERSION_NUMBER(2,0,0)
+ #else
+ #define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
+ #endif
+#endif
+
+#include <boost/predef/detail/test.h>
+BOOST_PREDEF_DECLARE_TEST(BOOST_categiry_tag,"Name")
+
+#endif
+``
+
+[heading Using utility pattern macros]
+
+[endsect]
+
+[section Reference]
+
+[section `BOOST_ARCHITECTURE_` architecture macros]
+[/import ../../../boost/predef/architecture/.*\.h]
+[endsect]
+
+[section `BOOST_CXX_` compiler macros]
+[/import ../../../boost/predef/compiler/.*\.h]
+[endsect]
+
+[section `BOOST_LIBC_` and `BOOST_LIBSTD_` library macros]
+[/import ../../../boost/predef/library/.*/.*\.h]
+[endsect]
+
+[section `BOOST_OS_` operating system macros]
+[/import ../../../boost/predef/os/.*\.h]
+[endsect]
+
+[section Version definition macros]
+[include ../../../boost/predef/version_number.h]
+[include ../../../boost/predef/make.h]
+[endsect]
+
+[endsect]

Added: sandbox/predef/libs/predef/test/build.jam
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/build.jam 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,19 @@
+# Copyright Redshift Software, Inc. 2011
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+project test
+ : requirements
+ <include>$(BOOST_PREDEF_ROOT)
+ <dependency>$(BOOST_PREDEF_ROOT)/boost/predef.h
+ ;
+
+using testing ;
+
+run info_as_cpp.cpp ;
+run info_as_c.c ;
+run info_as_objcpp.mm ;
+run info_as_objc.m ;
+run version.cpp ;
+run make.cpp ;

Added: sandbox/predef/libs/predef/test/info_as_c.c
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/info_as_c.c 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,76 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS
+
+typedef struct predef_info
+{
+ unsigned tag;
+ char * name;
+ char * description;
+ unsigned value;
+} predef_info;
+
+predef_info first_predef_info = { 0x43210DEF , "-" , "-" , 0xFFFFFFFF };
+
+#define BOOST_PREDEF_DECLARE_TEST(x,s) \
+ predef_info x##_predef_info = { 0x67890DEF , #x , s , x };
+#include <boost/predef.h>
+
+predef_info last_predef_info = { 0xFFFFFFFF , "-" , "-" , 0x43210DEF };
+
+int predef_info_compare(const void * a, const void * b)
+{
+ const predef_info ** i = (const predef_info **)a;
+ const predef_info ** j = (const predef_info **)b;
+ return strcmp((*i)->name,(*j)->name);
+}
+
+int main()
+{
+ predef_info ** predefs = 0;
+ unsigned predef_count = 0;
+ unsigned * i = &first_predef_info.tag;
+ unsigned * e = &last_predef_info.tag;
+ while (i < e)
+ {
+ i += 1;
+ if (*i == 0x67890DEF)
+ {
+ predef_count += 1;
+ predefs = realloc(predefs,predef_count*sizeof(predef_info*));
+ predefs[predef_count-1] = (predef_info*)i;
+ }
+ }
+ qsort(predefs,predef_count,sizeof(predef_info*),predef_info_compare);
+ int x = 0;
+ puts("** Detected **");
+ for (x = 0; x < predef_count; ++x)
+ {
+ if (predefs[x]->value > 0)
+ printf("%s = %u (%u,%u,%u) | %s\n",
+ predefs[x]->name,
+ predefs[x]->value,
+ (predefs[x]->value/10000000)%100,
+ (predefs[x]->value/100000)%100,
+ (predefs[x]->value)%100000,
+ predefs[x]->description);
+ }
+ puts("** Not Detected **");
+ for (x = 0; x < predef_count; ++x)
+ {
+ if (predefs[x]->value == 0)
+ printf("%s = %u | %s\n",
+ predefs[x]->name,
+ predefs[x]->value,
+ predefs[x]->description);
+ }
+ return 0;
+}

Added: sandbox/predef/libs/predef/test/info_as_cpp.cpp
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/info_as_cpp.cpp 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,90 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include <string>
+#include <iostream>
+#include <set>
+
+#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS
+
+namespace
+{
+ struct predef_info
+ {
+ std::string name;
+ std::string description;
+ unsigned value;
+
+ predef_info(
+ std::string const & n,
+ std::string const & d,
+ unsigned v);
+
+ predef_info(
+ predef_info const & other)
+ : name(other.name)
+ , description(other.description)
+ , value(other.value)
+ {
+ }
+
+ bool operator < (predef_info const & other) const
+ {
+ return name < other.name;
+ }
+ };
+
+ std::set<predef_info> * predefs = 0;
+
+ predef_info::predef_info(
+ std::string const & n,
+ std::string const & d,
+ unsigned v)
+ : name(n)
+ , description(d)
+ , value(v)
+ {
+ if (!predefs)
+ {
+ predefs = new std::set<predef_info>();
+ }
+ predefs->insert(*this);
+ }
+}
+
+#define BOOST_PREDEF_DECLARE_TEST(x,s) \
+ namespace { \
+ predef_info x##_predef_init(#x,s,x); \
+ }
+#include <boost/predef.h>
+
+int main()
+{
+ std::set<predef_info>::iterator i;
+ std::set<predef_info>::iterator e = predefs->end();
+ std::cout << "** Detected **" << std::endl;
+ for (i = predefs->begin(); i != e; ++i)
+ {
+ if (i->value > 0)
+ std::cout
+ << i->name << " = "
+ << i->value
+ << " (" << (i->value/10000000)%100 << "," << (i->value/100000)%100 << "," << (i->value)%100000 << ") | "
+ << i->description
+ << std::endl;
+ }
+ std::cout << "** Not Detected **" << std::endl;
+ for (i = predefs->begin(); i != e; ++i)
+ {
+ if (i->value == 0)
+ std::cout
+ << i->name << " = "
+ << i->value << " | "
+ << i->description
+ << std::endl;
+ }
+ return 0;
+}

Added: sandbox/predef/libs/predef/test/info_as_objc.m
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/info_as_objc.m 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,7 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include "info_as_c.c"

Added: sandbox/predef/libs/predef/test/info_as_objcpp.mm
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/info_as_objcpp.mm 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,7 @@
+/*
+Copyright Redshift Software Inc. 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include "info_as_cpp.cpp"

Added: sandbox/predef/libs/predef/test/make.cpp
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/make.cpp 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,78 @@
+/*
+Copyright Redshift Software Inc 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include <boost/predef/version_number.h>
+#include <boost/predef/make.h>
+#include <exception>
+#include <vector>
+#include <string>
+#include <iostream>
+
+namespace
+{
+ struct test_info
+ {
+ std::string value;
+ bool passed;
+
+ test_info(std::string const & v, bool p) : value(v), passed(p) {}
+ test_info(test_info const & o) : value(o.value), passed(o.passed) {}
+ };
+
+ std::vector<test_info> test_results;
+}
+
+#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X)))
+
+void test_BOOST_VERSION_NUMBER()
+{
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_F_F_F(0xFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xF));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_F_F(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xF,0xF));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_F_F_FF(0xFFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xFF));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_FF(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0x0));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_F_FF_FFFF(0xFFFFFFF) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFFFF));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_FF_F(0xFFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0xF));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_F_FF_FF_000(0xFFFFF000) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFF));
+
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N(999) == BOOST_VERSION_NUMBER(9,9,9));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_NN(999999) == BOOST_VERSION_NUMBER(99,99,99));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN(9999) == BOOST_VERSION_NUMBER(99,99,0));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_NN(9999) == BOOST_VERSION_NUMBER(9,9,99));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN_NN(99999) == BOOST_VERSION_NUMBER(9,99,99));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N_000(999000) == BOOST_VERSION_NUMBER(9,9,9));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN_000(999000) == BOOST_VERSION_NUMBER(9,99,0));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_00_NN_00(9999009900) == BOOST_VERSION_NUMBER(99,99,99));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_00(9900) == BOOST_VERSION_NUMBER(99,00,00));
+
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19700101) == BOOST_VERSION_NUMBER(0,1,1));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19710101) == BOOST_VERSION_NUMBER(1,1,1));
+ PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(20691231) == BOOST_VERSION_NUMBER(99,12,31));
+}
+
+int main()
+{
+ test_BOOST_VERSION_NUMBER();
+
+ unsigned fail_count = 0;
+ std::vector<test_info>::iterator i = test_results.begin();
+ std::vector<test_info>::iterator e = test_results.end();
+ for (; i != e; ++i)
+ {
+ std::cout
+ << (i->passed ? "[passed]" : "[failed]")
+ << " " << i->value
+ << std::endl;
+ fail_count += i->passed ? 0 : 1;
+ }
+ std::cout
+ << std::endl
+ << "TOTAL: "
+ << "passed " << (test_results.size()-fail_count) << ", "
+ << "failed " << (fail_count) << ", "
+ << "of " << (test_results.size())
+ << std::endl;
+ return fail_count;
+}

Added: sandbox/predef/libs/predef/test/version.cpp
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/test/version.cpp 2011-11-18 22:46:41 EST (Fri, 18 Nov 2011)
@@ -0,0 +1,62 @@
+/*
+Copyright Redshift Software Inc 2011
+Distributed under the Boost Software License, Version 1.0.
+(See accompanying file LICENSE_1_0.txt or copy at
+http://www.boost.org/LICENSE_1_0.txt)
+*/
+#include <boost/predef/version_number.h>
+#include <exception>
+#include <vector>
+#include <string>
+#include <iostream>
+
+namespace
+{
+ struct test_info
+ {
+ std::string value;
+ bool passed;
+
+ test_info(std::string const & v, bool p) : value(v), passed(p) {}
+ test_info(test_info const & o) : value(o.value), passed(o.passed) {}
+ };
+
+ std::vector<test_info> test_results;
+}
+
+#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X)))
+
+void test_BOOST_VERSION_NUMBER()
+{
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(0,0,1) == 1L);
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(99,99,99999) == 999999999L);
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(299,99,99999) != 2999999999L);
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) != 1009999999L);
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) == 9999999L);
+ PREDEF_CHECK(BOOST_VERSION_NUMBER(100,100,100000) == 0L);
+}
+
+int main()
+{
+ test_BOOST_VERSION_NUMBER();
+
+ unsigned fail_count = 0;
+ std::vector<test_info>::iterator i = test_results.begin();
+ std::vector<test_info>::iterator e = test_results.end();
+ for (; i != e; ++i)
+ {
+ std::cout
+ << (i->passed ? "[passed]" : "[failed]")
+ << " " << i->value
+ << std::endl;
+ fail_count += i->passed ? 0 : 1;
+ }
+ std::cout
+ << std::endl
+ << "TOTAL: "
+ << "passed " << (test_results.size()-fail_count) << ", "
+ << "failed " << (fail_count) << ", "
+ << "of " << (test_results.size())
+ << std::endl;
+ return fail_count;
+}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk