Ansicht umschalten
Avatar von iUniversEi
  • iUniversEi

470 Beiträge seit 26.10.2012

Wie wärs, sie kriegen erstmal ihren QtQuick Müll auf die Reihe

Anstatt endlich mal wenigstens einmal in der Geschichte von Qt eine stabile Version zu veröffentlich, wird ein Bleeding-Edge-Mist nach dem anderen rausgehauen.

Im Artikel sieht man ja sehr schön, wie 5.11.0 installiert wird.
Ja. Klar. Weil 5.11.1 sollte man ja auch nicht installieren, denn dann passiert es einfach mal gerne, dass ein Prozess, der QtQuick benutzt, sich einfach nicht mehr beendet, wenn man die Applikation schließt.

Ich meine: sowas passiert natürlich wenn sich in einer Premium Enterprise Ultra Awesome Software mal die dritte Stelle in der Versionsnummer (üblicherweise Revision) ändert. Dann ist halt mal was einfach kaputt. Wie? Das ist undenkbar? Aber nein mein Herr: das ist modern! Und sowieso: you are holding it wrong.

Beim Debuggen solcher Fehler kriegt man als erfahrener Programmierer dann auch noch Krebs, weil man aus dem Kopfschütteln nicht mehr rauskommt, wenn man Qt Source Code lesen muss.....

Da wird doch ernsthaft im Cleanup-Code (!) also beim Aufräumen (!!) beim Application Shutdown (!!!) nochmal schnell ein 1x1 großes Fenster bei den Koordinaten 0x0 erstellt, damit Qt da einen OpenGL Context parken kann, um ihn mit dem Fenster abzuräumen.

Doof nur, wenn Multihtreadding im Spiel ist. Das kann Qt dann einfach nicht handlen und baut stattdessen Mist im eigenen Cleanup code und versucht da Dinge zu tun, die es selber eigentlich verbietet. [1] Und dann gibts seit neustem (5.11.1) beim Cleanup ein wait() was niemals zurückkommt. Die Anwendung hängt und geht nur noch mit kill (bzw. Taskmanager unter Windows) aus. Bei 5.11.0 ist die Anwendung wenigstens noch trotz des Fehlers normal ausgegangen. Aber hey: Qt sagt ja im log sogar "expect failures", also mussten sie dann wohl auch geliefert werden.

Und das ist nur der prominenteste Bug, der mir gerade aktuell einfällt, weil sich das Verhalten dieses Bugs mit 5.11.1 frisch geändert hat. Es gibt noch etliche andere tolle Bugs.... Zum Beispiel moc ist auch verbuggt und erkennt einfach mal ne Klasse nicht mehr, wenn darüber mit #warning gearbeitet wird, um zur Kompilezeit vor bestimmten Dingen zu warnen. moc behauptet dann "No relevant classes found". Macht man die Präprozessordirektive weg und ändert sonst nichts am Code, erkennt moc plötzlich die Klasse (die sich nicht geändert hat).

</rant>

TL;DR:
Die Qt-Leute sollten lieber ihre Ressourcen darauf setzen, den aktuellen Bleeding-Edge-Müll gerade zu ziehen und sich dann erst um neuen Fancy Stuff kümmern. Ich gehe jede Wette ein, das wild vor sich hin blinkende Ausgabefenster im Demo-Video blinkt nur deshalb so wild vor sich hin, weil da tonnenweise Fehlermeldungen nebenbei gespammt werden.

[1]: Das Google-Stichwort dazu ist "Attempting to create QWindow-based QOffscreenSurface outside the gui thread. Expect failures."

Bewerten
- +
Ansicht umschalten