Qt Contributor Summit 2019 - QtCore: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 7: Line 7:


== Containers ==
== Containers ==
QList = QVector by default in Qt 6
* QList = QVector by default in Qt 6
 
* s/QList/QVector/g before Qt 6 releaase to avoid merging nightmare
s/QList/QVector/g before Qt 6 releaase to avoid merging nightmare
* Not sure if to keep Qt5List. We need more evaluation about how much code breaks (e.g. when Creator, KDE port it)
 
* QPair=std::pair => no brainer
Not sure if to keep Qt5List. We need more evaluation about how much code breaks (e.g. when Creator, KDE port it)
* QHash in terms of std::unordered_map: Lars, Peppe experimented on it, it "works", esp. after
 
* Concerns regards std::unordered_map itself -- it's not great in terms of performance (or: it's "as bad" as QHash, so the only save is the maintenance). Should we look at other unorderd_map implementations under BSD? What about qHash and the seeding?
QPair=std::pair => no brainer
* QMap => std::map, yes
 
* QLinkedList => Qt5LinkedList
QHash in terms of std::unordered_map: Lars, Peppe experimented on it, it "works", esp. after
* (Need to clarify what ends up in a Qt5Support library)
 
* Do we need to provide generic accessors for arbitrary containers, esp. in the light of ranges added to C++20? (And what about things like toSet, toList, etc.?) Concerns raised by starting including std headers all over the place.
Concerns regards std::unordered_map itself -- it's not great. Should we look at other unorderd_map implementations?
 
QMap => std::map, yes
 
QLinkedList => Qt5LinkedList
 
(Need to clarify what ends up in a Qt5Support library)
 
Do we need to provide generic accessors for arbitrary containers, esp. in the light of ranges added to C++20? (And what about things like toSet, toList, etc.?) Concerns raised by starting including std headers all over the place.


== QString, QStringView, QByteArray ==
== QString, QStringView, QByteArray ==


== Split-up of QtCore ==
== Split-up of QtCore ==
*


== Codecs ==
== Codecs ==
Line 38: Line 30:
* QWaitCondition & QReadWriteCondition improvements?
* QWaitCondition & QReadWriteCondition improvements?
* Future of QFuture
* Future of QFuture
== Paths/Filesystem ==
* If you know about Windows path handling: please help Eddy! (E.g. filesystem paths that are neither absolute or relative)
* Discuss if we want a dedicated filesystem path class -- we need to evaluate the impact on our API.
** We want overloads taking std::fs::path, but not sure about a dedicated class to store paths


== Other ==
== Other ==
Line 43: Line 40:
** [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0169r0.html P0169R0 - regex with Unicode character types]
** [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0169r0.html P0169R0 - regex with Unicode character types]
** [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1844r0.html P1844R0 - Enhancement of regex]
** [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1844r0.html P1844R0 - Enhancement of regex]
*
*Ville: performance concerns, std::regex implementations are still bad
*We can stick with QRegularExpression, but that poses a buildsystem question (getting rid of bootstrap). CMake may fix it. So far only a couple of bootsrapped tools will actually require it.

Revision as of 08:31, 21 November 2019

Session notes.

Recap:

Calendaring & time

Containers

  • QList = QVector by default in Qt 6
  • s/QList/QVector/g before Qt 6 releaase to avoid merging nightmare
  • Not sure if to keep Qt5List. We need more evaluation about how much code breaks (e.g. when Creator, KDE port it)
  • QPair=std::pair => no brainer
  • QHash in terms of std::unordered_map: Lars, Peppe experimented on it, it "works", esp. after
  • Concerns regards std::unordered_map itself -- it's not great in terms of performance (or: it's "as bad" as QHash, so the only save is the maintenance). Should we look at other unorderd_map implementations under BSD? What about qHash and the seeding?
  • QMap => std::map, yes
  • QLinkedList => Qt5LinkedList
  • (Need to clarify what ends up in a Qt5Support library)
  • Do we need to provide generic accessors for arbitrary containers, esp. in the light of ranges added to C++20? (And what about things like toSet, toList, etc.?) Concerns raised by starting including std headers all over the place.

QString, QStringView, QByteArray

Split-up of QtCore

Codecs

Legacy text codecs implementations in Qt are going to be dropped from Qt itself; anything but UTF- codecs will require 3rd party (ICU).

Threading

  • QRecursiveMutex split from QMutex
  • QWaitCondition & QReadWriteCondition improvements?
  • Future of QFuture

Paths/Filesystem

  • If you know about Windows path handling: please help Eddy! (E.g. filesystem paths that are neither absolute or relative)
  • Discuss if we want a dedicated filesystem path class -- we need to evaluate the impact on our API.
    • We want overloads taking std::fs::path, but not sure about a dedicated class to store paths

Other