Skip to content
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

Merged
merged 2 commits into from
Jan 4, 2014
Merged

adding indigo section #64

merged 2 commits into from
Jan 4, 2014

Conversation

tfoote
Copy link
Member

@tfoote tfoote commented Nov 13, 2013

No description provided.

- Ubuntu Saucy (13.10)
- Ubuntu Trusty (14.04 LTS)
- C++03
- Boost 1.48
Copy link
Contributor

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:

http://packages.ubuntu.com/saucy/libboost-all-dev

Copy link
Member Author

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

Copy link
Member

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.

Copy link
Contributor

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.

@tfoote
Copy link
Member Author

tfoote commented Nov 13, 2013

Updated to have cmake 2.8.11 and boost 1.53

-----------------------
- Ubuntu Saucy (13.10)
- Ubuntu Trusty (14.04 LTS)
- C++03
Copy link
Contributor

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?

Copy link
Contributor

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).

Copy link
Contributor

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 ...).

Copy link
Contributor

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?

Copy link
Contributor

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.

Copy link
Contributor

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

Copy link
Contributor

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.

Copy link
Contributor

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.

Copy link
Contributor

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.

Copy link
Member

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.
@dirk-thomas
Copy link
Member

+1

1 similar comment
@wjwwood
Copy link
Contributor

wjwwood commented Dec 31, 2013

+1

tfoote added a commit that referenced this pull request Jan 4, 2014
adding indigo section

It looks like we've reached consensus. Merging.
@tfoote tfoote merged commit c6c7b70 into master Jan 4, 2014
@tfoote tfoote deleted the indigo_update branch January 4, 2014 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants