[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Qt5 switching qreal from float to double on arm*

Lisandro Damián Nicanor Pérez Meyer wrote:
Any feedback will be kindly appreciated.
I've always thought there is something fundamentally wrong.

What is qreal supposed to be used for? If it's supposed to be used for things where float would be adequate then shouldn't it be float on all platforms? If it's supposed to be used for things where float is inadequate then why isn't it double on all platforms?

The current situation leads to people who develop on i386 and amd64 (which is most developers) assuming that qreal is equivilent to double. Then we try and build it on arm* and float gets used. Sometimes this is ok because there was really no reason for the developer to be using double precision in the first place and there were no incorrect conversion assumptions. Sometimes this causes build failures which can be difficult to resolve* and I bet in some cases it causes more subtule bugs. It also goes against the principle of offering to the greatest extent possible the same functionality on all platforms.

Making qreal double on armhf but leaving it as float on armel will mean that canonical are no longer forced for fix bugs surrounding it. I'm sure canonical would like that but I also suspect it may cause severe degredation in the maintainance of QT software on those ports that stick with qreal.

On the other hand presumablly there would be a performance hit from switching from float to double, especially on platforms which use software floating point (I presume that was why whoever controlled qt at the time made qreal float on arm in the first place).

I found some older upstream discussion on what to do about float at https://groups.google.com/forum/#!topic/qt-project-list-development/dPcP3NASY1k I also found some discussion at http://comments.gmane.org/gmane.comp.lib.qt.qt5-feedback/700 saying that on coretex A8 double was significantly slower than float.

Finally has there been any discussion with other linux distros. This is obviously something that impacts the ABI in a big way so ideally it's not something where we want different distros doing different things.

* See scribus for an especially nasty example.

Reply to: