On 6/1/2015 5:43 PM, Rene Rivera wrote:
On Mon, Jun 1, 2015 at 4:35 PM, Edward Diener
wrote: On 6/1/2015 2:41 PM, Rene Rivera wrote:
On Mon, May 25, 2015 at 8:34 PM, Rene Rivera
wrote: On Mon, May 25, 2015 at 8:25 PM, Edward Diener
wrote: If you look at the predef info_as_cpp tests, such as at
http://www.boost.org/development/tests/develop/developer/output/NA-QNX650-SP... , you will see that no compiler is being detected.
Ah.. I see: BOOST_COMP_GNUC = 40400002 (4,4,2) | Gnu GCC C/C++
Maybe you meant this link: <
http://www.boost.org/development/tests/develop/developer/output/oracle-intel...
??
Yet if you look at my VMD test, called test_variadic_macro, at
http://www.boost.org/development/tests/develop/developer/output/oracle-intel... , you can see that I am picking up that '__SUNPRO_CC' is defined.
Yet if '__SUNPRO_CC' is defined then predef should be picking that up and setting BOOST_COMP_SUNPRO to the compiler being detected.
Right.
Along with that problem is that in my VMD tests, aside from the
test_variadic_macro test, I have the predef-check as specified in my OP above. Yet this is being triggered for the SunOS operating system tests when clearly the compiler is not BOOST_COMP_GNUC, and '-std=c++0x' is erroneously being added for the VMD tests which causes them all to fail because the tests are being run with '-compat=5 -library=stlport4'. So here again, with SunOS and Oracle ( aka Sun ) C++, predef does not appear to be working correctly.
Well, let me fix the first problem. Perhaps it's a side effect of the Sun compiler not being detected.
OK, this seems to be fixed now. Took a while for the testers to get to testing it. Can you verify that the Predef check issues are also taken care of?
Your June 1 predef changes have not been picked up by the latest VMD tests for Android and Oracle C++ yet. Should previous changes have fixed the problem I was seeing in those tests ? If not I still have to wait until the Android and Oracle C++ tests with your June 1 changes cycle. The VMD tests on QNX are now working correctly even though your June 1 changes were not picked up there yet.
It wasn't the June 1st changes that I refer to that makes this < http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-predef-test-info_as_cpp-test-sun-stlport4-release-threading-multi.html> work correctly for SUNPRO. It was actually this change < https://github.com/boostorg/predef/commit/58c23226b1ebed2579d0f3296faaff958f...
I think I know what is wrong in the predef-check functionality. In my VMD jamfile the use of predef-check, for any given compile or run rule, looks like: [ predef-check "BOOST_COMP_GNUC >= 4.3" "BOOST_OS_QNX == 0" : : <cxxflags>-std=c++0x ] What I am seeing is that except on QNX, where "BOOST_OS_QNX != 0", the '-std=c++0x' is always being added as a C++ compiler flag to the command line. This initially suggests to me that you are treating more than one quoted predef definition as an OR gate rather than an AND gate. But note that on QNX, where where "BOOST_OS_QNX != 0" and "BOOST_COMP_GNUC >= 4.3" is true, the '-std=c++0x' is not being added. So your logic seems to be that as you go through multiple predef definitions once you hit a 'true' condition you choose the 'true' path as long as no 'false' conditions follow it, else you choose the 'false' path. Please see if you can fix this given this clue about how predef-check is working for the VMD regression tests on various platforms/compilers.