[Review] Phoenix V3: Mini-review starts February 20th

Hi all, Thomas Heller worked hard to address the outstanding issues of the original Phoenix review. He ported Phoenix to Boost.Proto. As mandated by the original Boost review, we will conduct a mini-review of his Phoenix V3 library. This mini-review starts today, February 20th, 2011 and ends on March 2nd, 2011. ------------------ About the library: The Phoenix library enables FP techniques such as higher order functions, lambda (unnamed functions), currying (partial function application) and lazy evaluation in C++. The focus is more on usefulness and practicality than purity, elegance and strict adherence to FP principles. Phoenix is a very important infrastructure library. It is currently a utility library included with Spirit V2 and therefore is already available for years from the latest Boost distributions (headers: $BOOST_ROOT/boost/spirit/home/phoenix, docs: $BOOST_ROOT/libs/spirit/phoenix, or http://www.boost.org/doc/libs/1_45_0/libs/spirit/phoenix/index.html) ------------------ The code of new Phoenix V3 (that's what we mini-review) can be found at: https://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/ the documentation is at: http://svn.boost.org/svn/boost/sandbox/SOC/2010/phoenix3/libs/phoenix/doc/ht ml/index.html ------------------ Here are the questions raised during the initial review of Phoenix in September 2008 (see here: http://thread.gmane.org/gmane.comp.lib.boost.devel/180753): <quote> We will have a mini review before Phoenix gets merged to SVN to make sure whether the feedback from the v2 review was accommodated. Additionally this review will have to discuss: - the breaking interface changes from v2 - the migration path from boost::bind and lambda to Phoenix - how the interoperability with std::bind is solved (result_of semantics) - C++0x features such as rvalue references and variadic templates - the new extensibility mechanism - unified placeholders and interoperability issues with other Proto-based DSELs (such as Spirit.Qi, Spirit.Karma, and Xpressive) - compile times </quote> Please note that Phoenix already has been accepted as a Boost library. We don't vote about that anymore. The purpose of this mini-review is to discuss if the newly rewritten Phoenix V3 addresses the outstanding issues from the main review. In the end I will have to make the decision whether to include the new library into SVN trunk. I really hope to see your participation in the discussions on the Boost mailing lists! Regards Hartmut Review Manager --------------- http://boost-spirit.com

On Mon, Feb 21, 2011 at 9:32 AM, Hartmut Kaiser <hartmut.kaiser@gmail.com>wrote:
Hi, I am making a comparison between PhoenixV2 and PhoenixV3 documentation to realize what features were added. Is there a "What's new" page to indicate these differences? On the other hand, I read some comments in the Boost mailing list about the possibility of Lisp Macro Capability using PhoenixV3. Are there examples and documentation of this? Thank you all for your excellent work! Regards, Fernando Pelliccioni.

On 02/21/11 06:32, Hartmut Kaiser wrote:
I've downloaded the library to: ~/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC/2010/phoenix3 However, when I tried to run the tests in the: libs/phoenix/test/ subdirectory, I got: Compilation started at Sat Feb 26 09:48:50 bjam sh: icpc: not found error: Unable to find file or target named error: '/boost/thread' error: referred from project at error: '.' Compilation exited abnormally with code 1 at Sat Feb 26 09:48:52 How can i fix that? TIA. -Larry

On Saturday, February 26, 2011 05:01:29 PM Larry Evans wrote:
I don't know. it is something with jam and boost and the code being in a different directory (sadly, i am not a boost build expert). I commented the affected testcase. The error should be gone now.

On 02/26/11 10:52, Thomas Heller wrote:
Yes, that error is gone; however: Welcome to the Emacs shell ~/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC/2010/phoenix3 $ svn update U libs/phoenix/test/Jamfile U libs/phoenix/doc/inside.qbk U libs/phoenix/doc/html/phoenix-doc_HTML.manifest U libs/phoenix/doc/html/index.html U libs/phoenix/doc/html/phoenix/examples.html U libs/phoenix/doc/html/phoenix/starter_kit/lazy_operators.html U libs/phoenix/doc/html/phoenix/starter_kit/values.html U libs/phoenix/doc/html/phoenix/starter_kit/lazy_functions.html U libs/phoenix/doc/html/phoenix/starter_kit.html U libs/phoenix/doc/html/phoenix/basics.html U libs/phoenix/doc/html/phoenix/organization.html U libs/phoenix/doc/html/phoenix/modules/core/values.html U libs/phoenix/doc/html/phoenix/modules/core/references.html U libs/phoenix/doc/html/phoenix/modules/core/arguments.html U libs/phoenix/doc/html/phoenix/modules/operator.html U libs/phoenix/doc/html/phoenix/modules/stl/container.html U libs/phoenix/doc/html/phoenix/modules/stl/algorithm.html U libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression.html U libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext.html U libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_ext_vararg.html U libs/phoenix/doc/html/phoenix/inside/expression/boost_phoenix_define_expression_vararg.html U libs/phoenix/doc/html/phoenix/inside/expression.html U libs/phoenix/doc/html/phoenix/inside/actions.html U libs/phoenix/doc/html/phoenix/inside/actor.html U libs/phoenix/doc/html/phoenix/inside/custom_terminals.html U libs/phoenix/doc/html/phoenix/inside/placeholder_unification.html U libs/phoenix/doc/html/phoenix/inside.html U libs/phoenix/doc/html/phoenix/examples/extending_actors.html U libs/phoenix/doc/inside/placeholder.qbk Updated to revision 69312. ~/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC/2010/phoenix3 $ cd libs/phoenix/test/ ~/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC/2010/phoenix3/libs/phoenix/test $ bjam sh: icpc: not found ...patience... ...found 2462 targets... ...updating 1127 targets... common.mkdir bin common.mkdir bin/exceptions.test common.mkdir bin/exceptions.test/gcc-4.5.1v common.mkdir bin/exceptions.test/gcc-4.5.1v/debug common.mkdir bin/exceptions.test/gcc-4.5.1v/debug/statement gcc.compile.c++ bin/exceptions.test/gcc-4.5.1v/debug/statement/exceptions.o statement/exceptions.cpp:12:34: fatal error: boost/phoenix/core.hpp: No such file or directory compilation terminated. Which is probably another bjam mystery. Any bjam expert help would be appreciated. -Larry

On 02/26/11 14:22, Larry Evans wrote:
I abbreviated the bjam output. It also included:
shwoing that only the boost trunk was included. Obviously, there's a missing -I for the phoenix include directory. I would have thought the Jamfile.v2 or some other .jam file further up in the project directory would have made that a requirement. The Jamroot.jam in the phoenix3 directory does have: project phoenix : requirements <include>$(boost) ; but apparently that's not having the desired effect :(

On 02/26/11 14:54, Larry Evans wrote: [snip]
Changing that requirements line to: project phoenix : requirements <include>$(boost) <include>. ; solved the problem of the missing core.hpp file; however: default-directory: "~/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC/2010/phoenix3/libs/phoenix/test/" -*- Compilation started at Sat Feb 26 15:04:36 bjam /home/evansl/prog_dev/boost-svn/ro/trunk warning: No toolsets are configured. warning: Configuring default toolset "gcc". warning: If the default is wrong, your build may not work correctly. warning: Use the "toolset=xxxxx" option to override our guess. warning: For more configuration options, please consult warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html ...patience... ...patience... ...found 2923 targets... ...updating 532 targets... gcc.compile.c++ bin/container_tests1a.test/gcc-4.4.3/debug/container/container_tests1a.o In file included from /home/evansl/prog_dev/boost-svn/ro/trunk/boost/proto/matches.hpp:33, from ../../../boost/phoenix/core/meta_grammar.hpp:15, from ../../../boost/phoenix/core/is_nullary.hpp:15, from ../../../boost/phoenix/core/actor.hpp:18, from ../../../boost/phoenix/core.hpp:12, from container/container_tests.hpp:11, from container/container_tests1a.cpp:7: /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_TUPLE_ELEM_2_0" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given ... followed by several other error messages. Any ideas what's wrong? -Larry

On 02/26/2011 01:08 PM, Larry Evans wrote:
Hi Larry - FWIW, I think most of us test libraries under review by placing them within a boost source tree. Is there a reason that this approach is not acceptable? michael -- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com

On 02/26/11 15:25, Michael Caisse wrote:
Well, I just hadn't thought of that. IOW, I'd move: /home/evansl/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC /2010/phoenix3/libs/phoenix to: /home/evansl/prog_dev/boost-svn/ro/trunk/libs/phoenix and: /home/evansl/prog_dev/boost-svn/ro/trunk/sandbox/ro/SOC /2010/phoenix3/boost/phoenix to: /home/evansl/prog_dev/boost-svn/ro/trunk/boost/phoenix and then run the tests? Would the svn update still work?

On 02/26/11 15:55, Larry Evans wrote:
However, I'm not sure that would avoid the error messages I last reported: gcc.compile.c++ bin/container_tests1a.test/gcc-4.4.3/debug/container/container_tests1a.o In file included from /home/evansl/prog_dev/boost-svn/ro/trunk/boost/proto/matches.hpp:33, from ../../../boost/phoenix/core/meta_grammar.hpp:15, from ../../../boost/phoenix/core/is_nullary.hpp:15, from ../../../boost/phoenix/core/actor.hpp:18, from ../../../boost/phoenix/core.hpp:12, from container/container_tests.hpp:11, from container/container_tests1a.cpp:7: /home/evansl/prog_dev/boost-svn/ro/trunk/boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_TUPLE_ELEM_2_0" requires 2 arguments, but only 1 given The above message does not report any missing .hpp file, it just reports a macro given the wrong number of arguments. How would changing the location of the phoenix files avoid that kind of error? -Larry

On 02/26/11 16:40, Michael Caisse wrote:
Did that, but it doesn't avoid the error messages about macro arity: default-directory: "~/prog_dev/boost-svn/ro/trunk/libs/phoenix/test/" -*- Compilation started at Sat Feb 26 16:54:51 bjam phoenix_core warning: No toolsets are configured. warning: Configuring default toolset "gcc". warning: If the default is wrong, your build may not work correctly. warning: Use the "toolset=xxxxx" option to override our guess. warning: For more configuration options, please consult warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html ...patience... ...found 786 targets... ...updating 10 targets... common.mkdir ../../../bin.v2/libs/phoenix common.mkdir ../../../bin.v2/libs/phoenix/test common.mkdir ../../../bin.v2/libs/phoenix/test/primitives_tests.test common.mkdir ../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3 common.mkdir ../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3/debug common.mkdir ../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3/debug/core gcc.compile.c++ ../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3/debug/core/primitives_tests.o In file included from ../../../boost/proto/matches.hpp:33, from ../../../boost/phoenix/core/meta_grammar.hpp:15, from ../../../boost/phoenix/core/is_nullary.hpp:15, from ../../../boost/phoenix/core/actor.hpp:18, from ../../../boost/phoenix/core/argument.hpp:13, from core/primitives_tests.cpp:10: ../../../boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_TUPLE_ELEM_2_0" requires 2 arguments, but only 1 given ../../../boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given ../../../boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given ../../../boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given ../../../boost/mpl/aux_/template_arity.hpp:86:1: error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given . . . core/primitives_tests.cpp: In function 'int main()': core/primitives_tests.cpp:70: error: no match for call to '(const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tag::terminal, boost::proto::argsns_::term<boost::phoenix::detail::argument<1> >, 0l>
) (const int&)'
"g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -fPIC -DBOOST_ALL_NO_LIB=1 -I"../../.." -c -o "../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3/debug/core/primitives_tests.o" "core/primitives_tests.cpp" ...failed gcc.compile.c++ ../../../bin.v2/libs/phoenix/test/primitives_tests.test/gcc-4.4.3/debug/core/primitives_tests.o... . . .

On 02/26/2011 03:00 PM, Larry Evans wrote:
<snip>
<snip>
primitives_tests compile file for me with the same compiler. Are you sure your trunk is up-to-date? I am running: trunk: 69314 phoenix: boost - 69214 libs - 69307 gcc 4.4.3 and clang 2.9 both compile the primitives_tests ok. I do have 3 other target failing for various reasons that I will post about later. -- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com

On 02/26/11 18:49, Michael Caisse wrote:
I decided to use boost_1_46_0; so, I downloaded the tar file, unpacked it, made bjam. Also, I moved the phoenix boost and lib directorys back to where there were before. Now, at least one test passes:

On Sunday, February 27, 2011 02:40:23 AM Larry Evans wrote:
Yes, phoenix_core only has one test. I have no idea about your other errors ... I just (succesfully) ran all the tests with gcc 4.2, 4.5 and clang 2.8. I am on svn revision 69216 and my working copy is clean.

On 02/27/11 02:49, Thomas Heller wrote:
My trunk was not clean, and that was causing the errors about wrong number of args to a macro. My dirty trunk had: #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS in: boost/mpl/aux_/config/use_preprocessed.hpp Sorry for noise. -Larry
participants (5)
-
Fernando Pelliccioni
-
Hartmut Kaiser
-
Larry Evans
-
Michael Caisse
-
Thomas Heller