Compilers compliance and boost.
According to these reports it seems there is not a single compiler able to compile 100% of boost, is that right ? http://www.meta-comm.com/engineering/boost-regression/cvs-head/user/ summary.html http://www.meta-comm.com/engineering/boost-regression/cvs-head/ developer/summary_release.html What is the best compiler to use boost ? Or in a less subjective way, what is the compiler that pass most tests ? Although it is mentioned here (http://www.boost.org/status/compiler_status.html) otherwise the link to the "Compiler Status Summary" page is only showing reports on Linux and it is not mentioning the version (CVS-HEAD ?). The other reports (links above) show the results for several platforms but they seem to be only available for CVS-HEAD. Where can I find the reports for a specific version like 1.32 for example ? Thank you for your attention, Mauricio Gomes Pensar Digital phone: 55-11-4121-6287 mobile: 55-11-8319-9610 http://pensardigital.com
Mauricio Gomes writes:
According to these reports it seems there is not a single compiler able to compile 100% of boost, is that right ?
Yes, it's a technically correct statement w.r.t. CVS-HEAD, but it's more a reflection of the current state of our codebase than that of the tested compilers' compliance.
http://www.meta-comm.com/engineering/boost-regression/cvs-head/user/summary.... http://www.meta-comm.com/engineering/boost-regression/cvs-head/developer/sum...
What is the best compiler to use boost ? Or in a less subjective way, what is the compiler that pass most tests ?
Although it is mentioned here (http://www.boost.org/status/compiler_status.html) otherwise the link to the "Compiler Status Summary" page is only showing reports on Linux and it is not mentioning the version (CVS-HEAD ?). The other reports (links above) show the results for several platforms but they seem to be only available for CVS-HEAD.
Where can I find the reports for a specific version like 1.32 for example ?
See http://www.meta-comm.com/engineering/boost-regression/1_32_0/developer/summa... HTH, -- Aleksey Gurtovoy MetaCommunications Engineering
Aleksey Gurtovoy wrote:
Mauricio Gomes writes:
Where can I find the reports for a specific version like 1.32 for example ?
See http://www.meta-comm.com/engineering/boost-regression/1_32_0/developer/summa...
Aleksey, it might be a good idea to put these links somewhere prominent on the boost main page, maybe replacing the old regression reports. Markus
That's much better and it is a relief ! Thanks Aleksey. Markus suggestion is good, I've made an honest effort but I really could not find the page. If you don't mind I still have one more question: Do the code still needs a lot of workarounds for compilers problems or the latest versions of the compilers have good compliance ? 1.32 report shows a good situation but I don't know if it reflects good compilers compliance or boost developers heroic efforts to workaround problems. Thanks ! Mauricio Gomes Pensar Digital phone: 55-11-4121-6287 mobile: 55-11-8319-9610 http://pensardigital.com On Apr 20, 2005, at 2:24 AM, Aleksey Gurtovoy wrote: Aleksey, it might be a good idea to put these links somewhere prominent on the boost main page, maybe replacing the old regression reports. Markus
Mauricio Gomes writes:
According to these reports it seems there is not a single compiler able to compile 100% of boost, is that right ?
Yes, it's a technically correct statement w.r.t. CVS-HEAD, but it's more a reflection of the current state of our codebase than that of the tested compilers' compliance.
http://www.meta-comm.com/engineering/boost-regression/cvs-head/user/ summary.html http://www.meta-comm.com/engineering/boost-regression/cvs-head/ developer/summary_release.html
What is the best compiler to use boost ? Or in a less subjective way, what is the compiler that pass most tests ?
Although it is mentioned here (http://www.boost.org/status/compiler_status.html) otherwise the link to the "Compiler Status Summary" page is only showing reports on Linux and it is not mentioning the version (CVS-HEAD ?). The other reports (links above) show the results for several platforms but they seem to be only available for CVS-HEAD.
Where can I find the reports for a specific version like 1.32 for example ?
See http://www.meta-comm.com/engineering/boost-regression/1_32_0/ developer/summary_release.html
HTH, -- Aleksey Gurtovoy MetaCommunications Engineering _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Mauricio Gomes wrote:
Do the code still needs a lot of workarounds for compilers problems or the latest versions of the compilers have good compliance ? 1.32 report shows a good situation but I don't know if it reflects good compilers compliance or boost developers heroic efforts to workaround problems.
Not a direct answer to your question, but... you have made me curious. I hacked together something which counts the occurences of the various BOOST_WORKAROUND macros in use. Attached is the result. This is far from perfect, but as you can see the majority of workaround are either for gcc < 3 of for the various versions of MSVC. Markus 257 BOOST_WORKAROUND(__GNUC__,<3) 133 BOOST_WORKAROUND(BOOST_MSVC,<=1300) 112 BOOST_WORKAROUND(BOOST_MSVC,<1300) 73 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564)) 63 BOOST_WORKAROUND(BOOST_MSVC,<=1200) 50 BOOST_WORKAROUND(__BORLANDC__,<0x600) 47 BOOST_WORKAROUND(__IBMCPP__,<=600) 36 BOOST_WORKAROUND(BOOST_MSVC,==1200) 24 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3003)) 22 BOOST_WORKAROUND(__MWERKS__,<=0x3003) 22 BOOST_WORKAROUND(BOOST_MSVC,==1300) 22 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1) 21 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x551)) 18 BOOST_WORKAROUND(__GNUC__,==2) 16 BOOST_WORKAROUND(__DMC__,BOOST_TESTED_AT(0x840)) 16 BOOST_WORKAROUND(__BORLANDC__,<=0x551) 14 BOOST_WORKAROUND(__MWERKS__,<=0x2407) 13 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3201))) 13 BOOST_WORKAROUND(__MWERKS__,>0x3100) 12 BOOST_WORKAROUND(BOOST_MSVC,==1310) 12 BOOST_WORKAROUND(BOOST_MSVC,<1310) 11 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(600)) 11 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&!defined(_STLPORT_VERSION) 10 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x530)) 9 BOOST_WORKAROUND(__BORLANDC__,<0x560) 9 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1400)) 8 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(20101)) 8 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3202)) 8 BOOST_WORKAROUND(__BORLANDC__,<=0x0551) 7 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292)) 7 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(55500)) 7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570))) 7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561)) 7 BOOST_WORKAROUND(__BORLANDC__,<=0x564) 7 BOOST_WORKAROUND(BOOST_MSVC,>=1400) 6 BOOST_WORKAROUND(__GLIBCPP__,==20020514) 6 BOOST_WORKAROUND(__EDG_VERSION__,<=238) 6 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700) 5 BOOST_WORKAROUND(__SUNPRO_CC,<=0x530) 5 BOOST_WORKAROUND(__GNUC__,<=2) 5 BOOST_WORKAROUND(__EDG_VERSION__,<=245) 5 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0551)) 5 BOOST_WORKAROUND(__BORLANDC__,<=0x570) 4 BOOST_WORKAROUND(__SUNPRO_CC,==0x530) 4 BOOST_WORKAROUND(__IBMCPP__,==600) 4 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(53800)) 4 BOOST_WORKAROUND(__GNUC__,==4) 4 BOOST_WORKAROUND(__GNUC__,==3) 4 BOOST_WORKAROUND(__EDG_VERSION__,<=243) 4 BOOST_WORKAROUND(BOOST_MSVC,>1300) 4 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0304)) 3 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(502)) 3 BOOST_WORKAROUND(__EDG_VERSION__,<=244)&&!defined(BOOST_INTEL_CXX_VERSION) 3 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590040)) 3 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0564)) 3 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1310)) 3 BOOST_WORKAROUND(BOOST_MSVC,<=1310) 3 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0302)) 3 BOOST_WORKAROUND(BOOST_INTEL_WIN,BOOST_TESTED_AT(800)) 3 BOOST_WORKAROUND(BOOST_INTEL,<=700) 3 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<306) 2 BOOST_WORKAROUND(symbol,test) 2 BOOST_WORKAROUND(_STLPORT_VERSION,<0x461) 2 BOOST_WORKAROUND(_STLPORT_VERSION,<=0x450) 2 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(0x20101)) 2 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3205)) 2 BOOST_WORKAROUND(__MWERKS__,<=0x3001) 2 BOOST_WORKAROUND(_MSC_VER,>=1200) 2 BOOST_WORKAROUND(__LIBCOMO_VERSION__,BOOST_TESTED_AT(29)) 2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==3)) 2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==1) 2 BOOST_WORKAROUND(__GNUC_MINOR__,==3) 2 BOOST_WORKAROUND(__GNUC_MINOR__,<=1)) 2 BOOST_WORKAROUND(__GNUC__,==2)&&defined(__STL_CONFIG_H) 2 BOOST_WORKAROUND(__GNUC__) 2 BOOST_WORKAROUND(__EDG_VERSION__,<=238)) 2 BOOST_WORKAROUND(__EDG__,BOOST_TESTED_AT(302)) 2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590042)) 2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590041)) 2 BOOST_WORKAROUND(_CRAYC,!=0) 2 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(741))) 2 BOOST_WORKAROUND(__COMO_VERSION__,BOOST_TESTED_AT(4303)) 2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570)) 2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x531)) 2 BOOST_WORKAROUND(__BORLANDC__,<0x600)&&!defined(BOOST_TT_TEST_MS_FUNC_SIGS) 2 BOOST_WORKAROUND(__BORLANDC__,<=0x600) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1300) 2 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1300)) 2 BOOST_WORKAROUND(BOOST_MSVC,==1400) 2 BOOST_WORKAROUND(BOOST_MSVC,>=1310)) 2 BOOST_WORKAROUND(BOOST_MSVC,<1310)) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1300)||defined(__MWERKS__) 2 BOOST_WORKAROUND(BOOST_MSVC,<1300)||(defined(_MSC_EXTENSIONS)&&BOOST_MSVC<1310) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1200&&__SGI_STL_PORT) 2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1701) 2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1700) 2 BOOST_WORKAROUND(BOOST_MSVC) 2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,>=0x0300) 2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,<=0x0295) 2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,BOOST_TESTED_AT(810)) 2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=800) 2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<310) 2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=1) 1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x560)) 1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x540)) 1 BOOST_WORKAROUND(_STLPORT_VERSION,BOOST_TESTED_AT(0x452)) 1 BOOST_WORKAROUND(_STLPORT_VERSION,>0x450) 1 BOOST_WORKAROUND(__SGI_STL_PORT,<0x500) 1 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3002))&&BOOST_PP_ITERATION() 1 BOOST_WORKAROUND(__MWERKS__,<0x3202) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3201) 1 BOOST_WORKAROUND(__MWERKS__,<0x3200)) 1 BOOST_WORKAROUND(__MWERKS__,<0x3200) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3004)) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3004) 1 BOOST_WORKAROUND(__MWERKS__,<0x3003) 1 BOOST_WORKAROUND(__MWERKS__,<0x3001) 1 BOOST_WORKAROUND(__MWERKS__,>=0x3000)&&defined(__INTEL__)) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3000) 1 BOOST_WORKAROUND(_MSC_VER,BOOST_TESTED_AT(1300)) 1 BOOST_WORKAROUND(_MSC_VER,<1300)&&!defined(_STLP_VERSION) 1 BOOST_WORKAROUND(_MSC_VER,<=1300) 1 BOOST_WORKAROUND(_MSC_VER,<=1200) 1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13103077)) 1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292)&&BOOST_MSVC>1300) 1 BOOST_WORKAROUND(_MSC_FULL_VER,>140040607) 1 BOOST_WORKAROUND(_MSC_FULL_VER,>=13102292) 1 BOOST_WORKAROUND(__INTEL_COMPILER,<=800) 1 BOOST_WORKAROUND(__ICL,BOOST_TESTED_AT(700)) 1 BOOST_WORKAROUND(__HP_aCC,<=33500)) 1 BOOST_WORKAROUND(__GNUC_MINOR__,BOOST_TESTED_AT(95)) 1 BOOST_WORKAROUND(__GNUC_MINOR__,<4)&&!defined(__EDG_VERSION__) 1 BOOST_WORKAROUND(__GNUC_MINOR__,<3)) 1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(3)) 1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(2)) 1 BOOST_WORKAROUND(__GNUC__,==3)&&(__GNUC_MINOR__<4) 1 BOOST_WORKAROUND(__GNUC__,<3)&&defined(__STL_CONFIG_H)) 1 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&!defined(_STLPORT_VERSION)) 1 BOOST_WORKAROUND(__GNUC__,<3)) 1 BOOST_WORKAROUND(__GNUC__,<=3) 1 BOOST_WORKAROUND(__GNUC__,==2&&__GNUC_MINOR__==95) 1 BOOST_WORKAROUND(__GNUC__,<=2)) 1 BOOST_WORKAROUND(__EDG_VERSION__,BOOST_TESTED_AT(300)) 1 BOOST_WORKAROUND(__EDG_VERSION__,<300) 1 BOOST_WORKAROUND(__EDG_VERSION__,<=300) 1 BOOST_WORKAROUND(__EDG_VERSION__,==245) 1 BOOST_WORKAROUND(__EDG_VERSION__,==238) 1 BOOST_WORKAROUND(__DECCXX_VER,<=60590041) 1 BOOST_WORKAROUND(_CPPLIB_VER,<=310) 1 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(730))) 1 BOOST_WORKAROUND(__COMO__,BOOST_TESTED_AT(4303)) 1 BOOST_WORKAROUND(__COMO__,<=0x433) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x600)) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564))) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0561)) 1 BOOST_WORKAROUND(__BORLANDC__,<0x600)) 1 BOOST_WORKAROUND(__BORLANDC__,<0x561) 1 BOOST_WORKAROUND(__BORLANDC__,>=0x560) 1 BOOST_WORKAROUND(__BORLANDC__,<=0x550) 1 BOOST_WORKAROUND(__BORLANDC__,<0x0600) 1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101))) 1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101)) 1 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1301)) 1 BOOST_WORKAROUND(BOOST_MSVC,==1310)) 1 BOOST_WORKAROUND(BOOST_MSVC,<=1301)&&!defined(NDEBUG) 1 BOOST_WORKAROUND(BOOST_MSVC_,<=1200)&&!(defined(__ICL)&&defined(_MSC_VER)&&(_MSC_VER==1200)) 1 BOOST_WORKAROUND(BOOST_MSVC,!=1200) 1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,BOOST_TESTED_AT(400)) 1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,<=295) 1 BOOST_WORKAROUND(BOOST_INTEL_WIN,<=900) 1 BOOST_WORKAROUND(BOOST_INTEL_WIN,==710) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)&&defined(_MSC_VER)) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,!=0)&&defined(_MSC_VER) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(313)) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(310))) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=310) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1)&&!defined(__SGI_STL_PORT)
This is excellent information Markus. It gives us a good view of compilers conformance (using boost libraries as test cases). Thank you ! Mauricio Gomes Pensar Digital phone: 55-11-4121-6287 mobile: 55-11-8319-9610 http://pensardigital.com On Apr 20, 2005, at 10:00 AM, Markus Schöpflin wrote:
Mauricio Gomes wrote:
Do the code still needs a lot of workarounds for compilers problems or the latest versions of the compilers have good compliance ? 1.32 report shows a good situation but I don't know if it reflects good compilers compliance or boost developers heroic efforts to workaround problems.
Not a direct answer to your question, but... you have made me curious. I hacked together something which counts the occurences of the various BOOST_WORKAROUND macros in use. Attached is the result.
This is far from perfect, but as you can see the majority of workaround are either for gcc < 3 of for the various versions of MSVC.
Markus 257 BOOST_WORKAROUND(__GNUC__,<3) 133 BOOST_WORKAROUND(BOOST_MSVC,<=1300) 112 BOOST_WORKAROUND(BOOST_MSVC,<1300) 73 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564)) 63 BOOST_WORKAROUND(BOOST_MSVC,<=1200) 50 BOOST_WORKAROUND(__BORLANDC__,<0x600) 47 BOOST_WORKAROUND(__IBMCPP__,<=600) 36 BOOST_WORKAROUND(BOOST_MSVC,==1200) 24 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3003)) 22 BOOST_WORKAROUND(__MWERKS__,<=0x3003) 22 BOOST_WORKAROUND(BOOST_MSVC,==1300) 22 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1) 21 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x551)) 18 BOOST_WORKAROUND(__GNUC__,==2) 16 BOOST_WORKAROUND(__DMC__,BOOST_TESTED_AT(0x840)) 16 BOOST_WORKAROUND(__BORLANDC__,<=0x551) 14 BOOST_WORKAROUND(__MWERKS__,<=0x2407) 13 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3201))) 13 BOOST_WORKAROUND(__MWERKS__,>0x3100) 12 BOOST_WORKAROUND(BOOST_MSVC,==1310) 12 BOOST_WORKAROUND(BOOST_MSVC,<1310) 11 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(600)) 11 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&! defined(_STLPORT_VERSION) 10 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x530)) 9 BOOST_WORKAROUND(__BORLANDC__,<0x560) 9 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1400)) 8 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(20101)) 8 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3202)) 8 BOOST_WORKAROUND(__BORLANDC__,<=0x0551) 7 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292)) 7 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(55500)) 7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570))) 7 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x561)) 7 BOOST_WORKAROUND(__BORLANDC__,<=0x564) 7 BOOST_WORKAROUND(BOOST_MSVC,>=1400) 6 BOOST_WORKAROUND(__GLIBCPP__,==20020514) 6 BOOST_WORKAROUND(__EDG_VERSION__,<=238) 6 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700) 5 BOOST_WORKAROUND(__SUNPRO_CC,<=0x530) 5 BOOST_WORKAROUND(__GNUC__,<=2) 5 BOOST_WORKAROUND(__EDG_VERSION__,<=245) 5 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0551)) 5 BOOST_WORKAROUND(__BORLANDC__,<=0x570) 4 BOOST_WORKAROUND(__SUNPRO_CC,==0x530) 4 BOOST_WORKAROUND(__IBMCPP__,==600) 4 BOOST_WORKAROUND(__HP_aCC,BOOST_TESTED_AT(53800)) 4 BOOST_WORKAROUND(__GNUC__,==4) 4 BOOST_WORKAROUND(__GNUC__,==3) 4 BOOST_WORKAROUND(__EDG_VERSION__,<=243) 4 BOOST_WORKAROUND(BOOST_MSVC,>1300) 4 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0304)) 3 BOOST_WORKAROUND(__IBMCPP__,BOOST_TESTED_AT(502)) 3 BOOST_WORKAROUND(__EDG_VERSION__,<=244)&&! defined(BOOST_INTEL_CXX_VERSION) 3 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590040)) 3 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0564)) 3 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1310)) 3 BOOST_WORKAROUND(BOOST_MSVC,<=1310) 3 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,BOOST_TESTED_AT(0x0302)) 3 BOOST_WORKAROUND(BOOST_INTEL_WIN,BOOST_TESTED_AT(800)) 3 BOOST_WORKAROUND(BOOST_INTEL,<=700) 3 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<306) 2 BOOST_WORKAROUND(symbol,test) 2 BOOST_WORKAROUND(_STLPORT_VERSION,<0x461) 2 BOOST_WORKAROUND(_STLPORT_VERSION,<=0x450) 2 BOOST_WORKAROUND(_RWSTD_VER,BOOST_TESTED_AT(0x20101)) 2 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3205)) 2 BOOST_WORKAROUND(__MWERKS__,<=0x3001) 2 BOOST_WORKAROUND(_MSC_VER,>=1200) 2 BOOST_WORKAROUND(__LIBCOMO_VERSION__,BOOST_TESTED_AT(29)) 2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==3)) 2 BOOST_WORKAROUND(__GNUC_PATCHLEVEL__,==1) 2 BOOST_WORKAROUND(__GNUC_MINOR__,==3) 2 BOOST_WORKAROUND(__GNUC_MINOR__,<=1)) 2 BOOST_WORKAROUND(__GNUC__,==2)&&defined(__STL_CONFIG_H) 2 BOOST_WORKAROUND(__GNUC__) 2 BOOST_WORKAROUND(__EDG_VERSION__,<=238)) 2 BOOST_WORKAROUND(__EDG__,BOOST_TESTED_AT(302)) 2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590042)) 2 BOOST_WORKAROUND(__DECCXX_VER,BOOST_TESTED_AT(60590041)) 2 BOOST_WORKAROUND(_CRAYC,!=0) 2 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(741))) 2 BOOST_WORKAROUND(__COMO_VERSION__,BOOST_TESTED_AT(4303)) 2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x570)) 2 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x531)) 2 BOOST_WORKAROUND(__BORLANDC__,<0x600)&&! defined(BOOST_TT_TEST_MS_FUNC_SIGS) 2 BOOST_WORKAROUND(__BORLANDC__,<=0x600) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1300) 2 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1300)) 2 BOOST_WORKAROUND(BOOST_MSVC,==1400) 2 BOOST_WORKAROUND(BOOST_MSVC,>=1310)) 2 BOOST_WORKAROUND(BOOST_MSVC,<1310)) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1300)||defined(__MWERKS__) 2 BOOST_WORKAROUND(BOOST_MSVC,<1300)||(defined(_MSC_EXTENSIONS)&&BOOST_MS VC<1310) 2 BOOST_WORKAROUND(BOOST_MSVC,<=1200&&__SGI_STL_PORT) 2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1701) 2 BOOST_WORKAROUND(BOOST_MSVC,<=0x1700) 2 BOOST_WORKAROUND(BOOST_MSVC) 2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,>=0x0300) 2 BOOST_WORKAROUND(BOOST_MPL_CFG_GCC,<=0x0295) 2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,BOOST_TESTED_AT(810)) 2 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=800) 2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<310) 2 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=1) 1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x560)) 1 BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x540)) 1 BOOST_WORKAROUND(_STLPORT_VERSION,BOOST_TESTED_AT(0x452)) 1 BOOST_WORKAROUND(_STLPORT_VERSION,>0x450) 1 BOOST_WORKAROUND(__SGI_STL_PORT,<0x500) 1 BOOST_WORKAROUND(__MWERKS__,BOOST_TESTED_AT(0x3002))&&BOOST_PP_ITERATIO N() 1 BOOST_WORKAROUND(__MWERKS__,<0x3202) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3201) 1 BOOST_WORKAROUND(__MWERKS__,<0x3200)) 1 BOOST_WORKAROUND(__MWERKS__,<0x3200) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3004)) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3004) 1 BOOST_WORKAROUND(__MWERKS__,<0x3003) 1 BOOST_WORKAROUND(__MWERKS__,<0x3001) 1 BOOST_WORKAROUND(__MWERKS__,>=0x3000)&&defined(__INTEL__)) 1 BOOST_WORKAROUND(__MWERKS__,<=0x3000) 1 BOOST_WORKAROUND(_MSC_VER,BOOST_TESTED_AT(1300)) 1 BOOST_WORKAROUND(_MSC_VER,<1300)&&!defined(_STLP_VERSION) 1 BOOST_WORKAROUND(_MSC_VER,<=1300) 1 BOOST_WORKAROUND(_MSC_VER,<=1200) 1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13103077)) 1 BOOST_WORKAROUND(_MSC_FULL_VER,BOOST_TESTED_AT(13102292)&&BOOST_MSVC>13 00) 1 BOOST_WORKAROUND(_MSC_FULL_VER,>140040607) 1 BOOST_WORKAROUND(_MSC_FULL_VER,>=13102292) 1 BOOST_WORKAROUND(__INTEL_COMPILER,<=800) 1 BOOST_WORKAROUND(__ICL,BOOST_TESTED_AT(700)) 1 BOOST_WORKAROUND(__HP_aCC,<=33500)) 1 BOOST_WORKAROUND(__GNUC_MINOR__,BOOST_TESTED_AT(95)) 1 BOOST_WORKAROUND(__GNUC_MINOR__,<4)&&!defined(__EDG_VERSION__) 1 BOOST_WORKAROUND(__GNUC_MINOR__,<3)) 1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(3)) 1 BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(2)) 1 BOOST_WORKAROUND(__GNUC__,==3)&&(__GNUC_MINOR__<4) 1 BOOST_WORKAROUND(__GNUC__,<3)&&defined(__STL_CONFIG_H)) 1 BOOST_WORKAROUND(__GNUC__,<3)&&!defined(__SGI_STL_PORT)&&! defined(_STLPORT_VERSION)) 1 BOOST_WORKAROUND(__GNUC__,<3)) 1 BOOST_WORKAROUND(__GNUC__,<=3) 1 BOOST_WORKAROUND(__GNUC__,==2&&__GNUC_MINOR__==95) 1 BOOST_WORKAROUND(__GNUC__,<=2)) 1 BOOST_WORKAROUND(__EDG_VERSION__,BOOST_TESTED_AT(300)) 1 BOOST_WORKAROUND(__EDG_VERSION__,<300) 1 BOOST_WORKAROUND(__EDG_VERSION__,<=300) 1 BOOST_WORKAROUND(__EDG_VERSION__,==245) 1 BOOST_WORKAROUND(__EDG_VERSION__,==238) 1 BOOST_WORKAROUND(__DECCXX_VER,<=60590041) 1 BOOST_WORKAROUND(_CPPLIB_VER,<=310) 1 BOOST_WORKAROUND(_COMPILER_VERSION,BOOST_TESTED_AT(730))) 1 BOOST_WORKAROUND(__COMO__,BOOST_TESTED_AT(4303)) 1 BOOST_WORKAROUND(__COMO__,<=0x433) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x600)) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564))) 1 BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x0561)) 1 BOOST_WORKAROUND(__BORLANDC__,<0x600)) 1 BOOST_WORKAROUND(__BORLANDC__,<0x561) 1 BOOST_WORKAROUND(__BORLANDC__,>=0x560) 1 BOOST_WORKAROUND(__BORLANDC__,<=0x550) 1 BOOST_WORKAROUND(__BORLANDC__,<0x0600) 1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101))) 1 BOOST_WORKAROUND(BOOST_RWSTD_VER,BOOST_TESTED_AT(0x20101)) 1 BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1301)) 1 BOOST_WORKAROUND(BOOST_MSVC,==1310)) 1 BOOST_WORKAROUND(BOOST_MSVC,<=1301)&&!defined(NDEBUG) 1 BOOST_WORKAROUND(BOOST_MSVC_,<=1200)&&! (defined(__ICL)&&defined(_MSC_VER)&&(_MSC_VER==1200)) 1 BOOST_WORKAROUND(BOOST_MSVC,!=1200) 1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,BOOST_TESTED_AT(400)) 1 BOOST_WORKAROUND(BOOST_IOSTREAMS_GCC,<=295) 1 BOOST_WORKAROUND(BOOST_INTEL_WIN,<=900) 1 BOOST_WORKAROUND(BOOST_INTEL_WIN,==710) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)&&defined(_MSC_VER)) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)) 1 BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,!=0)&&defined(_MSC_VER) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(313)) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,BOOST_TESTED_AT(310))) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,<=310) 1 BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB,==1)&&! defined(__SGI_STL_PORT) _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Mauricio Gomes wrote:
It gives us a good view of compilers conformance (using boost libraries as test cases).
Not necessarily. It simply highlights the compilers/platforms/libraries for which the most workarounds are present in boost. This could either mean that it (= compiler/platform/librarie) is especially broken or it could mean that especially much effort has been put into boost to support it. But when you combine this list with the regression status table you could end up with a statement concerning the conformance of "it". (Along the lines of: if you have many passed tests for "it" and there are few workarounds for "it", it does look pretty good for "it". :-) Markus
"Mauricio Gomes"
That's much better and it is a relief ! Thanks Aleksey. Markus suggestion is good, I've made an honest effort but I really could not find the page.
If you don't mind I still have one more question: Do the code still needs a lot of workarounds for compilers problems or the latest versions of the compilers have good compliance ? 1.32 report shows a good situation but I don't know if it reflects good compilers compliance or boost developers heroic efforts to workaround problems.
The situation with compilers is much better than it used to be. Current versions of Comeau, GCC, Intel, Metrowerks, and Microsoft all do very well with Boost and other standard compliant code. Sun says their next release will also work well with Boost. OTOH, Borland seems to have abandoned C++. --Beman
It is a shame Borland is behind because their debugger used to be very good. They are going to ship a new C++ environment with Delphi next release. Delphi IDE will have a "C++ Identity" according to Borland. (I know Delphi is object Pascal but the new version comes with Object Pascal and C#. The next one will have C++ added to it) An audio interview I am listening (http://bdn.borland.com/article/0,1410,32958,00.html - Fev/2005) specifically mentioned boost compilation as one of their targets (some clients complained). I agree with you that looks like Borland have abandoned C++ but after listening the interview ... not quite yet. I've heard nothing about the future of C++ BuilderX. Let's see what happens. Mauricio Gomes Pensar Digital phone: 55-11-4121-6287 mobile: 55-11-8319-9610 http://pensardigital.com On Apr 20, 2005, at 10:13 AM, Beman Dawes wrote:
"Mauricio Gomes"
wrote in message news:f05c2340fb102993b7c3358e25aa340e@pensardigital.com... That's much better and it is a relief ! Thanks Aleksey. Markus suggestion is good, I've made an honest effort but I really could not find the page.
If you don't mind I still have one more question: Do the code still needs a lot of workarounds for compilers problems or the latest versions of the compilers have good compliance ? 1.32 report shows a good situation but I don't know if it reflects good compilers compliance or boost developers heroic efforts to workaround problems.
The situation with compilers is much better than it used to be. Current versions of Comeau, GCC, Intel, Metrowerks, and Microsoft all do very well with Boost and other standard compliant code. Sun says their next release will also work well with Boost. OTOH, Borland seems to have abandoned C++.
--Beman
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (4)
-
Aleksey Gurtovoy
-
Beman Dawes
-
Markus Schöpflin
-
Mauricio Gomes