Giter Club home page Giter Club logo

Comments (13)

traversaro avatar traversaro commented on September 17, 2024 4

First related PR: #91 .

from abb_libegm.

gavanderhoorn avatar gavanderhoorn commented on September 17, 2024 3

Of course, there is no hurry.

Some things are more important.

from abb_libegm.

gavanderhoorn avatar gavanderhoorn commented on September 17, 2024 1

s/Boost/std/g

This is probably the most important and under some aspects non-trivial change. As soon as it is clear that C++98 compatibility can be dropped [..]

We're currently targetting Kinetic and Melodic, mostly, here.

Kinetic allows to set the minimum level of C++ to c++11.

We have no (and don't state any) requirement to be c++98 compatible afaik.

@jontje ?

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024 1

@traversaro can you provide link(s) to the changes? I just want to skim through them.

There are links to the relevant commit in the issue #70 (comment) , if you tell us what are the changes you are first interested in we can prepare clean PRs/patches .

from abb_libegm.

jontje avatar jontje commented on September 17, 2024 1

There are links to the relevant commit in the issue #70 (comment) , if you tell us what are the changes you are first interested in we can prepare clean PRs/patches .

Regarding the code changes, then I think it would be reasonable to do it in this order:

  1. Remove the boost::math dependency by implementing the quaternion conjugate operation, which should be straight-forward.
  2. Replace as much as possible of the boost components with std components (i.e. the non-asio components).
  3. Finally consider replacing boost::Asio with standalone Asio.

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024

Hi @gavanderhoorn , we are definitely interested in providing the fix upstream, especially because that would reduce the maintenance effort for us in the long term.

windows build fixes (I don't believe we currently target Windows too much, but it'd be good to try and be nice to other users)

Most of those are just earlier versions of #63 , so I think there is not a lot to port.

s/Boost/std/g

This is probably the most important and under some aspects non-trivial change. As soon as it is clear that C++98 compatibility can be dropped, I would be happy to provide the PRs to migrate away from boost. Note that if you want to avoid Boost completely we need at least do depend on standalone Asio and this may be desirable or not depending on the use case.
In theory to avoid depending on boost::math we used Eigen, but that can probably be avoided as the only operation used is actually the equation conjugate, that is trivial to implement.

Relevant commits (pay attention as we have also subsequent bug fixes not squashed):

Protobuf related changes/fixes (although we need to maintain bw-compatibility with CMake 3.6 for now)

Yes, there are some strange issues on the location of protobuf generated files with recent protobuf and CMAke versions, probably setting up a CI job that consumes dependencies from vcpkg is the best way to highlight those issues (see iit-danieli-joint-lab@f80b8b1).

changes to better support cross-compilation

Those are a bit tricky, because you need to define how to handle the code generation with an external protoc, and unfortunately probably this requires changes in the FindProtobuf.cmake shipped with CMake, or with the ProtobufConfig.cmake shipped with Protobuf itself, and especially protobuf upstream is simply ignoring issues regarding non-standard platforms (see for example protocolbuffers/protobuf#4198 ). The alternative that we used is to incude the generated files directly in the source, but unfortunatly this only works for a given version of protobuf. Related ign-msgs issue: https://bitbucket.org/ignitionrobotics/ign-msgs/issues/34/add-support-for-cross-compilation .

from abb_libegm.

jontje avatar jontje commented on September 17, 2024

We have no (and don't state any) requirement to be c++98 compatible afaik.

@jontje ?

There is no such requirement.

s/Boost/std/g

This is probably the most important and under some aspects non-trivial change. As soon as it is clear that C++98 compatibility can be dropped, I would be happy to provide the PRs to migrate away from boost.

I would be glad to see those changes; I have had that on my agenda for years, but no time for it ๐Ÿ˜„ @traversaro can you provide link(s) to the changes? I just want to skim through them.

from abb_libegm.

gavanderhoorn avatar gavanderhoorn commented on September 17, 2024

@traversaro: the Windows build related changes may be easiest / most stand-alone?

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024

@traversaro: the Windows build related changes may be easiest / most stand-alone?

As far as I remember the Windows-related changes are due to the use of a newer protobuf (3.11) installed by vcpkg, see iit-danieli-joint-lab#2 . Interestingly, currently Debian sid and Ubuntu 20.04 still ship protobuf 3.6, so even on 20.04 you will not experience the issue. I would be happy to start tackling those one, but without having a CI that covers the Windows compilation while installing dependencies with vcpkg it would be quite easy to have regression. I would be happy to add a new GitHub Actions based CI for covering the vcpkg case, but that is yes another thing to maintain so let me know if you are interested in it or not.

from abb_libegm.

gavanderhoorn avatar gavanderhoorn commented on September 17, 2024

@traversaro: would what @jontje suggests be acceptable?

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024

@traversaro: would what @jontje suggests be acceptable?

Totally! Recent events here in Italy kind of changed our workplan, but I think we can start with a PR removing the boost::math depending relatively soon.

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024

Second related PR: #102 .

from abb_libegm.

traversaro avatar traversaro commented on September 17, 2024

Third PR: #103 .

from abb_libegm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.