Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r85272 - trunk/boost/config/compiler
From: dnljms_at_[hidden]
Date: 2013-08-10 08:41:59


Author: danieljames
Date: 2013-08-10 08:41:58 EDT (Sat, 10 Aug 2013)
New Revision: 85272
URL: http://svn.boost.org/trac/boost/changeset/85272

Log:
Bump minimum compiler requirements.

This requirements bump will allow increasing modularization of
the boost libraries. This change is still extremely conservative. To
allow proper modularization, the version requirements should be
increased much more.

(from Stephen Kelly)

Text files modified:
   trunk/boost/config/compiler/digitalmars.hpp | 17 +-------
   trunk/boost/config/compiler/gcc.hpp | 47 +----------------------
   trunk/boost/config/compiler/intel.hpp | 9 +---
   trunk/boost/config/compiler/visualc.hpp | 79 +++------------------------------------
   4 files changed, 14 insertions(+), 138 deletions(-)

Modified: trunk/boost/config/compiler/digitalmars.hpp
==============================================================================
--- trunk/boost/config/compiler/digitalmars.hpp Sat Aug 10 05:53:38 2013 (r85271)
+++ trunk/boost/config/compiler/digitalmars.hpp 2013-08-10 08:41:58 EDT (Sat, 10 Aug 2013) (r85272)
@@ -11,14 +11,7 @@
 #define BOOST_HAS_LONG_LONG
 #define BOOST_HAS_PRAGMA_ONCE
 
-#if (__DMC__ <= 0x833)
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TEMPLATE_TEMPLATES
-#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
-#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#endif
-#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
+#if !defined(BOOST_STRICT_CONFIG)
 #define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
 #define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #define BOOST_NO_OPERATORS_IN_NAMESPACE
@@ -30,11 +23,9 @@
 
 //
 // has macros:
-#if (__DMC__ >= 0x840)
 #define BOOST_HAS_DIRENT_H
 #define BOOST_HAS_STDINT_H
 #define BOOST_HAS_WINTHREADS
-#endif
 
 #if (__DMC__ >= 0x847)
 #define BOOST_HAS_EXPM1
@@ -91,11 +82,7 @@
 #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 #define BOOST_NO_CXX11_INLINE_NAMESPACES
 
-#if (__DMC__ < 0x812)
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#if __DMC__ < 0x800
+#if (__DMC__ <= 0x840)
 #error "Compiler not supported or configured - please reconfigure"
 #endif
 //

Modified: trunk/boost/config/compiler/gcc.hpp
==============================================================================
--- trunk/boost/config/compiler/gcc.hpp Sat Aug 10 05:53:38 2013 (r85271)
+++ trunk/boost/config/compiler/gcc.hpp 2013-08-10 08:41:58 EDT (Sat, 10 Aug 2013) (r85272)
@@ -20,51 +20,12 @@
 #define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #endif
 
-#if __GNUC__ < 3
-# if __GNUC_MINOR__ == 91
- // egcs 1.1 won't parse shared_ptr.hpp without this:
-# define BOOST_NO_AUTO_PTR
-# endif
-# if __GNUC_MINOR__ < 95
- //
- // Prior to gcc 2.95 member templates only partly
- // work - define BOOST_MSVC6_MEMBER_TEMPLATES
- // instead since inline member templates mostly work.
- //
-# define BOOST_NO_MEMBER_TEMPLATES
-# if __GNUC_MINOR__ >= 9
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-# endif
-# endif
-
-# if __GNUC_MINOR__ < 96
-# define BOOST_NO_SFINAE
-# endif
-
-# if __GNUC_MINOR__ <= 97
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_OPERATORS_IN_NAMESPACE
-# endif
-
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-# define BOOST_NO_IS_ABSTRACT
-# define BOOST_NO_CXX11_EXTERN_TEMPLATE
-// Variadic macros do not exist for gcc versions before 3.0
-# define BOOST_NO_CXX11_VARIADIC_MACROS
-#elif __GNUC__ == 3
+#if __GNUC__ == 3
 # if defined (__PATHSCALE__)
 # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 # define BOOST_NO_IS_ABSTRACT
 # endif
- //
- // gcc-3.x problems:
- //
- // Bug specific to gcc 3.1 and 3.2:
- //
-# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# endif
+
 # if __GNUC_MINOR__ < 4
 # define BOOST_NO_IS_ABSTRACT
 # endif
@@ -119,9 +80,7 @@
 //
 // gcc implements the named return value optimization since version 3.1
 //
-#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
 #define BOOST_HAS_NRVO
-#endif
 
 // Branch prediction hints
 #define BOOST_LIKELY(x) __builtin_expect(x, 1)
@@ -284,7 +243,7 @@
 
 // versions check:
 // we don't know gcc prior to version 2.90:
-#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
+#if (__GNUC__ < 3) || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3)
 # error "Compiler not configured - please reconfigure"
 #endif
 //

Modified: trunk/boost/config/compiler/intel.hpp
==============================================================================
--- trunk/boost/config/compiler/intel.hpp Sat Aug 10 05:53:38 2013 (r85271)
+++ trunk/boost/config/compiler/intel.hpp 2013-08-10 08:41:58 EDT (Sat, 10 Aug 2013) (r85272)
@@ -47,11 +47,6 @@
 # define BOOST_INTEL_LINUX BOOST_INTEL
 #endif
 
-#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# define BOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
 #if (BOOST_INTEL_CXX_VERSION <= 600)
 
 # if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
@@ -164,8 +159,8 @@
 
 //
 // versions check:
-// we don't support Intel prior to version 5.0:
-#if BOOST_INTEL_CXX_VERSION < 500
+// we don't support Intel prior to version 6.0:
+#if BOOST_INTEL_CXX_VERSION < 600
 # error "Compiler not supported or configured - please reconfigure"
 #endif
 

Modified: trunk/boost/config/compiler/visualc.hpp
==============================================================================
--- trunk/boost/config/compiler/visualc.hpp Sat Aug 10 05:53:38 2013 (r85271)
+++ trunk/boost/config/compiler/visualc.hpp 2013-08-10 08:41:58 EDT (Sat, 10 Aug 2013) (r85272)
@@ -34,70 +34,18 @@
 // Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
 #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
 
-#if _MSC_VER >= 1020
-# define BOOST_HAS_PRAGMA_ONCE
-#endif
+#define BOOST_HAS_PRAGMA_ONCE
 
 //
 // versions check:
-// we don't support Visual C++ prior to version 6:
-#if _MSC_VER < 1200
+// we don't support Visual C++ prior to version 7.1:
+#if _MSC_VER < 1310
 # error "Compiler not supported or configured - please reconfigure"
 #endif
 
-#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
-# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# define BOOST_NO_VOID_RETURNS
-# define BOOST_NO_EXCEPTION_STD_NAMESPACE
-
-# if _MSC_VER == 1202
-# define BOOST_NO_STD_TYPEINFO
-# endif
-
-#endif
-
 /// Visual Studio has no fenv.h
 #define BOOST_NO_FENV_H
 
-#if (_MSC_VER < 1310) // 130X == VC++ 7.0
-
-# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
-# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-# endif
-
-# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-# define BOOST_NO_PRIVATE_IN_AGGREGATE
-# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-# define BOOST_NO_INTEGRAL_INT64_T
-# define BOOST_NO_DEDUCED_TYPENAME
-# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-
-// VC++ 6/7 has member templates but they have numerous problems including
-// cases of silent failure, so for safety we define:
-# define BOOST_NO_MEMBER_TEMPLATES
-// For VC++ experts wishing to attempt workarounds, we define:
-# define BOOST_MSVC6_MEMBER_TEMPLATES
-
-# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_NO_CV_VOID_SPECIALIZATIONS
-# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-# define BOOST_NO_USING_TEMPLATE
-# define BOOST_NO_SWPRINTF
-# define BOOST_NO_TEMPLATE_TEMPLATES
-# define BOOST_NO_SFINAE
-# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-# define BOOST_NO_IS_ABSTRACT
-# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
-// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
-# if (_MSC_VER >= 1300)
-# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-# endif
-
-#endif
-
 #if _MSC_VER < 1400
 // although a conforming signature for swprint exists in VC7.1
 // it appears not to actually work:
@@ -161,10 +109,8 @@
 //
 // __int64 support:
 //
-#if (_MSC_VER >= 1200)
-# define BOOST_HAS_MS_INT64
-#endif
-#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
+#define BOOST_HAS_MS_INT64
+#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
 # define BOOST_HAS_LONG_LONG
 #else
 # define BOOST_NO_LONG_LONG
@@ -268,11 +214,7 @@
 // were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
 // IOW, you can't use these 'versions' in any sensible way. Sorry.
 # if defined(UNDER_CE)
-# if _MSC_VER < 1200
- // Note: these are so far off, they are not really supported
-# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
-# define BOOST_COMPILER_VERSION evc4.0
-# elif _MSC_VER < 1400
+# if _MSC_VER < 1400
       // Note: I'm not aware of any CE compiler with version 13xx
 # if defined(BOOST_ASSERT_CONFIG)
 # error "Unknown EVC++ compiler version - please run the configure tests and report the results"
@@ -295,14 +237,7 @@
 # endif
 # endif
 # else
-# if _MSC_VER < 1200
- // Note: these are so far off, they are not really supported
-# define BOOST_COMPILER_VERSION 5.0
-# elif _MSC_VER < 1300
-# define BOOST_COMPILER_VERSION 6.0
-# elif _MSC_VER < 1310
-# define BOOST_COMPILER_VERSION 7.0
-# elif _MSC_VER < 1400
+# if _MSC_VER < 1400
 # define BOOST_COMPILER_VERSION 7.1
 # elif _MSC_VER < 1500
 # define BOOST_COMPILER_VERSION 8.0


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