Main Menu

FET and Qt 5.14.0

Started by Liviu Lalescu, December 15, 2019, 09:32:58 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

I updated to the latest Qt 5.14.0 (released 12 December 2019). I also updated the FET code from QList to QVector in the majority of places (on 15 December 2019, for the future FET-5.43.0 unreleased yet). It is 5-10% faster it seems.

I need to invent some tricks so that FET continues to compile with older Qt. But the performance might not be so good and things aren't tested by me personally. Should I drop support for Qt <5.14.0 and emit an error if the user tries to compile with Qt <5.14.0?

math

I guess most users will just download the binary, not caring which QT has been used. So it just takes an update of the local installation at worst, which shouldn't be a problem at all. And if somebody decides to compile FET himself, an update should be sufficient to get FET compiled again.

So what might be the reason for continuing support of outdated QT versions? Maybe supporting users of outdated distributions that do no longer provide updates, so that users cannot update to the current QT version? But shouldn't these users update their distribution anyways?

Liviu Lalescu

I decided to keep compatibility even with Qt 4 and it seems it is possible. Unfortunately, for Qt <5.14.0 there are performance issues. In generate.cpp there are some places this appears. To convert from QSet to QVector and viceverse I need to to through QList: vect.toList().toSet() and st.toList().toVector(), and I think this takes twice the time. In Qt 5.14.0 there is st=QSet(vect.begin(), vect.end()) and vect=QVector(st.begin(), st.end()) directly.

It is best to keep old compatibility out of respect for the users. I hope I did not do bugs in the new code. If there are programmers reading this, please let me know if you can KDiff3 (diff tool) official 5.42.0 with the new snapshot, which I will announce. The changes are easy to understand, but many.

I will compile with Qt 5.14.0, 5.13.2, and 4.8.7, and run (script on fet-cl) on about 600 files of mine along with FET-5.42.0 official to check for possible errors.

Volker Dirr

keeping old qt Versions might be needed for some linux distributions. Some of them have got older qt versions. i fear they will skip us from their repository if we don't support their qt version.

But on the other hand you are right. there is a lot of old stuff.

I suggest to wait for qt 6 (will release in about one year). i guess/fear there might be also other stuff changed. So that might be a good point in time to skip all old qt versions and also rename fet up to version 6. So "old" linux versions can stay at fet 5 while "new" versions can upgrade to version 6. If we do such a break in a small step from version "42" to "43" it might/will be very odd.