Task #3599
closedDrop build support for Ubuntu 12.04
100%
Description
Per platform policy, Ubuntu 12.04 support should be dropped when Ubuntu 16.04 is released.
Updated by Junxiao Shi over 8 years ago
- Blocked by Task #3360: Transition to trusty instance of Travis-CI added
Updated by Junxiao Shi over 8 years ago
- Blocked by Task #3386: Move code coverage check to Ubuntu 14.04 added
Updated by Junxiao Shi over 8 years ago
- Blocks Task #2513: Optimize multi-threaded logging using lock-free queue and separate thread added
Updated by Junxiao Shi over 8 years ago
- Related to Task #3600: Jenkins: Ubuntu 16.04 slave added
Updated by Davide Pesavento over 8 years ago
Does this apply to ndn-cxx as well or just NFD?
Updated by Davide Pesavento over 8 years ago
- Status changed from New to In Progress
Updated by Junxiao Shi over 8 years ago
Answer to note-5:
ndn-cxx is a platform project so it conforms to the same policy.
Updated by Davide Pesavento over 8 years ago
- Status changed from In Progress to Code review
- % Done changed from 70 to 100
Updated by Junxiao Shi over 8 years ago
- Status changed from Closed to Feedback
I notice that .waf-tools/type_traits.py
is no longer necessary because our lowest platforms OSX 10.9 and Ubuntu 14.04 both support all checked features.
Some (but not all) features in ./waf-tools/compiler-features.py
also becomes unnecessary to condition on.
http://jenkins.named-data.net/job/ndn-cxx/3608/OS=Ubuntu-14.04-32bit/consoleText
Checking for std::is_default_constructible : yes
Checking for std::is_nothrow_move_constructible : yes
Checking for std::is_nothrow_move_assignable : yes
Checking for friend typename-specifier : yes
Checking for std::to_string : yes
Checking for std::vector::insert with const_iterator : no
http://jenkins.named-data.net/job/NFD/3981/OS=Ubuntu-14.04-32bit/consoleText
Checking for std::is_default_constructible : yes
Checking for std::is_move_constructible : yes
These are deleted in ndn-cxx https://gerrit.named-data.net/2944 and NFD https://gerrit.named-data.net/2945.
Updated by Junxiao Shi over 8 years ago
These checks don't hurt and I don't see the advantage in dropping them. Remember that there are other platforms beyond the supported ones, such as Android or uclibc/musl-based embedded systems, that we should care about. Also, compiler version != standard library capabilities, there are platforms that ship with a recent gcc version but a different standard library that is lagging behind libstdc++.
I partially disagree with this.
FRIEND_TYPENAME
is a compiler feature, not standard library capability.- NFD-Android uses
gnustl_shared
which is libstdc++-v3.
The harm of keeping those is: there's no effective way to prevent a developer from using std::is_default_constructible
, etc directly without wrapping with a #ifdef
, because every platform on Jenkins will successfully build the code.
Updated by Davide Pesavento over 8 years ago
Junxiao Shi wrote:
FRIEND_TYPENAME
is a compiler features, not standard library capability.
I'd be ok with removing this check. (assuming it's supported by MSVC)
- NFD-Android uses
gnustl_shared
which is libstdc++-v3.
Yeah but some features depend on the C library used, e.g. glibc vs musl vs bionic etc...
Let me remind you that one of the goals of v0.5 is expanding the actively supported platforms to mobile and embedded devices. I'm not against removing unnecessary cruft, but first make sure you're not making it harder to support those platforms down the road.
The harm of keeping those is: there's no effective way to prevent a developer from using
std::is_default_constructible
, etc directly without wrapping with a#ifdef
, because every platform on Jenkins will successfully build the code.
Of course it would be better to have more extensive CI coverage, but keeping the checks doesn't make the situation any worse. Removing them, on the other hand, creates more work in case we need to re-introduce them later when we extend the support to more platforms.