Spirit qi recommendations ? (avi)
Hartmut Kaiser wrote:
In order to reduce compile times I have decided to rewrite the parser/grammar from classic to spirit qi (spirit 2.1). My understanding is that faster compiles come from easier modularisation available under spirit qi. (As shown in mini_c example, in the boost tree)
However I need this to be portable to as many platforms as possible. In my case minimum set is Linux,HP-UX, AIX.
We never tried to compile Spirit on AIX/xlc. So any feedback is welcome. Using gcc should be fine.
Steven Watanabe wrote:
The trunk regression tests for spirit with xlc mostly fail with an internal compiler error.
On AIX v10.1 boost 1.39, spirit classic gets stuck in an infinite loop, and spirit qi produces the following even on the simplest of grammars. My plans to migrate to AIX are equally stuck. "/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/component.hpp", line 219.37: 1540-0711 (S) Too few template arguments have been specified. "/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/modifier.hpp", line 83.59: 1540-0711 (S) Too few template arguments have been specified. "/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/attribute_transform.hpp", line 71.17: 1540-0711 (S) Too few template arguments have been specified.
From googling around a similar error was found with boost tuple, (but must have been with a different compiler version) see: http://lists.boost.org/Archives/boost/2004/06/66550.php
I have seen that a new patch for the v10.1 compiler was released in May 2009. I am not sure yet if I can access this patched compiler, If I can will let you know. Best regards, Ta, Avi
We never tried to compile Spirit on AIX/xlc. So any feedback is welcome. Using gcc should be fine.
Steven Watanabe wrote:
The trunk regression tests for spirit with xlc mostly fail with an internal compiler error.
On AIX v10.1 boost 1.39, spirit classic gets stuck in an infinite loop, and spirit qi produces the following even on the simplest of grammars. My plans to migrate to AIX are equally stuck.
"/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/ component.hpp", line 219.37: 1540-0711 (S) Too few template arguments have been specified. "/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/ modifier.hpp", line 83.59: 1540-0711 (S) Too few template arguments have been specified. "/s1a/emos_esuite/emos_data/sms/boost_1_39_0/boost/spirit/home/support/ attribute_transform.hpp", line 71.17: 1540-0711 (S) Too few template arguments have been specified.
Yeah, xlc doesn't like template specializations where the main template has default arguments and those are not explicitly specified for the specializations. Been there... This is almost always fixable by explicitly specifying the default template parameters while specializing the templates, but it makes the code so much more unreadable...
From googling around a similar error was found with boost tuple, (but must have been with a different compiler version) see: http://lists.boost.org/Archives/boost/2004/06/66550.php
I have seen that a new patch for the v10.1 compiler was released in May 2009. I am not sure yet if I can access this patched compiler, If I can will let you know.
Michael Wong (The Intel compiler guy) told me during BoostCon they made good progress with their compiler lately, so this might help. Regards Hartmut
participants (2)
-
Avi Bahra
-
Hartmut Kaiser