Project

General

Profile

Pull request #220

Avoid c++11 in py-pinocchio when it's not necessary

Added by Guilhem Saurel 2 months ago. Updated 6 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Repository URL:
https://github.com/nim65s/robotpkg
Repository branch:
e40349213ba08fe53dc9df763e3c4c44818d5049

Description

Hi,

We recently agreed on using c++11 for math/py-pinocchio, but this it looks like some users have issues with that.
Here is a workaround.

History

#1

Updated by Anthony Mallet 2 months ago

This does not work: dependencies are resolved in a single pass, so
when PKGVERSION.urdfdom is defined, the
DEPEND_ABI.boost-headers += boost-headers>=1.55 is not taken into
account anymore.

#2

Updated by Anthony Mallet 6 days ago

Now that pinocchio explicitly wants C++11 (at least on all supported
platforms), I guess this issue becomes irrelevant?

#3

Updated by Guilhem Saurel 6 days ago

Pinocchio did not change anything on this point I think, and I don't agree with d9e529578d1026f0553ea7c432e4c69d6c66b8e1, because this header is required only if PINOCCHIO_WITH_CXX11_SUPPORT is defined:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/math/tensor.hpp#L11
And this should be automatically defined if we compile with C+++11:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/macros.hpp#L9

So yes, now, if we compile pinocchio in C++11, we require Eigen >= 3.3.

Still, I don't have a solution for this issue, and I'd be in favor of including c++11.mk anyway, even if this require users to compile dependent libraries with c++11 where it might not be absolutely required. But in those cases, the user is also free to compile pinocchio from source, as we would be missing too much functionalities in the binary release if we really wanted to stick with C++98, and this would add way too much complexity to provide binary version with and without c++11.

#4

Updated by Anthony Mallet 6 days ago

On Wednesday 4 Dec 2019, at 14:46, Guilhem Saurel wrote:

And this should be automatically defined if we compile with C+++11:
https://github.com/stack-of-tasks/pinocchio/blob/v2.2.1/src/macros.hpp#L9

OK, now I understand : py-pinocchio was failing with g++-4.9 and
eigen<3.3 because it is C++11 enabled (because of urdfdom >=
1). That's why I put requirement on eigen3>=3.3 in pinocchio itself, I
tought it was the same.

But due to the magic macro the packages would not be the same
depending on the compiler, it's not really nice either.

So yes, now, if we compile pinocchio in C++11, we require Eigen

= 3.3.

In practice, this just disables debian 8 compared to previous status.

#5

Updated by Anthony Mallet 6 days ago

Pinocchio did not change anything on this point I think, and I don't agree with d9e529578d1026f0553ea7c432e4c69d6c66b8e1

Please revert it if needed.

Also available in: Atom PDF