Giter Site home page Giter Site logo

Boost.Thread deprecated functions about ompl HOT 7 CLOSED

ompl avatar ompl commented on May 24, 2024
Boost.Thread deprecated functions

from ompl.

Comments (7)

mamoll avatar mamoll commented on May 24, 2024

Original comment by Luis G. Torres (Bitbucket: [Luis Torres](https://bitbucket.org/Luis Torres), ).


I find the main hurdle for adoption of a newer version of Boost to be Ubuntu. As soon as OMPL requires a version of Boost that's ahead of the version on Ubuntu's package repository (1.49 for Ubuntu 13.04), installation of OMPL becomes a much larger pain for the user unless OMPL comes packaged with the necessary version of Boost.

I'd actually be in favor of packaging the most recent version of Boost as an ExternalProject to the OMPL build. This way, users who don't care will have Boost automatically downloaded, built, and linked into OMPL, while users who want more control can simply specify usage of a local Boost distribution as long as they know it's up-to-date.

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).


We'd be responsible for correctly building Boost on all supported OS's (or create prebuilt binaries). This is not fun. In addition, having multiple versions of Boost installed can easily lead to trouble. First, unless the LD_LIBRARY_PATH is set correctly, the wrong Boost .so files will be loaded at runtime. Second, when a user tries to compile some code that uses OMPL as a dependency, they need to make that "our" version of Boost comes first in the include path and the link path. I'd rather spent a bit of time coming up with a code fix that allows continued support of mainstream boost versions instead of dealing with weird compilation / runtime errors.

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Ioan Sucan (Bitbucket: isucan, GitHub: isucan).


We could also switch to std::thread to avoid this, and require C++11. As of gcc 4.8, it seems we can count on lots of good things being available:
http://gcc.gnu.org/projects/cxx0x.html

Unfortunately Ubuntu 12.04, which we need to support at least throughout 2014 comes with gcc 4.6;

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Luis G. Torres (Bitbucket: [Luis Torres](https://bitbucket.org/Luis Torres), ).


I think std::thread/c++11 would be my top choice if it weren't for Ubuntu. =(

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Neil T. Dantam (Bitbucket: ntd, GitHub: ntd).


GCC in current Debian stable (gcc 4.9) and Ubuntu LTS (gcc 4.8) now support C++11. I think a switch from boost::* to std::* wherever possible would ease installation and maintenance, at the cost of dropping support for older platforms.

It looks like std::thread doesn't have a direct equivalent of timed_join, but it would be straightforward to do the same with a timed wait on a condition variable where the condition is flipped when the thread-to-be-joined exits.

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).


I'd be okay with requiring C++11, but let's wait with a C++11 overhaul till after the next release of OMPL (coming within the next few months).

from ompl.

mamoll avatar mamoll commented on May 24, 2024

Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).


For future reference:

http://en.cppreference.com/w/cpp/compiler_support

It is interesting that for GCC the C++11 library support status is only complete as of 5.0. On https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x it says that thread safety is only partially implemented. Not sure what that means.

from ompl.

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.