I just checked in changes to the intel-win32-tools.jam file which
enable argument-dependent lookup for all versions, since we were were
incorrectly operating as though it was enabled for v7.1 anyway.  I
think we are still out-of-synch with the config, though.  The config
for the intel compiler contains:

#  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)

      // Intel C++ 5.0.1 uses EDG 2.45, but fails to activate Koenig lookup
      // in the frontend even in "strict" mode, unless you use 
      // -Qoption,cpp,--arg_dep_lookup.  (reported by Kirk Klobe & Thomas Witt)
      // Similarly, -Qoption,cpp,--new_for_init enables new-style "for" loop
      // variable scoping. (reported by Thomas Witt)
      // Intel C++ 6.0 (currently in Beta test) doesn't have any front-end
      // changes at all.  (reported by Kirk Klobe)
      // That can't be right, since it supports template template
      // arguments (reported by Dave Abrahams)
#     ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
#        define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
#     endif
#     define BOOST_NO_SWPRINTF
#  endif

I have two questions about this:

1. Is there a reason we're checking _MSC_VER here?

2. Can we just eliminate the #define for
   BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP?

I ran the config tests for intel 5,6,7 and got the following
interesting results, but I am at a loss to interpret them.  Do the
link errors with Intel7 mean that we failed to get the whchar_t
support settings right?  Some of those symbols only deal with char,
so...

What does it mean that intel5,6 still report
BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP?  I don't know what to do with
this information.

myjam -sTOOLS="intel5 intel6 intel7" --verbose-test config

  ...

vc-C++ 
c:\build\status\bin\config_test.test\intel5\debug\runtime-link-dynamic\threading-multi\config_test.obj
config_test.cpp
c:\\boost\\libs/config/test/boost_no_excep_std.cxx(18): error: namespace "std" has no 
member "terminate"
        std::terminate();
             ^

compilation aborted for c:\boost\libs/config/test/config_test.cpp (code 2)

execute-test 
c:\build\status\bin\config_test.test\intel6\debug\runtime-link-dynamic\threading-multi\config_test.run
        1 file(s) copied.
====== BEGIN OUTPUT ====== 

*** No errors detected
====== END OUTPUT ======  

vc-Link 
c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe
xilink: executing 'link'
   Creating library 
c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.lib
 and object 
c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exp
config_test.exp : error LNK2001: unresolved external symbol "public: static bool const 
std::moneypunct<char,1>::intl" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@2_NB)
config_test.exp : error LNK2001: unresolved external symbol "public: static bool const 
std::moneypunct<char,0>::intl" ([EMAIL PROTECTED]@D$0A@@std@@2_NB)
config_test.exp : error LNK2001: unresolved external symbol "public: static bool const 
std::moneypunct<wchar_t,1>::intl" ([EMAIL PROTECTED]@[EMAIL PROTECTED]@@2_NB)
config_test.exp : error LNK2001: unresolved external symbol "public: static bool const 
std::moneypunct<wchar_t,0>::intl" ([EMAIL PROTECTED]@_W$0A@@std@@2_NB)
c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe
 : fatal error LNK1120: 4 unresolved externals

    CALL "c:/tools/intel/compiler70/ia32/bin/ICCVARS.BAT" > nul 
    "c:/tools/intel/compiler70/ia32/bin/xilink"  /nologo  /DEBUG /subsystem:console   
/out:"c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe"
      
@"c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.CMD"
 

...failed vc-Link 
c:\build\status\bin\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi\config_test.exe...
...skipped 
<status\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi>config_test.run
 for lack of 
<status\config_test.test\intel7\debug\runtime-link-dynamic\threading-multi>config_test.exe...

...

execute-test 
c:\build\status\bin\config_info.test\intel5\debug\runtime-link-dynamic\config_info.run
        1 file(s) copied.
====== BEGIN OUTPUT ====== 
Intel C++ version 500
    _CPPUNWIND                              =1
    __cplusplus                             =1
    _M_IX86                                 =600
    _WIN32                                  =1
    _WCHAR_T_DEFINED                         [no value]
    _CPPRTTI                                =1
    _DLL                                    =1
    _MSC_EXTENSIONS                         =1
    _MSC_VER                                =1200
    _MT                                     =1
    __EXCEPTIONS                            =1
    __EDG__                                 =1
    __EDG_VERSION__                         =245
    __SIGNED_CHARS__                        =1
    __ARRAY_OPERATORS                       =1
    __BOOL_DEFINED                          =1
    __RTTI                                  =1
    __PLACEMENT_DELETE                      =1
    __ICL                                   =500
    __INTEL_COMPILER                        =500


*********************************************************************

Dinkumware standard library version 1.x


*********************************************************************

Detected Platform: Win32
    Type char is signed
    Type wchar_t is unsigned
    byte order for type short               =0 8 
    byte order for type int                 =0 8 16 24 
    byte order for type long                =0 8 16 24 
    sizeof(wchar_t)                         =2
    sizeof(short)                           =2
    sizeof(int)                             =4
    sizeof(long)                            =4
    sizeof(float)                           =4
    sizeof(double)                          =8
    sizeof(long double)                     =8
    CHAR_BIT                                =8
    CHAR_MAX                                =127
    WCHAR_MAX                               =((wchar_t)-1)
    SHRT_MAX                                =32767
    INT_MAX                                 =2147483647
    LONG_MAX                                =2147483647L


*********************************************************************

Boost version 103100
    BOOST_USER_CONFIG                       =<boost/config/user.hpp>
    BOOST_COMPILER_CONFIG                   ="boost/config/compiler/intel.hpp"
    BOOST_STDLIB_CONFIG                     ="boost/config/stdlib/dinkumware.hpp"
    BOOST_PLATFORM_CONFIG                   ="boost/config/platform/win32.hpp"
    BOOST_DEDUCED_TYPENAME                  =typename
    BOOST_HAS_FTIME                          [no value]
    BOOST_HAS_LONG_LONG                      [no value]
    BOOST_HAS_MACRO_USE_FACET                [no value]
    BOOST_HAS_MS_INT64                       [no value]
    BOOST_HAS_THREADS                        [no value]
    BOOST_HAS_WINTHREADS                     [no value]
    BOOST_INTEL                             =500
    BOOST_MSVC_STD_ITERATOR                 =1
    BOOST_MSVC6_MEMBER_TEMPLATES             [no value]
    BOOST_NESTED_TEMPLATE                   =template
    BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP       [no value]
    BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS [no value]
    BOOST_NO_HASH                            [no value]
    BOOST_NO_INTEGRAL_INT64_T                [no value]
    BOOST_NO_INTRINSIC_WCHAR_T               [no value]
    BOOST_NO_MS_INT64_NUMERIC_LIMITS         [no value]
    BOOST_NO_SLIST                           [no value]
    BOOST_NO_STD_ALLOCATOR                   [no value]
    BOOST_NO_STD_ITERATOR                    [no value]
    BOOST_NO_STD_ITERATOR_TRAITS             [no value]
    BOOST_NO_STD_MIN_MAX                     [no value]
    BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN      [no value]
    BOOST_NO_STD_USE_FACET                   [no value]
    BOOST_NO_STDC_NAMESPACE                  [no value]
    BOOST_NO_SWPRINTF                        [no value]
    BOOST_NO_TEMPLATE_TEMPLATES              [no value]
    BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS [no value]
    BOOST_NO_VOID_RETURNS                    [no value]
    BOOST_STD_EXTENSION_NAMESPACE           =std
    BOOST_UNREACHABLE_RETURN(0)              [no value]
====== END OUTPUT ======  
**passed** 
c:\build\status\bin\config_info.test\intel5\debug\runtime-link-dynamic\config_info.test

...

execute-test 
c:\build\status\bin\config_info.test\intel6\debug\runtime-link-dynamic\config_info.run
        1 file(s) copied.
====== BEGIN OUTPUT ====== 
Intel C++ version 600
    _CPPUNWIND                              =1
    __cplusplus                             =1
    _M_IX86                                 =600
    _WIN32                                  =1
    _CPPRTTI                                =1
    _DLL                                    =1
    _MSC_EXTENSIONS                         =1
    _MSC_VER                                =1300
    _MT                                     =1
    _NATIVE_WCHAR_T_DEFINED                 =1
    __EXCEPTIONS                            =1
    __EDG__                                 =1
    __EDG_VERSION__                         =245
    __SIGNED_CHARS__                        =1
    __ARRAY_OPERATORS                       =1
    __BOOL_DEFINED                          =1
    __RTTI                                  =1
    __PLACEMENT_DELETE                      =1
    __ICL                                   =600
    __INTEL_COMPILER                        =600


*********************************************************************

Dinkumware standard library version 310
    _CPPLIB_VER                             =310
    _HAS_EXCEPTIONS                         =1
    _HAS_TEMPLATE_PARTIAL_ORDERING          =0


*********************************************************************

Detected Platform: Win32
    Type char is signed
    Type wchar_t is unsigned
    byte order for type short               =0 8 
    byte order for type int                 =0 8 16 24 
    byte order for type long                =0 8 16 24 
    sizeof(wchar_t)                         =2
    sizeof(short)                           =2
    sizeof(int)                             =4
    sizeof(long)                            =4
    sizeof(float)                           =4
    sizeof(double)                          =8
    sizeof(long double)                     =8
    CHAR_BIT                                =8
    CHAR_MAX                                =127
    WCHAR_MAX                               =((wchar_t)-1)
    SHRT_MAX                                =32767
    INT_MAX                                 =2147483647
    LONG_MAX                                =2147483647L


*********************************************************************

Boost version 103100
    BOOST_USER_CONFIG                       =<boost/config/user.hpp>
    BOOST_COMPILER_CONFIG                   ="boost/config/compiler/intel.hpp"
    BOOST_STDLIB_CONFIG                     ="boost/config/stdlib/dinkumware.hpp"
    BOOST_PLATFORM_CONFIG                   ="boost/config/platform/win32.hpp"
    BOOST_DEDUCED_TYPENAME                  =typename
    BOOST_HAS_FTIME                          [no value]
    BOOST_HAS_LONG_LONG                      [no value]
    BOOST_HAS_MS_INT64                       [no value]
    BOOST_HAS_NRVO                           [no value]
    BOOST_HAS_PARTIAL_STD_ALLOCATOR          [no value]
    BOOST_HAS_THREADS                        [no value]
    BOOST_HAS_WINTHREADS                     [no value]
    BOOST_INTEL                             =600
    BOOST_MSVC6_MEMBER_TEMPLATES             [no value]
    BOOST_NESTED_TEMPLATE                   =template
    BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP       [no value]
    BOOST_NO_HASH                            [no value]
    BOOST_NO_SLIST                           [no value]
    BOOST_NO_STD_ITERATOR_TRAITS             [no value]
    BOOST_NO_STD_LOCALE                      [no value]
    BOOST_NO_STD_MESSAGES                    [no value]
    BOOST_NO_STD_USE_FACET                   [no value]
    BOOST_NO_STD_WSTREAMBUF                  [no value]
    BOOST_NO_SWPRINTF                        [no value]
    BOOST_STD_EXTENSION_NAMESPACE           =std
    BOOST_UNREACHABLE_RETURN(0)              [no value]
====== END OUTPUT ======  
**passed** 
c:\build\status\bin\config_info.test\intel6\debug\runtime-link-dynamic\config_info.test

...

execute-test 
c:\build\status\bin\config_info.test\intel7\debug\runtime-link-dynamic\config_info.run
        1 file(s) copied.
====== BEGIN OUTPUT ====== 
Intel C++ version 700
    _CPPUNWIND                              =1
    __cplusplus                             =1
    _M_IX86                                 =700
    _WIN32                                  =1
    _CPPRTTI                                =1
    _DLL                                    =1
    _MSC_EXTENSIONS                         =1
    _MSC_VER                                =1310
    _MT                                     =1
    _NATIVE_WCHAR_T_DEFINED                 =1
    __EXCEPTIONS                            =1
    __EDG__                                 =1
    __EDG_VERSION__                         =300
    __SIGNED_CHARS__                        =1
    __ARRAY_OPERATORS                       =1
    __BOOL_DEFINED                          =1
    __RTTI                                  =1
    __PLACEMENT_DELETE                      =1
    __ICL                                   =700
    __INTEL_COMPILER                        =700


*********************************************************************

Dinkumware standard library version 313
    _CPPLIB_VER                             =313
    _GLOBAL_USING                           =1
    _HAS_EXCEPTIONS                         =1


*********************************************************************

Detected Platform: Win32
    Type char is signed
    Type wchar_t is unsigned
    byte order for type short               =0 8 
    byte order for type int                 =0 8 16 24 
    byte order for type long                =0 8 16 24 
    sizeof(wchar_t)                         =2
    sizeof(short)                           =2
    sizeof(int)                             =4
    sizeof(long)                            =4
    sizeof(float)                           =4
    sizeof(double)                          =8
    sizeof(long double)                     =8
    CHAR_BIT                                =8
    CHAR_MAX                                =127
    WCHAR_MAX                               =((wchar_t)-1)
    SHRT_MAX                                =32767
    INT_MAX                                 =2147483647
    LONG_MAX                                =2147483647L
    LLONG_MAX                               =0x7fffffffffffffff
    ULLONG_MAX                              =0xffffffffffffffff


*********************************************************************

Boost version 103100
    BOOST_USER_CONFIG                       =<boost/config/user.hpp>
    BOOST_COMPILER_CONFIG                   ="boost/config/compiler/intel.hpp"
    BOOST_STDLIB_CONFIG                     ="boost/config/stdlib/dinkumware.hpp"
    BOOST_PLATFORM_CONFIG                   ="boost/config/platform/win32.hpp"
    BOOST_DEDUCED_TYPENAME                  =typename
    BOOST_HAS_FTIME                          [no value]
    BOOST_HAS_LONG_LONG                      [no value]
    BOOST_HAS_MS_INT64                       [no value]
    BOOST_HAS_NRVO                           [no value]
    BOOST_HAS_PARTIAL_STD_ALLOCATOR          [no value]
    BOOST_HAS_THREADS                        [no value]
    BOOST_HAS_WINTHREADS                     [no value]
    BOOST_INTEL                             =700
    BOOST_MSVC6_MEMBER_TEMPLATES             [no value]
    BOOST_NESTED_TEMPLATE                   =template
    BOOST_NO_HASH                            [no value]
    BOOST_NO_SLIST                           [no value]
    BOOST_NO_SWPRINTF                        [no value]
    BOOST_STD_EXTENSION_NAMESPACE           =std
    BOOST_UNREACHABLE_RETURN(0)              [no value]
====== END OUTPUT ======  
**passed** 
c:\build\status\bin\config_info.test\intel7\debug\runtime-link-dynamic\config_info.test

vc-C++ 
c:\build\status\bin\limits_test.test\intel5\debug\runtime-link-dynamic\limits_test.obj
limits_test.cpp
c:\\boost\\libs/config/test/limits_test.cpp(68): error: more than one operator "<<" 
matches these operands:
            function "std::basic_ostream<_E, 
_Tr>::operator<<(std::_Bool={bool={bool}}) [with _E=char, _Tr=std::char_traits<char>]"

<snip>

            operand types are: std::basic_ostream<char, std::char_traits<char>> << 
__int64
              << " min: " << make_char_numeric_for_streaming(lim::min())
                          ^
          detected during instantiation of "void test_integral_limits(const T &, const 
char *) [with T=__int64]" 
...failed vc-C++
              
c:\build\status\bin\limits_test.test\intel5\debug\runtime-link-dynamic\limits_test.obj...


execute-test 
c:\build\status\bin\limits_test.test\intel6\debug\runtime-link-dynamic\limits_test.run
        1 file(s) copied.
====== BEGIN OUTPUT ====== 
Testing bool (size 1) min: 0, max: 1
Testing char (size 1) min: -128, max: 127
Testing signed char (size 1) min: -128, max: 127
Testing unsigned char (size 1) min: 0, max: 255
Testing wchar_t (size 2) min: 0, max: 65535
Testing short (size 2) min: -32768, max: 32767
Testing unsigned short (size 2) min: 0, max: 65535
Testing int (size 4) min: -2147483648, max: 2147483647
Testing unsigned int (size 4) min: 0, max: 4294967295
Testing long (size 4) min: -2147483648, max: 2147483647
Testing unsigned long (size 4) min: 0, max: 4294967295
Testing long long (size 8) min: -9223372036854775808, max: 9223372036854775807
Testing unsigned long long (size 8) min: 0, max: 18446744073709551615
Testing __int64 (size 8) min: -9223372036854775808, max: 9223372036854775807
Testing unsigned __int64 (size 8) min: 0, max: 18446744073709551615

Testing float
IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0
min: 1.17549e-038, max: 3.40282e+038
infinity: 1.#INF, QNaN: -1.#IND
hex value of max is: ffff7f7f
hex value of infinity is: 0000807f
hex value of qnan is: 0000c0ff
hex value of snan is: 0000c0ff

Testing double
IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0
min: 2.22507e-308, max: 1.79769e+308
infinity: 1.#INF, QNaN: -1.#IND
hex value of max is: ffffffffffffef7f
hex value of infinity is: 000000000000f07f
hex value of qnan is: 000000000000f8ff
hex value of snan is: 000000000000f8ff

Testing long double
IEEE-compatible: 1, traps: 1, bounded: 1, exact: 0
min: 2.22507e-308, max: 1.79769e+308
infinity: 1.#INF, QNaN: -1.#IND
hex value of max is: ffffffffffffef7f
hex value of infinity is: 000000000000f07f
hex value of qnan is: 000000000000f8ff
hex value of snan is: 000000000000f8ff

*** No errors detected
====== END OUTPUT ======  
**passed** 
c:\build\status\bin\limits_test.test\intel6\debug\runtime-link-dynamic\limits_test.test
...failed updating 3 targets...
...skipped 10 targets...
...updated 117 targets...

Compilation exited abnormally with code 1 at Mon Jun 02 09:46:00

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to