Task #1930
closedCompile in C++11
Added by Junxiao Shi over 9 years ago. Updated over 9 years ago.
100%
Description
Given that all supported platforms have C++11 enabled compilers, we should compile ndn-cxx
in C++11 mode, and allow C++11 features to be used in code.
Updated by Junxiao Shi over 9 years ago
20140825 conference call discussed this problem.
Benefits of allowing C++11:
- save time in
ndn-cxx
development:- developers don't have to write out a complex type but can use auto variables
- lambda functions make the code easier to write and read
- better performance
- move constructors reduce copying
Concerns of allowing C++11:
- difficulty in backporting into older systems and embedded systems
- We should survey NDNcomm2014 participants to make a decision (#1929)
Updated by Junxiao Shi over 9 years ago
Have we reached consensus on this?
Please announce the C++11 transition plan on nfd-dev, along with evidence collected in #1929.
Give people 5 days to comment. If there's no objection before deadline, the plan can proceed.
Updated by Junxiao Shi over 9 years ago
- Estimated time set to 6.00 h
20141020 conference call approves this Task.
Reasons for this approval are: it makes our development more efficient, and there's no major objection.
The following procedure is recommended to minimize impact:
- make a Change for ndn-cxx to always compile in C++11 mode; upload this Change to Gerrit, but don't merge it
- send announcement to ndn-lib and nfd-dev mailing list to announce this change with a link to the Gerrit Change, and allow at least 60 hours for users to update their code if they break when compiled in C++11 mode
- test compilation in owned projects (NFD, NLSR, repo-ng, ndndump, ndn-tlv-ping, ndn-traffic-generator, ndns), and fix any problem discovered
- the Change for ndn-cxx can be merged after all owned projects are fixed, and the deadline in the announcement is passed
Note: in step 3, if a problem is discovered but the Assignee cannot fix it, please report a Bug to the relevant project, and make that Bug block this Task.
Updated by Davide Pesavento over 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
http://gerrit.named-data.net/1191 implements the needed changes for ndn-cxx.
Updated by Davide Pesavento over 9 years ago
- % Done changed from 30 to 50
NFD http://gerrit.named-data.net/1335
ndndump http://gerrit.named-data.net/1344 (already merged)
Updated by Junxiao Shi over 9 years ago
Are the following projects tested with C++11?
- NLSR
- repo-ng
- ndn-tlv-ping
- ndn-traffic-generator
- ndns
Note: test on default branch only; don't consider unmerged Changes
If no change is needed, post a note to indicate so.
Updated by Alex Afanasyev over 9 years ago
Not tested and some changes needed (at least with NLSR).
ndn-cxx is not yet fully ready, at least not on OSX 10.8
Updated by Junxiao Shi over 9 years ago
The feedback deadline in announcement email has passed. The announcement is no longer blocking the Merge.
Updated by Vince Lehman over 9 years ago
NLSR has not been tested with the update for c++11.
Updated by Junxiao Shi over 9 years ago
20141029 conference call decides that:
- It's acceptable to require OSX 10.8 users to compile dependencies from source. README should be provided to outline the steps to build dependencies on OSX 10.8
- C++11 commit for ndn-cxx should be merged immediately without waiting for other owned projects to be ready, so that other ndn-cxx tasks can proceed. Affected projects should be fixed urgently. We have given a 60-hour notice already, and the deadline has passed as of Oct 29 15:00 UTC.
Updated by Davide Pesavento over 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 60 to 100
Updated by Davide Pesavento over 9 years ago
- Status changed from Resolved to Closed