-
Notifications
You must be signed in to change notification settings - Fork 137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
adding indigo section #64
Conversation
- Ubuntu Saucy (13.10) | ||
- Ubuntu Trusty (14.04 LTS) | ||
- C++03 | ||
- Boost 1.48 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this correct?
Looks like Trusty will use 1.54:
https://launchpad.net/ubuntu/trusty/+source/boost-defaults
Saucy appears to use 1.53:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was leaving it lower for other platforms. Though looking at Fedora they're at 1.53 too so we could jump there. https://apps.fedoraproject.org/packages/boost
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As long as there is no important platform which only has an older version we should pick the version available in Saucy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OS X uses 1.54, it seems that 1.53 is pretty standard for anything released in the last 6 months.
Updated to have cmake 2.8.11 and boost 1.53 |
----------------------- | ||
- Ubuntu Saucy (13.10) | ||
- Ubuntu Trusty (14.04 LTS) | ||
- C++03 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since it looks like Saucy and Fedora 19 include GCC 4.8.1, can we also allow C++11 support? What is the support like on OS X?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OS X has fully supported C++11 through clang for two OS versions now. C++11 and the new libc++ (BSD licensed and C++11 strict) standard library is now the default in 10.9 (which has broken lots of things).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 on C++11: it will probably not impact the core packages but let's not limit ourselves for the alpha ROS 2.0 packages that will be created during Indigo (e.g. need of futures/atomic for comm stuff, thread model for nodelet work ...).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also +1 for C++11. Is there any shortcoming to be expected at all?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I favor explicitly supporting both C++03 and C++11 with appropriate #ifdef
where needed.
New code can choose to restrict itself to only C++11, but the base system should remain as portable as reasonably possible.
The C++ rationale section needs updating to explain all that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jack: I have reasons to believe that the base system will build perfectly fine with C++11. There indeed are breaking changes in C++111, but I would bet that most if not all ROS software isn't affected. I don't understand exactly what you mean by both C++03 and C++11
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One question would be whether a move to C++11 would entail the default catkin flags adding "--std=c++11" (and thereby compiling the entire ROS ecosystem under the new standard) or it would simply be a "you may use it if you wish" and let people manually flip it on.
I'd like to be as permissive as possible for user code, so forcing C++11 seems counter-productive.
However, testing with C++11 turned on seems quite worthwhile, so that should be settable at some high level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember that people programming embedded controllers are likely to have much older compilers than the latest Ubuntu distributions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Jack: I have reasons to believe that the base system will build perfectly fine with C++11. There indeed are breaking changes in C++11, but I would bet that most if not all ROS software isn't affected. I don't understand exactly what you mean by both C++03 and C++11
I mean the base code should work on systems without a C++11 compiler. Higher-level code will be free to compromise portability in this time frame by depending on new C++11 features, but it is too soon for the ROS core to burn those bridges. Core use of features not present in C++03 should at least be protected by an appropriate #ifdef
. Better just to wait another year or so.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vrabaud These requirements are specific for Indigo and not related to ROS 2.0 efforts at all. For new development like ROS 2.0 we will very likely define a similar list of requirements but without having to worry about backward compatibility (e.g. Python 3 only).
testing against python 3.3 now recommended.
+1 |
1 similar comment
+1 |
adding indigo section It looks like we've reached consensus. Merging.
No description provided.