> From: "lars.kn...@nokia.com" <lars.kn...@nokia.com> > On 2/15/12 12:11 PM, "ext Olivier Goffart" <oliv...@woboq.com> wrote: >> On Wednesday 15 February 2012 22:02:10 craig.sc...@csiro.au wrote: >>> On 15/02/2012, at 8:58 PM, <lars.kn...@nokia.com> >>> <lars.kn...@nokia.com> >> wrote: >>> > On 2/15/12 10:28 AM, "ext Thiago Macieira" > <thiago.macie...@intel.com> >>> > >>> > wrote: >>> >> On quarta-feira, 15 de fevereiro de 2012 08.49.31, >>> lars.kn...@nokia.com >>> >> >>> >> wrote: >>> >>> I don't think it'll break too many places though, > so I'm not too >>> worried >>> >>> about the change. >>> >> >>> >> It will. Ask Ubuntu packagers for how much work they had to > put in >>> to fix >>> >> the >>> >> mismatches in KDE. We can assume that work is done, but other >>> Qt-based >>> >> software, including non-OSS software, will probably have > similar >>> issues. >>> >> But, >>> >> it should be noted that they had lots of rework because the > software >>> kept >>> >> on >>> >> breaking. If this change is made to all, one can assume that > it will >>> not >>> >> "keep >>> >> on breaking". >>> >> >>> >> This change by itself isn't that big. Whenever you see a > template >>> error >>> >> about >>> >> no overloads for floats and doubles, you know what it is. The >>> problem is >>> >> that >>> >> this error adds up to the porting needs for software to get > from Qt >>> 4 to >>> >> Qt 5 >>> >> and this is likely to be widespread. It will appear on the > first >>> >> compilation >>> >> and you have to fix them immediately, including changing > certain data >>> >> structures, in order to continue the porting. >>> > >>> > Yes, some template code will break. >>> > >>> >>> Choosing float has my vote, as it'll use a lot less > memory and is >>> the >>> >>> right thing in the common case. It also directly maps to > OpenGL >>> types. >>> >>> Let's rather use double explicitly where needed. >>> >> >>> >> I'm not disagreeing. I'm just giving more information > for the >>> >> decision-making. >>> >> >>> >> I completely agree we should choose one or the other, not > change >>> >> according to >>> >> platform. Accordingly, QT_COORD_TYPE should be removed to. >>> > >>> > Yes. >>> > >>> >> Which one to choose, I haven't made up my mind. >>> > >>> > We will in any case break either code written for x86 or code > written >>> for >>> > arm/devices. >>> > >>> > Given that using float everywhere makes most of our data > structures >>> > smaller, matches with OpenGL, as well as significantly improves >>> > performance on many systems makes me believe we should go for > float. >>> >>> There's one case I don't think anyone has mentioned yet, that > being >>> where >>> user code has adopted qreal for their own purposes (for better or >>> worse). >>> In such cases, the code may only ever have been intended for desktop >>> (many >>> apps are written just for desktop), so in such cases I would find it >>> reasonable that a qreal == double assumption might hold. Regardless of >>> whether that is smart or not, I could easily believe there would be > code >>> out there doing that with an implicit or explicit assumption that it >>> will >>> equate to at least a double. >> >> Then they can do s/qreal/double/g in their code. >> >>> >>> With that in mind, is there anything against making qreal deprecated > for >>> Qt5.0 and anywhere qreal appears in the Qt API, explicitly change it to >>> float instead? That would allow qreal to remain with the behaviour it >>> has >>> now for user code, but all Qt code would switch over to using float as >>> has >>> been indicated as desirable in this discussion thread. You'd still > get >>> compiler warnings, etc. about type mismatches where relevant. Anyone >>> see a >>> problem with this approach? It would seem to be more source compatible >>> than >>> simply changing qreal to float. >> >> I was about to suggest exactly the same. >> Then I tought about Qt has its own typedef for quintptr and quint64 and >> what >> not, so we could as well keep qreal. >> (But i'm far from being opposed, but then we can also deprecate all the >> other >> ones) > > Deprecating qreal and making things explicit in Qt is IMO a good idea. We > don't need any typedef, as float and double are actually the same size on > all our supported platforms (4 and 8 bytes).
+1. Ben _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development