[Development] Feature Freeze Exception: QStringView

Marc Mutz marc.mutz at kdab.com
Mon Jan 30 20:03:24 CET 2017


Hi,

QStringView is ready to be merged, but the maintainer has asked for another 
week before he can properly review the class.

In case you don't remember, here's the discussion thread from 2015: 
http://lists.qt-project.org/pipermail/development/2015-October/023358.html

Here's the evolving patch series:
https://codereview.qt-
project.org/#/q/status:open+project:qt/qtbase+topic:qstringview,n,z

I feel the patch addresses all concerns raised in the discussion:

1. size_type: we agreed on on ssize_t equivalent to strike a balance between
   the Qt preference of 32-bit signed types over the STL preference for 64-bit
   unsigned types.
2. Do this in Qt vs. do this in QtCreator. I believe that a QStringView
   without deeply-routed support in QString would be a still-born. We also
   don't have time come Qt 6 to port all of Qt to a QStringView developed
   elsewhere. The current patches just scratch the surface. Everywhere
   QStringRef is currently used, QStringView can be used. And a lot of places
   that traditionally only took QString should take QStringView, too, e.g.
   QFile::encodeName(). So I added it to Qt.
3. Keeping existing QString overloads for implicit sharing.
   The patch does not remove anything. It will, as it progresses, implement
   QT_STRINGVIEW_LEVELs 2 and 3 which remove existing QString and QStringRef
   overloads (2: only where the function read from the string, 3: also where
   it stores the string), so that at some later point in time we can just flip
   a preprocessor switch and compare executable size and execution speed of
   both sets of overloads, everything else being equal.

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.

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.

Thanks,
Marc

-- 
Marc Mutz <marc.mutz at 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



More information about the Development mailing list