[Development] QList for Qt 6 (was: Re: Build system for Qt 6)

Lars Knoll lars.knoll at qt.io
Fri Nov 2 09:36:59 CET 2018



On 2 Nov 2018, at 09:04, Philippe <philwave at gmail.com<mailto:philwave at gmail.com>> wrote:

I did some benchmarking (as we were worried about the different performance characteristics of QList and QVector) and with the exception of prepending in a loop pretty much all other operations gets faster with this change.

Another exception is certainly the sorting of large objects that are not implicit-shared classes.

True. But for 99% of the cases where QList is being used today performance would probably increase when using a vector instead. That’s especially true when you have objects that are larger than a pointer.

Ok anyway. But keeping the old QList under a new name, cannot harm.

Sure, we can have a Q5List around in Qt 6 times, or people could simply copy the code if they need it.

Much of Qt was built with QList, so QList can't be that bad ;)

That conclusion doesn’t have to be true. But yes, QList was ok, because most of what we put into it were implicitly shared classes. But a QList<QRect> is actually a very bad idea (just to give one example).

Cheers,
Lars


Philippe

On Fri, 2 Nov 2018 07:51:22 +0000
Lars Knoll <lars.knoll at qt.io<mailto:lars.knoll at qt.io>> wrote:

Renaming the subthread (it’s got nothing to do with build systems…)

I believe I have a solution to get rid of QList without breaking SC in any major way. See https://codereview.qt-project.org/#/c/242199/ and the following changes.

I did some benchmarking (as we were worried about the different performance characteristics of QList and QVector) and with the exception of prepending in a loop pretty much all other operations gets faster with this change.

So to re-iterate: We will not break SC in major ways. The goal is to make porting from Qt 5.x to 6 as easy as possible.

Cheers,
Lars

On 30 Oct 2018, at 20:21, NIkolai Marchenko <enmarantispam at gmail.com<mailto:enmarantispam at gmail.com>> wrote:

>  No, we will break source compatibility in a minor way.

I am not aware of what was the end result of QList discussion, but didn't you want to deprecate/majorly change that at some point?
That alone would be rather huge.

On Tue, Oct 30, 2018 at 10:19 PM Thiago Macieira <thiago.macieira at intel.com<mailto:thiago.macieira at intel.com>> wrote:
On Tuesday, 30 October 2018 12:11:38 PDT NIkolai Marchenko wrote:
>  >  That's not going to happen any more than our breaking source
>
> compatibility in
> a major way.
>
> You are breaking source compatibility in a major way with Qt6 ... ;)

No, we will break source compatibility in a minor way.

--
Thiago Macieira - thiago.macieira (AT) intel.com<http://intel.com/>
  Software Architect - Intel Open Source Technology Center



_______________________________________________
Development mailing list
Development at qt-project.org<mailto:Development at qt-project.org>
http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
Development at qt-project.org<mailto:Development at qt-project.org>
http://lists.qt-project.org/mailman/listinfo/development


_______________________________________________
Development mailing list
Development at qt-project.org<mailto:Development at qt-project.org>
http://lists.qt-project.org/mailman/listinfo/development

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20181102/09b12f05/attachment.html>


More information about the Development mailing list