Preprocessor lib problems on Solaris (Forte compiler)
I'm using Forte 6 update 2 to compile my code. The preprocessor headers seem to have problems with all the various macros that get defined. These are the errors I'm seeing from compiling libs/preprocessor/test/list.cpp (using command CC -I../../.. list.cpp): /hades03/pegstage/boost/boost_1_29_0/libs/preprocessor/test> /../.. list.cpp < "list.cpp", line 24: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 24: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 24: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 24: Error: BOOST_PP_NIL is not defined. "list.cpp", line 24: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 24: Error: Badly formed expression. "list.cpp", line 25: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 25: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 25: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 25: Error: BOOST_PP_NIL is not defined. "list.cpp", line 25: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 25: Error: Badly formed expression. "list.cpp", line 26: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 26: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 26: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 26: Error: BOOST_PP_NIL is not defined. "list.cpp", line 26: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 26: Error: Badly formed expression. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 28: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 28: Error: BOOST_PP_NIL is not defined. "list.cpp", line 28: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 28: Error: Badly formed expression. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 30: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 30: Error: BOOST_PP_NIL is not defined. "list.cpp", line 30: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 30: Error: Badly formed expression. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 31: Error: BOOST_PP_LIST_FOLD_LEFT_129 is not defined. "list.cpp", line 31: Error: BOOST_PP_NIL is not defined. "list.cpp", line 31: Error: BOOST_PP_TUPLE_EAT_3 is not defined. "list.cpp", line 31: Error: Badly formed expression. "list.cpp", line 33: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 33: Warning: Too few arguments in macro BOOST_PP_CHECK_2. "list.cpp", line 33: Error: BOOST_PP_LIST_FIRST_I is not defined. Compilation aborted, too many Error messages. Any thoughts would be great. -Rob
"Robert A. Reece"
I'm using Forte 6 update 2 to compile my code. The preprocessor headers seem to have problems with all the various macros that get defined. These are the errors I'm seeing from compiling libs/preprocessor/test/list.cpp (using command CC -I../../.. list.cpp):
Robert, try defining this configuration macro before including any headers... #define BOOST_PP_CONFIG_FLAGS() BOOST_PP_CONFIG_BCC() ...and tell me if that works. Paul Mensonides
Paul.
Code compiles clean with that define. Also, as Gennadiy suggested, I'm
going to look at the CVS archives to see how that works out.
Thanks -Rob
"Paul Mensonides"
"Robert A. Reece"
wrote in message news:aqp6dg$ct5$1@main.gmane.org... I'm using Forte 6 update 2 to compile my code. The preprocessor headers seem to have problems with all the various macros that get defined. These are the errors I'm seeing from compiling libs/preprocessor/test/list.cpp (using command CC -I../../.. list.cpp):
Robert, try defining this configuration macro before including any headers...
#define BOOST_PP_CONFIG_FLAGS() BOOST_PP_CONFIG_BCC()
...and tell me if that works.
Paul Mensonides
Info: http://www.boost.org Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl Unsubscribe: mailto:boost-users-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
"Robert A. Reece"
Paul.
Code compiles clean with that define. Also, as Gennadiy suggested, I'm going to look at the CVS archives to see how that works out.
Thanks -Rob
The only major difference in the CVS is that the CVS automatically uses the Borland configuration for Sun's preprocessor. Can you do a small test for me? What is the preprocessed result of this: #define A(x, y) (x, y) #define B(args) A args B(xyz) // ?? This is the essence of the Borland bug. It *should* yield: A xyz Borland, however, yields: Axyz I'm just curious if this is the specific problem with Sun's preprocessor as well. Thanks, Paul Mensonides
In article
The only major difference in the CVS is that the CVS automatically uses the Borland configuration for Sun's preprocessor. Can you do a small test for me? What is the preprocessed result of this:
#define A(x, y) (x, y) #define B(args) A args
B(xyz) // ??
This is the essence of the Borland bug. It *should* yield:
A xyz
Borland, however, yields:
Axyz
I'm just curious if this is the specific problem with Sun's preprocessor as well.
No, the Sun preprocessor bug is similar, but only applies when a macro name is used as an argument to another macro. Thus: #define A(args) args #define B() A(B C) // ? should yield: B C but in fact produces BC Sun has acknowledged the bug (Bug id 4763527). Oddly enough, the _C_ preprocessor does not have this bug. Christopher
"Christopher Currie"
No, the Sun preprocessor bug is similar, but only applies when a macro name is used as an argument to another macro. Thus:
#define A(args) args #define B()
A(B C) // ?
should yield:
B C
but in fact produces
BC
Sun has acknowledged the bug (Bug id 4763527). Oddly enough, the _C_ preprocessor does not have this bug.
Christopher
Thanks Christopher, oddly enough, Borland's command line preprocessor doesn't have the problem that I mentioned before either. In any case, the Borland configuration of the PP lib avoids ever putting an identifier that refers to a macro in front of anything but the parameters they expand against, so the Borland config should work fine. Thanks again for the info, Paul Mensonides
I'm using Forte 6 update 2 to compile my code. The preprocessor
seem to have problems with all the various macros that get defined. These are the errors I'm seeing from compiling
--- In Boost-Users@y..., "Robert A. Reece"
(using command CC -I../../.. list.cpp):
Big thank to Dave A. everything started to work recently. Check the latest cvs Gennadiy.
participants (4)
-
Christopher Currie
-
Gennadiy E. Rozental
-
Paul Mensonides
-
Robert A. Reece