As much as I love getting new features in, I have to agree here. Let's get this into dev as soon as we can, and make sure we have a great story to tell for 5.10.
Cheers, Lars > On 31 Jan 2017, at 12:47, Andy, Nichols <andy.nich...@qt.io> wrote: > > While QStringView looks like a nice addition to Qt, I don’t think we should > risk delaying the next release over it. It is bad enough there is always a > rush to cram things in the week leading up to the release and even worse when > we start talking about extensions. If we are going to have time based > releases we need to follow the rules, and accept that there is always another > release. It’s much better to integrate early and have time to work out the > kinks, rather than integrate a feature at the last second. > >> On 31 Jan 2017, at 12:07, Marc Mutz <marc.m...@kdab.com> wrote: >> >> Hi Lars, >> >> On Tuesday 31 January 2017 10:08:35 Lars, Knoll wrote: >> [...] >>>> So, in order to give the maintainers more time for review, I'd like to >>>> ask for a feature freeze extension for QStringView until end of next >>>> week, plus a few days to deal with maintainer review comments. >>> >>> I understand that you want to have the patch series finally merged. >>> Actually I do as well, I believe that QStringView is the right approach >>> moving forward. >>> >>> But I do wonder about the approach here. The series has been around pretty >>> much unchanged for quite some time now without anybody working on it. You >>> had lots of time since summer to get this into shape an merged. Now, a >>> week before the feature freeze and suddenly this absolutely has to go in? >> >> I have been sxcheduled to work on this in January, but was out with sick >> child >> and then myself afterwards for almost two weeks. That's why it's late. >> >> Then again, as you say, the main patch has been around for the better part >> of >> a year, and the basic idea has been around since the beginning. >> >>>> Why should it be granted? Because QStringView is by far the biggest >>>> revolution in Qt since 5.0, all the while integrating naturally and >>>> step-by-step into existing code, _tremendously_ simplifying it along the >>>> way (cf. the commits that start to make use of QStringView: >>>> https://codereview.qt- >>>> project.org/183864 https://codereview.qt-project.org/183925), esp. where, >>>> in private API, we can already remove the other overloads. >>> >>> I agree, that the series cleans things up and is a great improvement. But >>> the biggest revolution since 5.0? It's an API addition that brings >>> performance optimisations in Qt's string handling. >> >> No, this is not at all about performance. It's mostly about stream-lining >> the >> API, and adding flexibility: >> >> 1. Traditionally, a lot of stuff has been taking QString, and QString only. >> If >> you're lucky, you get (QChar*, int) on top, so you can use an automatic >> buffer to hold the string data, with all the ugliness at the >> call site that entails. QStringView takes all that pain and hides it >> (see https://codereview.qt- >> project.org/#/c/183925/2/src/corelib/tools/qtimezoneprivate_win.cpp,unified). >> It also allows for clearer interfaces, because instead of a QString and an >> int, you can just pass a QStringView, since creating a sub-view suddenly >> costs nothing: >> >> 2. QStringView gives the caller the choice of container for string data. This >> makes Qt much more interoperable with 3rd-party libraries. QStringView will >> make QStringLiteral all but obsolete, since you can now just pass u"string" >> or, on Windows, L"string" to any QStringView-taking function. We can >> trivially define a QStringViewLiteral that uses one of the other, depending >> on platform. I backed that feature out, though, since I fist need to verify >> that we support no compilers anymore that would fall back to fromUtf8() for >> QStringLiteral. >> >> 3. And yes, performance. Where today we have to return QString, even where we >> know a maximum size, and even where we don't: It will allow >> QLocale::toString() to return something equivalent to char16_t[N], e.g. >> std::array, in order to not allocate memory just to format numbers, >> something that has so far eluded any practical solution. For internal >> functions that return temporary QStrings, we can switch to QVarLengthArray, >> and avoid heap allocations in common cases. >> >> The last such fundamental change to QtBase was the possibility to connect >> signals to lambdas. Believe me, QStringView has the same caliber. >> >>> What would we really loose if we worked towards getting this into the dev >>> branch in the next few weeks? We don't exactly have hundreds of >>> users/customers who can't live without it. And pushing it into dev would >>> give you lots of time to make sure we make best possible use of the class >>> throughout all of Qt for 5.10. >> >> I have found that even with just relational operators, conversions, and >> iterators (ie. just the Long-live commit in the series), maybe >> QString::append() and QStirngBuilder integration, you can already do a lot >> of >> stuff. For us, getting QStringView into dev next week means one week of >> delay, >> but for our users, it means half a year delay. Qt is desperately in need of >> better integration with std C++, and QStringView is hand-down the largest >> such >> contribution. Not having it means people will continue to spend^Wwaste time >> porting stuff to QStringRef, which will later be replaced by QStringView. >> Don#t get me wrong, I love the work Anton and others have done in the area. >> I >> now just need to grep for QStringRef to find code to port to QStringView, >> but >> the real value of QStringView lies in where there was no QStringRef-overload >> in the first place, e.g. QColor: https://codereview.qt-project.org/184038 >> >> In the end, it's your call, of course. >> >> I personally don't care whether it goes into 5.9 or 5.10, but for our users >> and for other contributors, I hope that it makes it into 5.9, since, judging >> from 5.8, a lot of internal performance improvements come into stable >> branches, and we really don't need more QStringRef uses in Qt. esp. in >> public >> API, where we need to carry it all the way to Qt 6. >> >> Thanks, >> Marc >> >> -- >> Marc Mutz <marc.m...@kdab.com> | Senior Software Engineer >> KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company >> Tel: +49-30-521325470 >> KDAB - The Qt, C++ and OpenGL Experts >> _______________________________________________ >> Development mailing list >> Development@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/development > > _______________________________________________ > Development mailing list > Development@qt-project.org > http://lists.qt-project.org/mailman/listinfo/development _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development