compile error in rtt 2.0 beta 2

This is the first time I try to build rtt 2.0. My distro is Archlinux. I get a compilation error when trying to build beta 2. This is reported:

Orocos RTT version (1.99.2) No orocos-rtt.cmake file loaded, using default settings.See orocos-rtt.default.cmake -- CMAKE_VERSION: 2.8.1 Boost found in /usr/include Orocos target is gnulinux -- Found PTHREAD -- Detected gcc4: 4.4.3

-- Found Doxygen -- API documentation can be built TLSF settings: -DUSE_SBRK -DUSE_MMAP -D_GNU_SOURCE -DTLSF_STATISTIC Building MQueue Transport library (Requires Boost >= 1.37.0). -- Configuring done -- Generating done -- Build files have been written to: /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2 ==> Building libraries [ 1%] Building CXX object rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/TaskContext.cpp.o In file included from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12, from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40: /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: a function call cannot appear in a constant-expression /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: template argument 1 is invalid /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: expected identifier before ‘::’ token /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: typedef name may not be a nested-name-specifier /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: expected ‘;’ before ‘call_const_0_result’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:56: error: ‘call_const_0_result’ declared as an ‘inline’ field /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:56: error: expected ‘;’ before ‘operator’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:62: error: expected ‘;’ before ‘typedef’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: a function call cannot appear in a constant-expression /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: template argument 1 is invalid /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: expected identifier before ‘::’ token /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: typedef name may not be a nested-name-specifier /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: expected ‘;’ before ‘call_0_result’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:65: error: ‘call_0_result’ declared as an ‘inline’ field /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:65: error: expected ‘;’ before ‘operator’ In file included from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:37, from /usr/include/boost/preprocessor/iteration/detail/iter/forward2.hpp:45, from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:32, from /usr/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp:1289, from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:43, from /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:96, from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12, from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40: /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:128: error: expected ‘;’ before ‘template’ In file included from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:37, from /usr/include/boost/preprocessor/iteration/detail/iter/forward2.hpp:45, from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:32, from /usr/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp:1294, from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:43, from /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:96, from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12, from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44, from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40: /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:128: error: expected identifier before ‘>’ token /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:129: error: template parameters not used in partial specialization: /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:129: error: ‘<anonymous>’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:136: error: expected identifier before ‘>’ token /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:137: error: template parameters not used in partial specialization: /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:137: error: ‘<anonymous>’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:165: error: explicit specialization in non-namespace scope ‘class boost::fusion::unfused_generic<Function>’ /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:165: error: explicit specialization in non-namespace scope ‘class boost::fusion::unfused_generic<Function>’ make[2]: *** [rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/TaskContext.cpp.o] Error 1 make[1]: *** [rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all] Error 2 make: *** [all] Error 2

I have no clue. Anyone an idea?

Theo.

compile error in rtt 2.0 beta 2

On Sun, Apr 11, 2010 at 22:19, <t [dot] j [dot] a [dot] devries [..] ...> wrote:
> This is the first time I try to build rtt 2.0. My distro is Archlinux.
> I get a compilation error when trying to build beta 2.

Which version of boost are you using ?

Peter

compile error in rtt 2.0 beta 2

type: forum
tid: 54
status: 1

compile error in rtt 2.0 beta 2

Hi Theo,

Since the error occurs when reading boost headers, and your boost version is
recent enough (actually more recent than mine...), I believe the problem is or
with gcc or with boost.

You could try to downgrade your boost version to 1.40.0, which is the version
I test against ?

I'll try to test against boost 1.41.0 too.

Peter

On Wednesday 21 April 2010 09:03:42 Vries, Theo J.A. de [imotec bv] wrote:
> boost 1.41.0
>
> On 04/20/10 17:13, Peter Soetens wrote:
> On Sun, Apr 11, 2010 at 22:19, <t [dot] j [dot] a [dot] devries [..] ...> wrote:
>
> This is the first time I try to build rtt 2.0. My distro is Archlinux.
> I get a compilation error when trying to build beta 2.
>
> Which version of boost are you using ?
>
> Peter
>

compile error in rtt 2.0 beta 2

Sorry for the double posts, this seems to happen when I reply via the website...

Unfortunately, I am not able to downgrade right now. I'll try to find another computer.

I have trouble understanding the code in unfused_generic.hpp, Google doesn't help me determining what is wrong with my setup either. As you indicated, it doesn't seem to be an orocos thing. Given the test results of Stephen (thanks!), I would suggest that you don't spend time on this one unless other people start to report similar problems, Peter.

Cheers, Theo.

peter wrote:
Hi Theo,

Since the error occurs when reading boost headers, and your boost version is
recent enough (actually more recent than mine...), I believe the problem is or
with gcc or with boost.

You could try to downgrade your boost version to 1.40.0, which is the version
I test against ?

I'll try to test against boost 1.41.0 too.

Peter

On Wednesday 21 April 2010 09:03:42 Vries, Theo J.A. de [imotec bv] wrote:
> boost 1.41.0
>
> On 04/20/10 17:13, Peter Soetens wrote:
> On Sun, Apr 11, 2010 at 22:19, <t [dot] j [dot] a [dot] devries [..] ...> wrote:
>
> This is the first time I try to build rtt 2.0. My distro is Archlinux.
> I get a compilation error when trying to build beta 2.
>
> Which version of boost are you using ?
>
> Peter
>

Re: compile error in rtt 2.0 beta 2

Just to keep you informed:

I use this simple test program (no orocos involved):

#include <boost/fusion/include/make_unfused_generic.hpp>
#include <iostream>
 
int main()
{
    std::cout << "Hello world";
}

boost 1.37 and 1.40 are ok; 1.41 and 1.42 give the compilation error. I posted to boost-users for further help.

Theo.

compile error in rtt 2.0 beta 2

t [dot] j [dot] a [dot] devries [..] ... wrote:
> Just to keep you informed:
>
> I use this simple test program (no orocos involved):
>
> &#10;&gt; #include &lt;boost/fusion/include/make_unfused_generic.hpp&gt;&#10;&gt; #include &lt;iostream&gt;&#10;&gt;&#10;&gt; int main()&#10;&gt; {&#10;&gt;     std::cout &lt;&lt; &quot;Hello world&quot;;&#10;&gt; }&#10;&gt;
>
> boost 1.37 and 1.40 are ok; 1.41 and 1.42 give the compilation error.
> I posted to boost-users for further help.
>
Same problem with 1.42 here ... Do you have any update on that ?

compile error in rtt 2.0 beta 2

type: forum
tid: 54
status: 1

compile error in rtt 2.0 beta 2

On Tuesday 04 May 2010 11:01:28 Vries, Theo J.A. de [imotec bv] wrote:
> I reported it on the boost mailing list here:
>
> http://article.gmane.org/gmane.comp.lib.boost.user/58011
>
> No one responded up until now :-( .

Try to repost on the boost::spirit mailing list, there's where all the fusion
developers are. I once had a question about fusion and got a very decent
answer on that list.

I can confirm that this is a Boost header problem, not an Orocos/user problem.

Peter

compile error in rtt 2.0 beta 2

Peter Soetens wrote:
> On Tuesday 04 May 2010 11:01:28 Vries, Theo J.A. de [imotec bv] wrote:
>
>> I reported it on the boost mailing list here:
>>
>> http://article.gmane.org/gmane.comp.lib.boost.user/58011
>>
>> No one responded up until now :-( .
>>
>
> Try to repost on the boost::spirit mailing list, there's where all the fusion
> developers are. I once had a question about fusion and got a very decent
> answer on that list.
>
> I can confirm that this is a Boost header problem, not an Orocos/user problem.
>
One thing that is suspicious in the RTT code is the usage of a boost
"blabla/include/*.hpp" header. It may be that this header was not meant
to be used in open code.

In any case, I replaced the include by

boost/fusion/functional/generation/make_unfused.hpp

and used make_unfused_generic by make_unfused and it compiles (not
tested yet, though).

compile error in rtt 2.0 beta 2

On Tuesday 04 May 2010 12:28:01 Sylvain Joyeux wrote:
> Peter Soetens wrote:
> > On Tuesday 04 May 2010 11:01:28 Vries, Theo J.A. de [imotec bv] wrote:
> >> I reported it on the boost mailing list here:
> >>
> >> http://article.gmane.org/gmane.comp.lib.boost.user/58011
> >>
> >> No one responded up until now :-( .
> >
> > Try to repost on the boost::spirit mailing list, there's where all the
> > fusion developers are. I once had a question about fusion and got a very
> > decent answer on that list.
> >
> > I can confirm that this is a Boost header problem, not an Orocos/user
> > problem.
>
> One thing that is suspicious in the RTT code is the usage of a boost
> "blabla/include/*.hpp" header. It may be that this header was not meant
> to be used in open code.

Nope. Both are equivalent, its documented as such in Fusion.

>
> In any case, I replaced the include by
>
> boost/fusion/functional/generation/make_unfused.hpp
>
> and used make_unfused_generic by make_unfused and it compiles (not
> tested yet, though).

diff ?

Hmm. This rings a bell. One of these functions is not present in (not that
much) older boost libraries or has been renamed. I have to check, but I think
I first coded it with make_unfused() and then had to replace it with
make_unfused_generic() because it wouldn't compile with older boost versions.

We can solve this probably with #ifdef'ing the include statement and the code
depending on the Boost version in use.

Peter

Re: compile error in rtt 2.0 beta 2

Sorry for the double posts, this seems to happen when I reply via the website...

Unfortunately, I am not able to downgrade right now. I'll try to find another computer.

I have trouble understanding the code in unfused_generic.hpp, Google doesn't help me determining what is wrong with my setup either. As you indicated, it doesn't seem to be an orocos thing. Given the test results of Stephen (thanks!), I would suggest that you don't spend time on this one unless other people start to report similar problems, Peter.

Cheers, Theo.

peter wrote:
Hi Theo,

Since the error occurs when reading boost headers, and your boost version is recent enough (actually more recent than mine...), I believe the problem is or with gcc or with boost.

You could try to downgrade your boost version to 1.40.0, which is the version I test against ?

I'll try to test against boost 1.41.0 too.

Peter

On Wednesday 21 April 2010 09:03:42 Vries, Theo J.A. de [imotec bv] wrote: > boost 1.41.0 > > On 04/20/10 17:13, Peter Soetens wrote: > On Sun, Apr 11, 2010 at 22:19, <t [dot] j [dot] a [dot] devries [..] ...> wrote: > > This is the first time I try to build rtt 2.0. My distro is Archlinux. > I get a compilation error when trying to build beta 2. > > Which version of boost are you using ? > > Peter >

compile error in rtt 2.0 beta 2

Just to keep you informed:

I use this simple test program (no orocos involved):

&#10;#include &lt;boost/fusion/include/make_unfused_generic.hpp&gt;&#10;#include &lt;iostream&gt;&#10;&#10;int main()&#10;{&#10;    std::cout &lt;&lt; &quot;Hello world&quot;;&#10;}&#10;

boost 1.37 and 1.40 are ok; 1.41 and 1.42 give the compilation error.
I posted to boost-users for further help.

Theo.

compile error in rtt 2.0 beta 2

On Apr 21, 2010, at 05:35 , Peter Soetens wrote:

> Hi Theo,
>
> Since the error occurs when reading boost headers, and your boost version is
> recent enough (actually more recent than mine...), I believe the problem is or
> with gcc or with boost.
>
> You could try to downgrade your boost version to 1.40.0, which is the version
> I test against ?
>
> I'll try to test against boost 1.41.0 too.
>
> Peter
>
> On Wednesday 21 April 2010 09:03:42 Vries, Theo J.A. de [imotec bv] wrote:
>> boost 1.41.0
>>
>> On 04/20/10 17:13, Peter Soetens wrote:
>> On Sun, Apr 11, 2010 at 22:19, <t [dot] j [dot] a [dot] devries [..] ...> wrote:
>>
>> This is the first time I try to build rtt 2.0. My distro is Archlinux.
>> I get a compilation error when trying to build beta 2.
>>
>> Which version of boost are you using ?
>>
>> Peter

I've built against boost 1.42.0 and gcc 4.2.1 on Snow Leopard, and boost 1.40.0 and gcc 4.4.1 on Koala. Both combinations worked fine (as far as things go with the beta).

HTH
Stephen

gentle bump...

gentle bump...

compile error in rtt 2.0 beta 2

This is the first time I try to build rtt 2.0. My distro is Archlinux.
I get a compilation error when trying to build beta 2.
<!--break-->This is reported:

Orocos RTT version (1.99.2)
No orocos-rtt.cmake file loaded, using default settings.See orocos-rtt.default.cmake
-- CMAKE_VERSION: 2.8.1
Boost found in /usr/include
Orocos target is gnulinux
-- Found PTHREAD
-- Detected gcc4: 4.4.3

-- Found Doxygen -- API documentation can be built
TLSF settings: -DUSE_SBRK -DUSE_MMAP -D_GNU_SOURCE -DTLSF_STATISTIC
Building MQueue Transport library (Requires Boost >= 1.37.0).
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2
==> Building libraries
[ 1%] Building CXX object rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/TaskContext.cpp.o
In file included from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12,
from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40:
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: a function call cannot appear in a constant-expression
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: template argument 1 is invalid
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: expected identifier before ‘::’ token
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: typedef name may not be a nested-name-specifier
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:54: error: expected ‘;’ before ‘call_const_0_result’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:56: error: ‘call_const_0_result’ declared as an ‘inline’ field
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:56: error: expected ‘;’ before ‘operator’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:62: error: expected ‘;’ before ‘typedef’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: a function call cannot appear in a constant-expression
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: template argument 1 is invalid
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: expected identifier before ‘::’ token
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: typedef name may not be a nested-name-specifier
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:63: error: expected ‘;’ before ‘call_0_result’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:65: error: ‘call_0_result’ declared as an ‘inline’ field
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:65: error: expected ‘;’ before ‘operator’
In file included from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:37,
from /usr/include/boost/preprocessor/iteration/detail/iter/forward2.hpp:45,
from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:32,
from /usr/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp:1289,
from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:43,
from /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:96,
from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12,
from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40:
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:128: error: expected ‘;’ before ‘template’
In file included from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:37,
from /usr/include/boost/preprocessor/iteration/detail/iter/forward2.hpp:45,
from /usr/include/boost/fusion/functional/adapter/detail/pow2_explode.hpp:32,
from /usr/include/boost/preprocessor/iteration/detail/iter/reverse1.hpp:1294,
from /usr/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:43,
from /usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:96,
from /usr/include/boost/fusion/functional/generation/make_unfused_generic.hpp:12,
from /usr/include/boost/fusion/include/make_unfused_generic.hpp:10,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/../internal/OperationRepositoryPart.hpp:8,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/interface/ServiceProvider.hpp:6,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.hpp:44,
from /home/vri/install/orocos/rtt2/src/orocos-rtt-1.99.2/rtt/TaskContext.cpp:40:
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:128: error: expected identifier before ‘>’ token
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:129: error: template parameters not used in partial specialization:
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:129: error: ‘<anonymous>’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:136: error: expected identifier before ‘>’ token
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:137: error: template parameters not used in partial specialization:
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:137: error: ‘<anonymous>’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:165: error: explicit specialization in non-namespace scope ‘class boost::fusion::unfused_generic<Function>’
/usr/include/boost/fusion/functional/adapter/unfused_generic.hpp:165: error: explicit specialization in non-namespace scope ‘class boost::fusion::unfused_generic<Function>’
make[2]: *** [rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/TaskContext.cpp.o] Error 1
make[1]: *** [rtt/CMakeFiles/orocos-rtt-dynamic_gnulinux.dir/all] Error 2
make: *** [all] Error 2

I have no clue. Anyone an idea?

Theo.
--
Orocos-Dev mailing list
Orocos-Dev [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev

gentle bump...

gentle bump...