RFC: Move to C++14

Daniel van Vugt daniel.van.vugt at canonical.com
Fri Feb 20 01:03:01 UTC 2015


IMHO needing PPAs is less preferable to just working out-of-the box. I 
was aiming for and achieved the latter. Also PPAs don't help non-deb 
distros, which we should be mindful of (and have achieved in desrt's 
work on Fedora).

But I'm over it. We all have plenty of other things to worry about.

In future when we have products based on an Ubuntu LTS series, then it 
will be more of an issue. But for now we're safe -- even our RTMs are 
based on fairly recent releases. It's not a major problem yet.


On 19/02/15 22:59, Cemil Azizoglu wrote:
> Trusty is not dropped. At least, not because we have moved to C++14. If
> supporting Trusty were as simple as having compiler support, we already
> have that with the PPA for 4.9 Chris pointed out. Though, other reasons
> making that support difficult remain. But those are not related to the
> choice of compiler.
>
> Thanks,
> Cemil
>
>
> On Wed, Feb 18, 2015 at 8:12 PM, Daniel van Vugt
> <daniel.van.vugt at canonical.com <mailto:daniel.van.vugt at canonical.com>>
> wrote:
>
>     We do seem to be guilty of having the same conversations in multiple
>     different places a lot :)
>
>     Just FYI, the nail is in the coffin. C++14 support landed last
>     night. So trusty is dropped I guess.
>
>
>
>     On 18/02/15 12:43, Daniel van Vugt wrote:
>
>         As a compromise why don't we say Mir supports the latest LTS only?
>
>         So 14 months from now, we'll be free to jump to C++14 (and it
>         will be
>         more mature in implementation by then). But until then, we would
>         stick
>         to C++11 for trusty.
>
>
>
>         On 18/02/15 09:39, Daniel van Vugt wrote:
>
>             I think this is a bad idea.
>
>             Supporting trusty with the latest Mir is presently easy, as
>             demonstrated:
>             https://code.launchpad.net/~__vanvugt/mir/revive-trusty/+__merge/249789
>             <https://code.launchpad.net/~vanvugt/mir/revive-trusty/+merge/249789>
>
>             Using newer language specs I think is contrary to
>             engineering maturity.
>             Because it means we knowingly and needlessly reduce the
>             number of
>             distros Mir can support. And we also make the learning curve
>             for people
>             even steeper (fewer C++ developers know the new language
>             features).
>
>             Overall this will lead to reduced adoption by users and reduced
>             participation by developers. We need to be careful and draw
>             the line
>             somewhere... stop upgrading to the latest C++ every time one
>             comes along.
>
>             - Daniel
>
>
>             On 17/02/15 20:37, Alexandros Frantzis wrote:
>
>                 Hi all,
>
>                 I think it's to time to consider moving from C++11 to
>                 C++14 (at least
>                 the C++14 features our compilers support). C++14 offers
>                 some useful
>                 improvements over C++11, like:
>
>                 * std::make_unique()
>                 * standard literal suffixes for std::chrono (e.g. auto
>                 delay = 10ms;)
>                 * std::shared_timed_mutex (aka RW mutex)
>                 * generic lambdas
>                 * lambda capture initializers (which, importantly, allow
>                 moving values
>                 into
>                     lambdas)
>
>                 Moving to C++14 means that we will not be able to build
>                 Mir on a
>                 pristine Ubuntu LTS 14.04 system. Note that, even now,
>                 Mir cannot be
>                 fully built on the LTS because of changes in the Android
>                 interfaces. As
>                 things currently stand, I believe that dropping support
>                 for 14.04 builds
>                 in order to allow C++14 is a worthy trade-off.
>
>                 In addition, not supporting 14.04 builds means that we
>                 will be able to
>                 use all the new features of other libraries we depend
>                 on, e.g.
>                 gmock/gtest.
>
>                 It's also worth noting that our packages depend on
>                 g++-4.9 (which
>                 supports the C++14 features we want).
>
>                 I have published an MP introducing C++14 into our codebase:
>
>                 https://code.launchpad.net/~__afrantzis/mir/introduce-c++14/__+merge/249988
>                 <https://code.launchpad.net/~afrantzis/mir/introduce-c++14/+merge/249988>
>
>                 Let me know what you think.
>
>                 Thanks,
>                 Alexandros
>
>
>
>
>     --
>     Mir-devel mailing list
>     Mir-devel at lists.ubuntu.com <mailto:Mir-devel at lists.ubuntu.com>
>     Modify settings or unsubscribe at:
>     https://lists.ubuntu.com/__mailman/listinfo/mir-devel
>     <https://lists.ubuntu.com/mailman/listinfo/mir-devel>
>
>
>
>
> --
> Cemil Azizoglu
> Mir Display Server - Team Lead
> Canonical USA



More information about the Mir-devel mailing list