Project

General

Profile

Actions

Task #1930

closed

Compile in C++11

Added by Junxiao Shi over 9 years ago. Updated over 9 years ago.

Status:
Closed
Priority:
Normal
Category:
Base
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

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.

Actions #2

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)
Actions #3

Updated by Davide Pesavento over 9 years ago

Have we reached consensus on this?

Actions #4

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.

Actions #5

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:

  1. make a Change for ndn-cxx to always compile in C++11 mode; upload this Change to Gerrit, but don't merge it
  2. 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
  3. test compilation in owned projects (NFD, NLSR, repo-ng, ndndump, ndn-tlv-ping, ndn-traffic-generator, ndns), and fix any problem discovered
  4. 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.

Actions #6

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.

Actions #7

Updated by Davide Pesavento over 9 years ago

  • % Done changed from 30 to 50
Actions #8

Updated by Davide Pesavento over 9 years ago

  • % Done changed from 50 to 60

Announcement sent

Actions #9

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.

Actions #10

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

Actions #11

Updated by Junxiao Shi over 9 years ago

The feedback deadline in announcement email has passed. The announcement is no longer blocking the Merge.

Actions #12

Updated by Vince Lehman over 9 years ago

NLSR has not been tested with the update for c++11.

Actions #13

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.
Actions #14

Updated by Davide Pesavento over 9 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 60 to 100
Actions #15

Updated by Davide Pesavento over 9 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF