Qt Contributor Summit 2019 - QtCore: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
* https://bugreports.qt.io/browse/QTBUG-71036
* https://bugreports.qt.io/browse/QTBUG-71036


== Calendaring & time ==  
== Calendaring & time ==
* We have calendars!
* QDateTime internal state keeping requires cleanup (doable in Qt 6, e.g. remove the dpointer for good)
* Some API fixups also needed (but possibly after the internals have been cleaned up)
* Compatibility with C++20's calendaring: looking into it. Unfortunately we can't depend on it in time for 6.0, but Eddy is looking at it closely, to ensure maximum compatibility


== 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 just before Qt 6 release 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)
* Not sure if to keep Qt5List. We need more evaluation about how much code breaks (e.g. when Creator, KDE port it). Not so many fixes were required in Qt but this was after many fixes have already landed after Clazy passes in Qt itself.
* QPair=std::pair => no brainer
* QPair=std::pair => no brainer
* QHash in terms of std::unordered_map: Lars, Peppe experimented on it, it "works", esp. after
* QHash in terms of std::unordered_map: Lars, Peppe experimented on it, it "works", esp. after
Line 21: Line 25:


== Split-up of QtCore ==
== Split-up of QtCore ==
*  
* QtSCXML can be moved out (note that declarative depends on it)
* PROBABLY MORE STUFF


== Codecs ==
== Codecs ==

Revision as of 08:38, 21 November 2019

Session notes.

Recap:

Calendaring & time

  • We have calendars!
  • QDateTime internal state keeping requires cleanup (doable in Qt 6, e.g. remove the dpointer for good)
  • Some API fixups also needed (but possibly after the internals have been cleaned up)
  • Compatibility with C++20's calendaring: looking into it. Unfortunately we can't depend on it in time for 6.0, but Eddy is looking at it closely, to ensure maximum compatibility

Containers

  • QList = QVector by default in Qt 6
  • s/QList/QVector/g just before Qt 6 release 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). Not so many fixes were required in Qt but this was after many fixes have already landed after Clazy passes in Qt itself.
  • 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

  • QtSCXML can be moved out (note that declarative depends on it)
  • PROBABLY MORE STUFF

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