RFC: Move to C++14

Cemil Azizoglu cemil.azizoglu at canonical.com
Thu Feb 19 14:59:21 UTC 2015


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> 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
>>>
>>> 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
>>>>
>>>> Let me know what you think.
>>>>
>>>> Thanks,
>>>> Alexandros
>>>>
>>>>
>>>
>>
> --
> Mir-devel mailing list
> Mir-devel at lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/
> mailman/listinfo/mir-devel
>



-- 
Cemil Azizoglu
Mir Display Server - Team Lead
Canonical USA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/mir-devel/attachments/20150219/b45361f1/attachment.html>


More information about the Mir-devel mailing list