Task #1930
closedCompile in C++11
Added by Junxiao Shi about 10 years ago. Updated about 10 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 about 10 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 Davide Pesavento about 10 years ago
Have we reached consensus on this?
Updated by Junxiao Shi about 10 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 about 10 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 about 10 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 about 10 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 about 10 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 about 10 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 about 10 years ago
The feedback deadline in announcement email has passed. The announcement is no longer blocking the Merge.
Updated by Vince Lehman about 10 years ago
NLSR has not been tested with the update for c++11.
Updated by Junxiao Shi about 10 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 about 10 years ago
- Status changed from In Progress to Resolved
- % Done changed from 60 to 100
Updated by Davide Pesavento about 10 years ago
- Status changed from Resolved to Closed