Comments (7)
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.
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.
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.
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.
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.
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.
Original comment by Mark Moll (Bitbucket: mamoll, GitHub: mamoll).
For future reference:
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)
- New Planner in Python HOT 2
- RRT* often does not find a path with more time than RRT HOT 2
- ompl.util._util error HOT 2
- ss.getSolutionPath().asGeometric().printAsMatrix()
- Segmentation fault (core dumped) while using pre-built Python wheel `ompl-1.6.0-cp38-cp38-manylinux_2_28_x86_64` HOT 1
- No QRRT in python
- Unreachable URL for SPOT
- No to_python (by-value) converter found for C++ type: std::pair<bool, bool> HOT 1
- libompl.so cannot be found HOT 1
- Segmentation fault when using ompl::tools:ParallelPlan in Python HOT 3
- AttributeError:module 'ompl.geometric' has no attribute 'vectorSpaceInformation'
- Setting up start and goal state in CompoundStateSpace() HOT 2
- When s0 is a state on the path, why is the cost from s0 to postemp not considered when calculating the cost from s0 to s1? HOT 1
- Implementation of Constraints on the SolutionPath HOT 3
- Crash on an Arm board HOT 1
- STRRTstar module 'ompl.base' has no attribute 'SpaceTimeStateSpace'
- Problem on multi-agent planning with SE2MultiRigidBodyPlanning HOT 2
- change only one dimension between states?
- Extension to other samplers in SE2MultiRigidBodyPlanning.cpp
- Use cache to speed up CI for Python wheels HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ompl.