Re: [Development] state of Qt's Australia office
Le jeudi 2 août 2012, martin.jo...@nokia.com a écrit : We just found out yesterday. We haven’t had a chance to discuss continuation of QML/QtQuick, but we have passionate developers here who will continue contributing if possible. Qtquick was the main point of qt5... If your company depends on QML/QtQuick, then now is the time to discuss a mutually beneficial arrangement with us J I have invested a lot of time in qt5/qml trusting in what nokia said before... But i have a very small company so the only way to help that i can do is to pay for a commercial licence if there is a trustable company that continue qt Martin. ** ** *From:* development-bounces+martin.jones=nokia@qt-project.orgjavascript:_e({}, 'cvml', 'nokia@qt-project.org');[mailto: development-bounces+martin.jones javascript:_e({}, 'cvml', 'development-bounces%2Bmartin.jones');=nokia@qt-project.orgjavascript:_e({}, 'cvml', 'nokia@qt-project.org');] *On Behalf Of *ext qtnext *Sent:* Wednesday, August 01, 2012 10:48 PM *To:* development@qt-project.org javascript:_e({}, 'cvml', 'development@qt-project.org'); *Subject:* Re: [Development] state of Qt's Australia office ** ** QtDeclarative ? Does it mean that nobody in Qt team will work on qml (Quick2) ? ** ** 2012/8/1 Atlant Schmidt aschm...@dekaresearch.com javascript:_e({}, 'cvml', 'aschm...@dekaresearch.com'); Folks: (more) Let's hope that the remaining Trolls land in a more-friendly fjord! Atlant -Original Message- From: development-bounces+aschmidt=dekaresearch@qt-project.orgjavascript:_e({}, 'cvml', 'dekaresearch@qt-project.org');[mailto: development-bounces+aschmidt javascript:_e({}, 'cvml', 'development-bounces%2Baschmidt');=dekaresearch@qt-project.orgjavascript:_e({}, 'cvml', 'dekaresearch@qt-project.org');] On Behalf Of Atlant Schmidt Sent: Wednesday, August 01, 2012 8:30 AM To: 'C. Bergström'; development@qt-project.org javascript:_e({}, 'cvml', 'development@qt-project.org'); Subject: Re: [Development] state of Qt's Australia office Folks: I wasn't going to mention this but since the topic has come up... A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian Nyström (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia's great experiment in frameworks (mobile and otherwise) is over. Atlant * After having previously shot Symbian and Maemo/MeeGo dead This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.org javascript:_e({}, 'cvml', 'Development@qt-project.org'); http://lists.qt-project.org/mailman/listinfo/development Click https://www.mailcontrol.com/sr/ufrRwuioVx3TndxI!oX7UqcUCtlg0TD8RfkI3WfseUnsO8bgDK+guU4ZxjFLV1IJtna8Ms8t0Hr1lqOECv!Swg== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.org javascript:_e({}, 'cvml', 'Development@qt-project.org'); http://lists.qt-project.org/mailman/listinfo/development ** ** ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Color Profile support on Qt
On Thursday 02 August 2012 07:53:25 ext gunnar.sle...@nokia.com wrote: On Aug 1, 2012, at 6:37 PM, ext Stephen Kelly wrote: Hi there, Given that https://codereview.qt-project.org/#change,31387 has been merged, can you post any more information that will last until the QColorProfile class can be implemented? Any ideas on API or implementation? Alexandros, I would prefer that you reverted that change. It makes little sense to introduce it without the actual color profiles, and the constructor can be added in 5.1 as an overload in a binary compatible manner, so no need in rushing it. I was part of that API discussion when you were away, Gunnar, so I'll chime in with my argument for doing it this way: If we do it in 5.1, we have to add 6 new constructors to QImage, in addition to the 10 existing ones. That will not make the documentation any more readable. I'll let Alexandros answer the rest of the questions, but will just note that he has a complete and fairly polished implementation that he is ready to publish. - Paul ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] [Qt 4.8 with directfb]Web image rendering problem
Hi all, I'm trying to view http://www.youtube.com/leanback using QTWebKit in Qt4.8.1(configure with -plugin-gfx-directfb option). There are some images in the web page seems that Qt4.8 isn't able to render them correctly. If I use Qt4.7.4 with directfb, all images are rendered correctly. If I use Qt4.8.1 with X11 system, everything is ok too. Dose someone encounter the same problem? For more information, please visit https://bugreports.qt-project.org/browse/QTBUG-26729 thanks. best regards,fred fung ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Color Profile support on Qt
On Thursday 02 August 2012 10:03:15 Paul Olav Tvete wrote: On Thursday 02 August 2012 07:53:25 ext gunnar.sle...@nokia.com wrote: On Aug 1, 2012, at 6:37 PM, ext Stephen Kelly wrote: Hi there, Given that https://codereview.qt-project.org/#change,31387 has been merged, can you post any more information that will last until the QColorProfile class can be implemented? Any ideas on API or implementation? Alexandros, I would prefer that you reverted that change. It makes little sense to introduce it without the actual color profiles, and the constructor can be added in 5.1 as an overload in a binary compatible manner, so no need in rushing it. I was part of that API discussion when you were away, Gunnar, so I'll chime in with my argument for doing it this way: If we do it in 5.1, we have to add 6 new constructors to QImage, in addition to the 10 existing ones. That will not make the documentation any more readable. If that's only a documentation problem, we can workaround that with some macro magic. Should that even go in the constructor? Maybe QImage::setColorProfile. (Remember http://qt-project.org/wiki/API-Design- Principles#53794b5430e64e80ea10c4e2ecd4556f On the other side, if we add it now, and realize this should not be pointer, or should not be even in QImage. Then it is too late to change. I'll let Alexandros answer the rest of the questions, but will just note that he has a complete and fairly polished implementation that he is ready to publish. That's great to know. But we don't know if the API or the implementation is good yet. -- Olivier Woboq - Qt services and support - http://woboq.com ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
I'm sure QML/QtQuick will live on - only Brisbane is affected. I'm not sure if/how we, the Brisbane developers, will continue to contribute, however. Br, Martin. From: ext qtnext [qtn...@gmail.com] Sent: Thursday, 2 August 2012 4:46 PM To: Jones Martin (Nokia-MP/Brisbane) Cc: development@qt-project.org Subject: Re: [Development] state of Qt's Australia office Le jeudi 2 août 2012, martin.jo...@nokia.commailto:martin.jo...@nokia.com a écrit : We just found out yesterday. We haven’t had a chance to discuss continuation of QML/QtQuick, but we have passionate developers here who will continue contributing if possible. Qtquick was the main point of qt5... If your company depends on QML/QtQuick, then now is the time to discuss a mutually beneficial arrangement with us :) I have invested a lot of time in qt5/qml trusting in what nokia said before... But i have a very small company so the only way to help that i can do is to pay for a commercial licence if there is a trustable company that continue qt Martin. From: development-bounces+martin.jones=nokia@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+martin.jonesUrlBlockedError.aspx=nokia@qt-project.orgUrlBlockedError.aspx] On Behalf Of ext qtnext Sent: Wednesday, August 01, 2012 10:48 PM To: development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office QtDeclarative ? Does it mean that nobody in Qt team will work on qml (Quick2) ? 2012/8/1 Atlant Schmidt aschm...@dekaresearch.comUrlBlockedError.aspx Folks: (more) Let's hope that the remaining Trolls land in a more-friendly fjord! Atlant -Original Message- From: development-bounces+aschmidt=dekaresearch@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+aschmidtUrlBlockedError.aspx=dekaresearch@qt-project.orgUrlBlockedError.aspx] On Behalf Of Atlant Schmidt Sent: Wednesday, August 01, 2012 8:30 AM To: 'C. Bergström'; development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office Folks: I wasn't going to mention this but since the topic has come up... A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian Nyström (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia's great experiment in frameworks (mobile and otherwise) is over. Atlant * After having previously shot Symbian and Maemo/MeeGo dead This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.orgUrlBlockedError.aspx http://lists.qt-project.org/mailman/listinfo/development Click https://www.mailcontrol.com/sr/ufrRwuioVx3TndxI!oX7UqcUCtlg0TD8RfkI3WfseUnsO8bgDK+guU4ZxjFLV1IJtna8Ms8t0Hr1lqOECv!Swg== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.orgUrlBlockedError.aspx http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Color Profile support on Qt
On Thursday 02 August 2012 10:31:59 ext Olivier Goffart wrote: If that's only a documentation problem, we can workaround that with some macro magic. Very good point. For some reason I thought we would have to hack on qdoc itself, but creative use of \fn and \internal should be enough. Should that even go in the constructor? Maybe QImage::setColorProfile. The problem with that is that it is not clear from the name whether it converts the image data to the new profile, or just overrides the profile. Also, overriding the profile is really just needed for specifying the profile when constructing the image. On the other side, if we add it now, and realize this should not be pointer, or should not be even in QImage. Then it is too late to change. Those are good points. Of course we could still add new constructors, and use qdoc magic to hide the pointer argument in that case :) The only other point I can see is saving 6 extra exported symbols in Qt 5.1, and I realize that that's not a very strong argument. TL;DR: I will not disagree if the consensus is to revert the change. - Paul ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Color Profile support on Qt
On Aug 2, 2012, at 10:58 AM, ext Paul Olav Tvete wrote: On Thursday 02 August 2012 10:31:59 ext Olivier Goffart wrote: If that's only a documentation problem, we can workaround that with some macro magic. Very good point. For some reason I thought we would have to hack on qdoc itself, but creative use of \fn and \internal should be enough. #ifdef QDOC can also be used to hide functions from the documentation. Should that even go in the constructor? Maybe QImage::setColorProfile. The problem with that is that it is not clear from the name whether it converts the image data to the new profile, or just overrides the profile. Also, overriding the profile is really just needed for specifying the profile when constructing the image. On the other side, if we add it now, and realize this should not be pointer, or should not be even in QImage. Then it is too late to change. Those are good points. Of course we could still add new constructors, and use qdoc magic to hide the pointer argument in that case :) The only other point I can see is saving 6 extra exported symbols in Qt 5.1, and I realize that that's not a very strong argument. TL;DR: I will not disagree if the consensus is to revert the change. I say revert. We don't bind ourselves to potential future API. - Paul ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] QtGui depends on libPlatformSupport.a
Hi, From the Qt build system, does any file decide the QtGui depending on the PlatformSupport lib ? Any information is appreciated ;) Thanks, Song ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] QtGui depends on libPlatformSupport.a
QtGui should not depend on platform support. If it does it's a bug. Cheers, Lars On Aug 2, 2012, at 11:47 AM, ext song.7@nokia.commailto:song.7@nokia.com song.7@nokia.commailto:song.7@nokia.com wrote: Hi, From the Qt build system, does any file decide the QtGui depending on the PlatformSupport lib ? Any information is appreciated ;) Thanks, Song ___ Development mailing list Development@qt-project.orgmailto:Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Color Profile support on Qt
I reverted the patch as requested. The change id is : Ic4a420d6ad0995810ed61d31edd28e7b603cca5e I also created a clone of qtbase repository on gitorious. the link for that is https://qt.gitorious.org/~alexandrosdermenakis/qt/qtbase-colorprofiles Alex From: development-bounces+alexandros.dermenakis=nokia@qt-project.org [development-bounces+alexandros.dermenakis=nokia@qt-project.org] on behalf of Sletta Gunnar (Nokia-MP/Oslo) Sent: Thursday, August 02, 2012 11:16 AM To: Tvete Paul (Nokia-MP/Oslo) Cc: development@qt-project.org Subject: Re: [Development] Color Profile support on Qt On Aug 2, 2012, at 10:58 AM, ext Paul Olav Tvete wrote: On Thursday 02 August 2012 10:31:59 ext Olivier Goffart wrote: If that's only a documentation problem, we can workaround that with some macro magic. Very good point. For some reason I thought we would have to hack on qdoc itself, but creative use of \fn and \internal should be enough. #ifdef QDOC can also be used to hide functions from the documentation. Should that even go in the constructor? Maybe QImage::setColorProfile. The problem with that is that it is not clear from the name whether it converts the image data to the new profile, or just overrides the profile. Also, overriding the profile is really just needed for specifying the profile when constructing the image. On the other side, if we add it now, and realize this should not be pointer, or should not be even in QImage. Then it is too late to change. Those are good points. Of course we could still add new constructors, and use qdoc magic to hide the pointer argument in that case :) The only other point I can see is saving 6 extra exported symbols in Qt 5.1, and I realize that that's not a very strong argument. TL;DR: I will not disagree if the consensus is to revert the change. I say revert. We don't bind ourselves to potential future API. - Paul ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] Qt Essentials
Hi everybody, as one of the first consequences of the situation in Brisbane, I'd like to do some changes to our list of essential modules. You can see the current list at http://qt-project.org/wiki/Qt-Essentials-Modules . I intend to move both Qt 3D and Qt Location out of the essentials list and make them add-ons for now. They are fully usable as-is today, but with the situation down-under I am currently unsure how well we can maintain and develop them going forward. If things turn out well, we can still move them into the Essentials list in a 5.1 or 5.x release. In addition, I will also remove Qt JS Backend from the list of essentials. While the library is a requirement for the QtQml module, it doesn't provide any public API and as such is a pure implementation detail on which I currently don't want to give any long term guarantees. Cheers, Lars ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
I talked a bit with the team in Brisbane this morning. Obviously the mood there is somewhat grim. Talking for me, it's really sad to see this happen. There are a lot of bright engineers working in that office and I have been working with many of them for quite some time now. I really hope that everybody will find a new job soon, and that most of the people will actually stay connected to the Qt ecosystem and Qt project in some form or another. For Qt as a product, it is now really important to remember that we do have the Qt project and a live and active community around it. This might make some things a bit more difficult in the short term, but we will find ways to deal with this and to continue to move Qt forward. I'll try to keep this list posted and informed as good as I can. Lars On Aug 2, 2012, at 10:38 AM, ext martin.jo...@nokia.commailto:martin.jo...@nokia.com martin.jo...@nokia.commailto:martin.jo...@nokia.com wrote: I'm sure QML/QtQuick will live on - only Brisbane is affected. I'm not sure if/how we, the Brisbane developers, will continue to contribute, however. Br, Martin. From: ext qtnext [qtn...@gmail.commailto:qtn...@gmail.com] Sent: Thursday, 2 August 2012 4:46 PM To: Jones Martin (Nokia-MP/Brisbane) Cc: development@qt-project.orgmailto:development@qt-project.org Subject: Re: [Development] state of Qt's Australia office Le jeudi 2 août 2012, martin.jo...@nokia.commailto:martin.jo...@nokia.com a écrit : We just found out yesterday. We haven’t had a chance to discuss continuation of QML/QtQuick, but we have passionate developers here who will continue contributing if possible. Qtquick was the main point of qt5... If your company depends on QML/QtQuick, then now is the time to discuss a mutually beneficial arrangement with us :) I have invested a lot of time in qt5/qml trusting in what nokia said before... But i have a very small company so the only way to help that i can do is to pay for a commercial licence if there is a trustable company that continue qt Martin. From: development-bounces+martin.jones=nokia@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+martin.jonesUrlBlockedError.aspx=nokia@qt-project.orgUrlBlockedError.aspx] On Behalf Of ext qtnext Sent: Wednesday, August 01, 2012 10:48 PM To: development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office QtDeclarative ? Does it mean that nobody in Qt team will work on qml (Quick2) ? 2012/8/1 Atlant Schmidt aschm...@dekaresearch.comUrlBlockedError.aspx Folks: (more) Let's hope that the remaining Trolls land in a more-friendly fjord! Atlant -Original Message- From: development-bounces+aschmidt=dekaresearch@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+aschmidtUrlBlockedError.aspx=dekaresearch@qt-project.orgUrlBlockedError.aspx] On Behalf Of Atlant Schmidt Sent: Wednesday, August 01, 2012 8:30 AM To: 'C. Bergström'; development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office Folks: I wasn't going to mention this but since the topic has come up... A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian Nyström (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia's great experiment in frameworks (mobile and otherwise) is over. Atlant * After having previously shot Symbian and Maemo/MeeGo dead This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.orgUrlBlockedError.aspx http://lists.qt-project.org/mailman/listinfo/development Clickhttps://www.mailcontrol.com/sr/ufrRwuioVx3TndxI!oX7UqcUCtlg0TD8RfkI3WfseUnsO8bgDK+guU4ZxjFLV1IJtna8Ms8t0Hr1lqOECv!Swg== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.
Re: [Development] state of Qt's Australia office
I talked a bit with the team in Brisbane this morning. Obviously the mood there is somewhat grim. Talking for me, it's really sad to see this happen. There are a lot of bright engineers working in that office and I have been working with many of them for quite some time now. I really hope that everybody will find a new job soon, and that most of the people will actually stay connected to the Qt ecosystem and Qt project in some form or another. For Qt as a product, it is now really important to remember that we do have the Qt project and a live and active community around it. This might make some things a bit more difficult in the short term, but we will find ways to deal with this and to continue to move Qt forward. I'll try to keep this list posted and informed as good as I can. Lars On Aug 2, 2012, at 10:38 AM, ext martin.jo...@nokia.commailto:martin.jo...@nokia.com martin.jo...@nokia.commailto:martin.jo...@nokia.com wrote: I'm sure QML/QtQuick will live on - only Brisbane is affected. I'm not sure if/how we, the Brisbane developers, will continue to contribute, however. Br, Martin. From: ext qtnext [qtn...@gmail.commailto:qtn...@gmail.com] Sent: Thursday, 2 August 2012 4:46 PM To: Jones Martin (Nokia-MP/Brisbane) Cc: development@qt-project.orgmailto:development@qt-project.org Subject: Re: [Development] state of Qt's Australia office Le jeudi 2 août 2012, martin.jo...@nokia.commailto:martin.jo...@nokia.com a écrit : We just found out yesterday. We haven’t had a chance to discuss continuation of QML/QtQuick, but we have passionate developers here who will continue contributing if possible. Qtquick was the main point of qt5... If your company depends on QML/QtQuick, then now is the time to discuss a mutually beneficial arrangement with us :) I have invested a lot of time in qt5/qml trusting in what nokia said before... But i have a very small company so the only way to help that i can do is to pay for a commercial licence if there is a trustable company that continue qt Martin. From: development-bounces+martin.jones=nokia@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+martin.jonesUrlBlockedError.aspx=nokia@qt-project.orgUrlBlockedError.aspx] On Behalf Of ext qtnext Sent: Wednesday, August 01, 2012 10:48 PM To: development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office QtDeclarative ? Does it mean that nobody in Qt team will work on qml (Quick2) ? 2012/8/1 Atlant Schmidt aschm...@dekaresearch.comUrlBlockedError.aspx Folks: (more) Let's hope that the remaining Trolls land in a more-friendly fjord! Atlant -Original Message- From: development-bounces+aschmidt=dekaresearch@qt-project.orgUrlBlockedError.aspx [mailto:development-bounces+aschmidtUrlBlockedError.aspx=dekaresearch@qt-project.orgUrlBlockedError.aspx] On Behalf Of Atlant Schmidt Sent: Wednesday, August 01, 2012 8:30 AM To: 'C. Bergström'; development@qt-project.orgUrlBlockedError.aspx Subject: Re: [Development] state of Qt's Australia office Folks: I wasn't going to mention this but since the topic has come up... A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian Nyström (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia's great experiment in frameworks (mobile and otherwise) is over. Atlant * After having previously shot Symbian and Maemo/MeeGo dead This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.orgUrlBlockedError.aspx http://lists.qt-project.org/mailman/listinfo/development Clickhttps://www.mailcontrol.com/sr/ufrRwuioVx3TndxI!oX7UqcUCtlg0TD8RfkI3WfseUnsO8bgDK+guU4ZxjFLV1IJtna8Ms8t0Hr1lqOECv!Swg== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.
Re: [Development] state of Qt's Australia office
Hi, On 2 August 2012 15:02, lars.kn...@nokia.com wrote: For Qt as a product, it is now really important to remember that we do have the Qt project and a live and active community around it. This might make some things a bit more difficult in the short term, but we will find ways to deal with this and to continue to move Qt forward. I think that until Nokia keeps controling Qt we won't move much. I explain better what I mean. Nobody can stop us to keep contributing to Qt and developing Qt. We can use in any opensource project we want. But what about companies and commercial products?! People still need to buy a license from Digia. Is Digia allowed to license Qt for mobile development? I'm just asking... -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On Thu, Aug 2, 2012 at 10:09 PM, a.gra...@gmail.com a.gra...@gmail.com wrote: Hi, On 2 August 2012 15:02, lars.kn...@nokia.com wrote: For Qt as a product, it is now really important to remember that we do have the Qt project and a live and active community around it. This might make some things a bit more difficult in the short term, but we will find ways to deal with this and to continue to move Qt forward. I think that until Nokia keeps controling Qt we won't move much. I explain better what I mean. Nobody can stop us to keep contributing to Qt and developing Qt. We can use in any opensource project we want. But what about companies and commercial products?! It's possible to use LGPL Qt in the commercial products, it's only necessary to open changes done to the Qt itself if any. Usually it's better to submit the changes upstream, it reduces the maintenance burden quite a bit. Regards Dmytro. People still need to buy a license from Digia. Is Digia allowed to license Qt for mobile development? I'm just asking... -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Can we have id's in dynamically generated elements for the next QML?
Thanks, Alan -- very rich email that helps me think about declarative-model-instance-handling. Alan spaketh: snip, What is QML declarative-best-practice for models? Reusable components/delegates, where data propagates in one direction, is the best-practices pattern that obviates this need. snip, For list delegates, this is managed through the model. Individual delegates should only depend on the model for state and interaction. If that's not enough you probably need a custom view, because views are supposed to handle the majority of the UI logic of the data.[1] snip, [1] A future research topic that I'm keen on, one of these days, is to better componetize the Model/View split. QML has very simplified models, but the Views are immense and in some ways restrictive. Sometime people just use a Repeater/Column/Flickable for flexibility, but that's not viable for large data sets. There's clearly a better split which would allow for more of the View to be written in QML, like the UI logic, while not forcing such large tradeoffs. After the successful completion of that research project, suggesting that you create your own view would just mean another QML file in your project. I'm very interested in that future-research-topic (we can discuss offline in the future when you have time), IMHO some work here is needed. For example, consider a large/rich model of a file-system where you want rich view(s) of *all* dirs-and-files. Example visualizers might be like: http://lifehacker.com/219058/geek-to-live--visualize-your-hard-drive-usage The dynamic/animated nature of QML seems like a QML implementation (with-or-without-C++) could be gorgeous/rich/useful. If your efforts provided specific insight and guidance to applications like that, it would be ever-so-super-spiffy! ;-) --charley ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On 2 August 2012 15:15, Dmytro Poplavskiy dmytro.poplavs...@gmail.com wrote: It's possible to use LGPL Qt in the commercial products, it's only necessary to open changes done to the Qt itself if any. I will try to be more specific with my question :) What kind of license is using RIM for their Cascades UI? It's based on Qt/QML, but as fra as I know they are submitting patches upstream (please correct me if I'm wrong). What kind of license is using Jolla, for example? What I'm trying to understand is if there are any possible restrictions or problems using Qt for a mobile products both if Nokia is keeping Qt alive, or if they just abandon it or if they sell it or whatever Usually it's better to submit the changes upstream, it reduces the maintenance burden quite a bit. I totally agree with you. I would not want to adapt my code everytime that Qt is changed upstream. Best regards, -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt Essentials
On quinta-feira, 2 de agosto de 2012 12.02.45, lars.kn...@nokia.com wrote: Hi everybody, as one of the first consequences of the situation in Brisbane, I'd like to do some changes to our list of essential modules. You can see the current list at http://qt-project.org/wiki/Qt-Essentials-Modules . I intend to move both Qt 3D and Qt Location out of the essentials list and make them add-ons for now. They are fully usable as-is today, but with the situation down-under I am currently unsure how well we can maintain and develop them going forward. If things turn out well, we can still move them into the Essentials list in a 5.1 or 5.x release. In addition, I will also remove Qt JS Backend from the list of essentials. While the library is a requirement for the QtQml module, it doesn't provide any public API and as such is a pure implementation detail on which I currently don't want to give any long term guarantees. I agree on the JS Backend case. For 3D and Location, I have a feeling it's a little premature, but I can't blame you for it. Especially in Location's case, with lots of plugins to be kept in working order, it might be tricky in the current situation. Qt3D might be quite mature, actually, since it's been around for longer and has no platform-specific dependencies other than OpenGL. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] qsrand(31415) int qt3d
I already sent this to the qt3d mailing list, but nobody reacts on this list (maybe due to the Bisbane situation): qglsection.cpp contains the following lines in the method QGLSectionPrivate::mapVertex: static bool seeded = false; if (!seeded) qsrand(31415); This makes the random number generator not very random! The tank example uses the usual qsrand(time(0)) which is superseded by qsrand(31415). Therefore the colors are always the same, when one starts the programs. I think these lines can and should be removed. I have no(t yet) access to gerrit, so could someone push this change? Thank you -- Helmut Mülner DIGITAL - Institute of Information and Communication Technologies JOANNEUM RESEARCH Forschungsgesellschaft mbH Steyrergasse 17, 8010 Graz, AUSTRIA phone: +43-316-876-2612 general fax: +43-316-876-1191 web:http://www.joanneum.at/digital e-mail: helmut.mül...@joanneum.atmailto:helmut.mül...@joanneum.at ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On Wed, 01 Aug 2012 17:02:14 +0200, C. Bergström cbergst...@pathscale.com wrote: For the companies reading this (RIM) - step up and post a job to get this thread back on track. We do have a job open for a skilled Qt and QML platform developer. It is in Germany though: https://barco.taleo.net/careersection/2/jobdetail.ftl?job=72703 Send me an email if you are interested or have questions. Regards, Peter -- Peter Rullmann | RD Manager Software | Barco Healthcare | +49(0)68199199152 Barco Control Rooms GmbH, Niederlassung Saarbrücken Registered at 76229 Karlsruhe, Amtsgericht Mannheim HRB 102241, Management: Stephen Leyland, Lutz Nehrhoff von Holderberg ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt Essentials
Greetings all, first of all let me express a deep and warm feeling for all those writing so nice code since so long and rewarded in such manner... Le 02/08/2012 14:26, Thiago Macieira a écrit : [...] Qt3D might be quite mature, actually, since it's been around for longer and has no platform-specific dependencies other than OpenGL. For what is worthes, here we're hardly waiting for Qt3D, delaying an internal long-term project which would have been quite similar. That said we're not the ones doing the job on Qt3D, so any decision you make will be seen as simply right. Kindly, -- /- Yves Bailly - Software developper -\ \- Sescoi RD - http://www.sescoi.fr -/ The possible is done. The impossible is being done. For miracles, thanks to allow a little delay. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt Essentials
Agree with Thiago: For 3D and Location, I have a feeling it's a little premature, but I can't blame you for it. Especially in Location's case, with lots of plugins to be kept in working order, it might be tricky in the current situation. Qt3D might be quite mature, actually, since it's been around for longer and has no platform-specific dependencies other than OpenGL. I can't blame you for it, and can adapt to the changes. IMHO they did really good work with 3D and it provides high QML value if we can establish a solid understanding of its support going forward. (I really liked 3D being in Qt essentials.) Lars' reasoning on the JS Backend seems solid. --charley ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On Thu, Aug 02, 2012 at 03:23:06PM +0300, a.gra...@gmail.com wrote: On 2 August 2012 15:15, Dmytro Poplavskiy dmytro.poplavs...@gmail.com wrote: It's possible to use LGPL Qt in the commercial products, it's only necessary to open changes done to the Qt itself if any. I will try to be more specific with my question :) What kind of license is using RIM for their Cascades UI? It's based on Qt/QML, but as fra as I know they are submitting patches upstream (please correct me if I'm wrong). RIM is using Qt open source (LGPL). What kind of license is using Jolla, for example? What I'm trying to understand is if there are any possible restrictions or problems using Qt for a mobile products both if Nokia is keeping Qt alive, or if they just abandon it or if they sell it or whatever To be really honest, generally I wouldn't think so, as Qt is LGPL. Of course, if Nokia pulls the plug, we are likely to have lesser contributions happening to Qt, which I believe will certainly impact the project - but imho not to the point of killing it. -- Rafael Roquetto | rafael.roque...@kdab.com | Software Engineer Klarälvdalens Datakonsult AB, a KDAB Group company Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) KDAB - Qt Experts - Platform-independent software solutions smime.p7s Description: S/MIME cryptographic signature ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
Hi, On 2 August 2012 15:40, Rafael Roquetto rafael.roque...@kdab.com wrote: RIM is using Qt open source (LGPL). so happy for this :) I'm happy because: 1) RIM is able to continue using Qt without any restriction 2) RIM must patch upstream any improvement and Qt will benefit from this To be really honest, generally I wouldn't think so, as Qt is LGPL. Of course, if Nokia pulls the plug, we are likely to have lesser contributions happening to Qt, which I believe will certainly impact the project - but imho not to the point of killing it. well, let's see what will happen. -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt Essentials
same feeling about QT3D : we can't compare QT3D Feature to for example ogre3D, but for simple things I use Qt3D since two years and it works fine for all my needs ... without bugs 2012/8/2 Charley Bay charleyb...@gmail.com Agree with Thiago: For 3D and Location, I have a feeling it's a little premature, but I can't blame you for it. Especially in Location's case, with lots of plugins to be kept in working order, it might be tricky in the current situation. Qt3D might be quite mature, actually, since it's been around for longer and has no platform-specific dependencies other than OpenGL. I can't blame you for it, and can adapt to the changes. IMHO they did really good work with 3D and it provides high QML value if we can establish a solid understanding of its support going forward. (I really liked 3D being in Qt essentials.) Lars' reasoning on the JS Backend seems solid. --charley ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
I'd like to propose we add Q_DECL_NOEXCEPT to many methods in our API. We already took the decision to turn exception off in most modules, except QtCore and where exceptions were used, like QtXmlPatterns. This is the next step. The Q_DECL_NOEXCEPT macro expands to noexcept, which is a new C++11 keyword. It is equivalent to noexcept(true), also new in C++11, and it means the method declares that it does not throw any exceptions. The benefits are: - callers do not need to emit exception handlers around such functions - the compiler may assume that no exception unexpectedly happens inside that function body, foregoing exception handlers inside it as well. The first behaviour is present with a C++03's empty exception specification (i.e., throw() in the function declaration), but the second behaviour is new in C++11. In the previous standard, the compiler was forced to emit exception code for the case when exceptions did happen even when they shouldn't. For that reason, the C++03 exception specification is deprecated. The drawback is that it makes the code ugly. The macro expands to nothing in C++98 mode. That means code using the API so marked and compiling in C++98 mode will simply not gain the benefits of the keyword, but should see no side effects. The presence of the keyword does not affect binary compatibility. With the Itanium C++ ABI, it's not present in the mangling. MSVC2010 does not supoprt it yet, so I cannot verify what it does. However, since C++11 support cannot be turned on or off on it, the keyword will be enabled or it won't depending on the compiler version, which means that binary compatibility is irrelevant. But if it does encode it in the mangling, we will not be able to add the keyword to methods in 5.1 or later. The question that remains is: what methods shall we add this to? We can add it to any method for which we can *prove* that it will never throw, which are: - leaf functions - functions calling only C functions or other noexcept functions Outside of QtCore, I propose we add it only to methods that are called often and frequently. In QtCore, I propose we add it to most tool methods that are provably noexcept. For example, the qHash functions, QMutex, our memory allocation routines (the throwing is in inline code), etc. PS: to be clear: new throws. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On quinta-feira, 2 de agosto de 2012 15.23.06, a.gra...@gmail.com wrote: On 2 August 2012 15:15, Dmytro Poplavskiy dmytro.poplavs...@gmail.com wrote: It's possible to use LGPL Qt in the commercial products, it's only necessary to open changes done to the Qt itself if any. I will try to be more specific with my question :) What kind of license is using RIM for their Cascades UI? It's based on Qt/QML, but as fra as I know they are submitting patches upstream (please correct me if I'm wrong). LGPL. What kind of license is using Jolla, for example? LGPL. What I'm trying to understand is if there are any possible restrictions or problems using Qt for a mobile products both if Nokia is keeping Qt alive, or if they just abandon it or if they sell it or whatever No, there aren't. Not from Qt's perspective, anyway. There's only a problem if the user / customer does not accept code under the LGPL. There are many companies that are like that, including entire industry sectors. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] qsrand(31415) int qt3d
* Done: Qthttps://bugreports.qt-project.org/browse/QTBUG/ QTBUG-26744https://bugreports.qt-project.org/browse/QTBUG-26744 Best regards Helmut Von: mitch.cur...@nokia.com [mailto:mitch.cur...@nokia.com] Gesendet: Donnerstag, 02. August 2012 14:46 An: Mülner, Helmut Betreff: RE: qsrand(31415) int qt3d Hi Helmut. You should create a bug report in Jira if you haven't already: https://bugreports.qt-project.org Cheers. From: development-bounces+mitch.curtis=nokia@qt-project.orgmailto:development-bounces+mitch.curtis=nokia@qt-project.org [development-bounces+mitch.curtis=nokia@qt-project.org] on behalf of ext Mülner, Helmut [helmut.muel...@joanneum.at] Sent: 02 August 2012 14:33 To: development@qt-project.orgmailto:development@qt-project.org Subject: [Development] qsrand(31415) int qt3d I already sent this to the qt3d mailing list, but nobody reacts on this list (maybe due to the Bisbane situation): qglsection.cpp contains the following lines in the method QGLSectionPrivate::mapVertex: static bool seeded = false; if (!seeded) qsrand(31415); This makes the random number generator not very random! The tank example uses the usual qsrand(time(0)) which is superseded by qsrand(31415). Therefore the colors are always the same, when one starts the programs. I think these lines can and should be removed. I have no(t yet) access to gerrit, so could someone push this change? Thank you -- Helmut Mülner DIGITAL - Institute of Information and Communication Technologies JOANNEUM RESEARCH Forschungsgesellschaft mbH Steyrergasse 17, 8010 Graz, AUSTRIA phone: +43-316-876-2612 general fax: +43-316-876-1191 web:http://www.joanneum.at/digital e-mail: helmut.mül...@joanneum.atmailto:helmut.mül...@joanneum.at ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
Hi, On 2 August 2012 15:36, Peter Rullmann peter.rullm...@barco.com wrote: On Wed, 01 Aug 2012 17:02:14 +0200, C. Bergström cbergst...@pathscale.com wrote: For the companies reading this (RIM) - step up and post a job to get this thread back on track. We do have a job open for a skilled Qt and QML platform developer. It is in Germany though: https://barco.taleo.net/careersection/2/jobdetail.ftl?job=72703 Send me an email if you are interested or have questions. You have good knowledge of VoIP, A/V code and kernel drivers. --- damn I don't have this :( -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On quinta-feira, 2 de agosto de 2012 15.48.19, a.gra...@gmail.com wrote: 2) RIM must patch upstream any improvement and Qt will benefit from this I'm not sure if you meant upstream in the way that I understand it. So let's be clear: Any user of LGPL must make their modifications available to anyone who received the binary code, under the LGPL. They do not have to make the modifications public in a website on the Internet. There are other forms. They do not have to make them available to someone who did not receive the binary forms. They do not have to upstream them. That is, they don't have to submit them to the original project and go through the process of getting it approved. They should, but they don't *have* to. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Qt Essentials
On quinta-feira, 2 de agosto de 2012 14.39.02, Yves Bailly wrote: For what is worthes, here we're hardly waiting for Qt3D, delaying an internal long-term project which would have been quite similar. That said we're not the ones doing the job on Qt3D, so any decision you make will be seen as simply right. This decision does not impact you then. The Qt3D module is there and will be released either way. The question is only whether it is part of the Essentials package. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
I'd say go ahead. Since adding it shouldn't change the ABI/name mangling, we can introduce this gradually anyway. Cheers, Lars On Aug 2, 2012, at 2:50 PM, ext Thiago Macieira thi...@kde.org wrote: I'd like to propose we add Q_DECL_NOEXCEPT to many methods in our API. We already took the decision to turn exception off in most modules, except QtCore and where exceptions were used, like QtXmlPatterns. This is the next step. The Q_DECL_NOEXCEPT macro expands to noexcept, which is a new C++11 keyword. It is equivalent to noexcept(true), also new in C++11, and it means the method declares that it does not throw any exceptions. The benefits are: - callers do not need to emit exception handlers around such functions - the compiler may assume that no exception unexpectedly happens inside that function body, foregoing exception handlers inside it as well. The first behaviour is present with a C++03's empty exception specification (i.e., throw() in the function declaration), but the second behaviour is new in C++11. In the previous standard, the compiler was forced to emit exception code for the case when exceptions did happen even when they shouldn't. For that reason, the C++03 exception specification is deprecated. The drawback is that it makes the code ugly. The macro expands to nothing in C++98 mode. That means code using the API so marked and compiling in C++98 mode will simply not gain the benefits of the keyword, but should see no side effects. The presence of the keyword does not affect binary compatibility. With the Itanium C++ ABI, it's not present in the mangling. MSVC2010 does not supoprt it yet, so I cannot verify what it does. However, since C++11 support cannot be turned on or off on it, the keyword will be enabled or it won't depending on the compiler version, which means that binary compatibility is irrelevant. But if it does encode it in the mangling, we will not be able to add the keyword to methods in 5.1 or later. The question that remains is: what methods shall we add this to? We can add it to any method for which we can *prove* that it will never throw, which are: - leaf functions - functions calling only C functions or other noexcept functions Outside of QtCore, I propose we add it only to methods that are called often and frequently. In QtCore, I propose we add it to most tool methods that are provably noexcept. For example, the qHash functions, QMutex, our memory allocation routines (the throwing is in inline code), etc. PS: to be clear: new throws. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On 2 August 2012 15:56, Thiago Macieira thiago.macie...@intel.com wrote: On quinta-feira, 2 de agosto de 2012 15.48.19, a.gra...@gmail.com wrote: 2) RIM must patch upstream any improvement and Qt will benefit from this I'm not sure if you meant upstream in the way that I understand it. So let's be clear: Any user of LGPL must make their modifications available to anyone who received the binary code, under the LGPL. They do not have to make the modifications public in a website on the Internet. There are other forms. They do not have to make them available to someone who did not receive the binary forms. They do not have to upstream them. That is, they don't have to submit them to the original project and go through the process of getting it approved. They should, but they don't *have* to. thanks for the clarification. Best regards, -- Andrea Grandi - Nokia-FNDC/Tampere / Qt Ambassador Ubuntu Member: https://launchpad.net/~andreagrandi website: http://www.andreagrandi.it ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
Thiago spaketh: I'd like to propose we add Q_DECL_NOEXCEPT to many methods in our API. We already took the decision to turn exception off in most modules, except QtCore and where exceptions were used, like QtXmlPatterns. This is the next step. The Q_DECL_NOEXCEPT macro expands to noexcept, which is a new C++11 keyword. It is equivalent to noexcept(true), also new in C++11, and it means the method declares that it does not throw any exceptions. The benefits are: - callers do not need to emit exception handlers around such functions - the compiler may assume that no exception unexpectedly happens inside that function body, foregoing exception handlers inside it as well. The first behaviour is present with a C++03's empty exception specification (i.e., throw() in the function declaration), but the second behaviour is new in C++11. In the previous standard, the compiler was forced to emit exception code for the case when exceptions did happen even when they shouldn't. For that reason, the C++03 exception specification is deprecated. The drawback is that it makes the code ugly. The macro expands to nothing in C++98 mode. That means code using the API so marked and compiling in C++98 mode will simply not gain the benefits of the keyword, but should see no side effects. The presence of the keyword does not affect binary compatibility. With the Itanium C++ ABI, it's not present in the mangling. MSVC2010 does not supoprt it yet, so I cannot verify what it does. However, since C++11 support cannot be turned on or off on it, the keyword will be enabled or it won't depending on the compiler version, which means that binary compatibility is irrelevant. But if it does encode it in the mangling, we will not be able to add the keyword to methods in 5.1 or later. Totally agree, support Q_DECL_NOEXCEPT being added to many methods in the API. I've seen many developers confuse exception-handling with normal-error-handling, and think it would be best to establish clarity for those operations that do not throw (and which logically should never throw). This is consistent with the C++11 intent of increased type safety, and we should use it, IMHO. The benefits seem compelling: (a) It better documents the design/implementation details (b) It may lead to more efficient compiled-binary I concede Thiago's identified drawback: (c) It makes the code ugly ...however, it adds-the-caveat that the code ugliness is the same as saying it better documents the design/implementation detail. Since this is a cross-platform reusable library and users rely upon the Qt docs anyway, I don't think that's much of a penalty (if any). The question that remains is: what methods shall we add this to? We can add it to any method for which we can *prove* that it will never throw, which are: - leaf functions - functions calling only C functions or other noexcept functions Outside of QtCore, I propose we add it only to methods that are called often and frequently. In QtCore, I propose we add it to most tool methods that are provably noexcept. For example, the qHash functions, QMutex, our memory allocation routines (the throwing is in inline code), etc. PS: to be clear: new throws. I'd vote to add-it-everywhere-possible, starting with those Thiago identified. IMHO it should be good practice for developers to add-this-to-their-API-review-checklist to use the Q_DECL_NOEXCEPT everywhere possible as they grow/maintain their APIs. --charley ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 13.00.22, lars.kn...@nokia.com wrote: I'd say go ahead. Since adding it shouldn't change the ABI/name mangling, we can introduce this gradually anyway. By the way, let's be conservative instead of doing it throughout. Once added, the noexcept keyword cannot be removed. That breaks behaviour compatibility, even if binary compatibility is retained. That is, noexcept becomes part of our API. That means adding noexcept to a method means we tie our hands in that method to never throw -- most often, never fail. If the method can never fail, it's usually a good candidate. For example, in when I was just now adding it to qHash for QDateTime, I realised it does complex operations. Right now, none of those operations allocate memory, but it's actually very close to doing that. QDateTime has a d pointer and the hash function does some manipulation of the data. If I add it now, it means it cannot allocate memory, ever, in Qt 5. For that reason, I'm not sure I can do it: what if the implementation for QDateTime when timezones are taken into account needs to new? The same applies to QMutex::lock: I'm not sure if I should add it. I want to. But what if we write a std::mutex implementation next year? That one can throw. I'm going to add, though, on the assumption that we'd translate std::mutex's exceptions to error codes. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
Hi Thiago, On Thursday August 2 2012, Thiago Macieira wrote: I'd like to propose we add Q_DECL_NOEXCEPT to many methods in our API. +1 from me, too. [Though it doesn't seem to help with the problem that move constructors can't be inline if the class uses smart pointers. It still wants to call the dtor of the smart pointer. Might be just GCC not correctly implementing it, though (code language only - whatever that means).] Need to be careful with templates. Can't use add the unrestricted noexcept there, need to use noexcept(noexcept(expr)), which is even uglier :) Re: ugliness: I expect people will become familiar with this sooner than later. The C++11 std library is _full_ of noexcept tags. Thanks, Marc -- Marc Mutz marc.m...@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH Co.KG, a KDAB Group Company www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-Independent Software Solutions ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 16.02.43, Marc Mutz wrote: Need to be careful with templates. Can't use add the unrestricted noexcept there, need to use noexcept(noexcept(expr)), which is even uglier templatetypename T inline uint qHash(const T t, uint seed) Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(t))) { return (qHash(t) ^ seed); } template typename T1, typename T2 inline uint qHash(const QPairT1, T2 key, uint seed = 0) Q_DECL_NOEXCEPT_EXPR(noexcept(qHash(key.first, seed)) noexcept(qHash(key.second, seed))) { ... } By the way, I'm running into an issue which I'm not entirely sure whether it's a design issue. Imagine this case: class Object { void f(); void g() noexcept(same noexcept status as f); }; That is, I want to declare g to be as noexcept as its sibling function f. How? All of these options fail: noexcept(noexcept(f)) - evaluates to true noexcept(noexcept(Object::f)) - error: invalid use of non-static member function ‘void Object::f()' noexcept(noexcept(f())) - error: cannot call member function ‘void Object::f()’ without object noexcept(noexcept(this-f())) - error: invalid use of ‘this’ at top level noexcept(noexcept(Object().f())) - error: invalid use of incomplete type ‘struct Object’ Any suggestions? My actual use-case is of a function declared in a base-class: I want QMutex::lock() to be noexcept if QBasicMutex::lockInternal() is noexcept. In that particular case, it works like this: class QMutex : public QBasicMutex { static QBasicMutex *dummyBasicMutex() noexcept; public: void lock() noexcept(noexcept(dummyBasicMutex()-lockInternal())); }; But it's ugly. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Can we have id's in dynamically generated elements for the next QML?
On Thu, Aug 2, 2012 at 4:29 AM, Alan Alpert alan.alp...@nokia.com wrote: On Wed, 1 Aug 2012 12:59:08 ext Charley Bay wrote: Mark spaketh: Sadly, QML 1 doesn't have id in dynamically generated id. That is a real big pain if you want to drag/drop something since then you need... an id! Right now i'm trying to fight against a lot of issues that wouldn't even be there if i simply had an ID. You can read more about that in this blog post: http://kdeblog.mageprojects.com/2012/08/01/what-will-qml-calendar-have-pro gress-update-qml-issue/ I'm also curious to know why the decision was ever made to have dynamically generated elements exist without id? Is there any possibility that QML 2 (or QML 2.1 or whatever comes after 2) is going to have ID's for generated elements? This is an interesting thing that I'm still trying to grok (the direction-forward is not obvious to me yet, and I'm not sure what the Trolls have discussed on IRC). I know it's been discussed (a little), and that I'm not sure I'm about to add much. IMHO the issue is this declarative-approach, which IMHO is quite new as a paradigm. The QML components/items themselves are independent-actors. They don't use layouts *explicitly* in the parent/child relationship, and shouldn't (but yes, layouts can be implemented to visually place collections of items, and that is legitimate). While imperative organization is possible, it seems it should be discouraged as not-best-practice. I'm not-yet sure whether IDs are part of that topic: *- I *know* instance-IDs are needed for imperative. *- I *don't* know if instance-IDs are needed for declarative. I think you've almost got it. The thing you're missing is that that in QML, ids aren't for instances. Declarative languages do not follow such a strict instance mapping as imperative logic (where you need to keep track of every individual item - declarative languages do that for you in their own crazy ways ;) ). For example, if you have the following QML you might think you have an ID to an instance: Rectangle { id: rect; Rectangle{ id: rect2; width: rect.width }}. But if you place that inside Button.qml, you have one instance of 'rect' for every Button{} you use in other files. Much of the power from QML componentization is that you don't have to track the instances here yourself - write one Button which works within its own file, with the ids in that file, and the engine takes care of multiple instances for you. It's almost amusing that QML is so successful in hiding the complexities of these multiple instances that people don't even realize it's happening :P . I'm not laughing :p but you're right, it is very powerful yet simple. (This is my internal speculation/mapping, I'm just trying to understand/grok the new paradigm to where best-practices become obvious to me.) For example, in the design/problem you describe, the following design option *might* be reasonable without IDs (and I concede many other design options exist if we *do* have IDs): *- The MyCalendarEntry (QML component, no GUI real estate) has a DateTimeSpan property which implies where it is on a calendar. *- A MyCalendarItem (QML item, with GUI real estate) parents (or references) a SINGLE MyCalendarEntry to represent that MyCalendarEntry. (Conceivably it would be 1:1, but it seems reasonable to have many MyCalendarItem GUI-things represent the same MyCalendarEntry instance if there were many views of that one entry in different calendar-rendering-scenarios.) *- Each MyCalendarItem (QML GUI item) is an independant-actor which finds-its-place upon a parent MyCalendarDisplay QML GUI item. The parent MyCalendarDisplay has its own layout that physically arranges its children, which occupy their own real-estate-needs (based on their internal MyDateTimeSpan property). (For example, perhaps the calendar-display is a MyCalendarDay or MyCalendarWeek or MyCalendarMonth GUI-item, and there would be different layouts for each of those instances.) *- This works without-instance-IDs because creating a MyCalendarEntry would *automatically* trigger creation of a MyCalendarItem, which is *automatically* parented by a MyCalendarDisplay, and which physically places the items with Z-order. The drag/drop manipulation would directly manipulate the DateTimeSpan in the MyCalendarEntry, through the handles on the MyCalendarItem. Of course, another design option would be for the MyCalendarEntry QML component to have a C++ back-end-object with a unique ID, which could be used for a universal ID from within QML. The first design option is effectively leveraging the componentization abilities of QML. The second one is leveraging the C++ integration that makes all things possible if you're having trouble doing it in QML. They are both such great aspects of QML that I feel I shouldn't judge either one as a better choice ;). I dunno. I'm about to embark on a
Re: [Development] state of Qt's Australia office
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am 02.08.2012 14:56, schrieb Thiago Macieira: On quinta-feira, 2 de agosto de 2012 15.48.19, a.gra...@gmail.com wrote: 2) RIM must patch upstream any improvement and Qt will benefit from this I'm not sure if you meant upstream in the way that I understand it. So let's be clear: Any user of LGPL must make their modifications available to anyone who received the binary code, under the LGPL. They do not have to make the modifications public in a website on the Internet. There are other forms. They do not have to make them available to someone who did not receive the binary forms. They do not have to upstream them. That is, they don't have to submit them to the original project and go through the process of getting it approved. They should, but they don't *have* to. As one can see at Thiago's statistics site you will see that there are RIM commits going upstream, they are marked there as QNX. See http://www.macieira.org/blog/qt-stats/ - -- Andreas Holzammer | andreas.holzam...@kdab.com | Software Engineer KDAB (Deutschland) GmbHCo KG, a KDAB Group company Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.14 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJQGpjJAAoJEJw7+fLx1vsLHjkH/2Z9MuVIIpBt6+3AV+vIWK3t Iouu6MDD7FbMCvPpg/8TFkAaorzNgjNdXamsOxq8+JU5YSIs+bvsV3UM0wYLzRMf 21myDyeU9+wr8+jO161pOtv8gg1y3WVjsMjZH2JlPN6axAPJ5Scw2hlgXWQqH9FY Vvh4WZFFDHJOB3zD8UsZbTvzToIa2AewOQ7vQoht3aFjUgNTRcwsIT7Q4FZsNk9D EHIJ/5TOKvjoQibGslAHO8b7GfIkC0+DfaP1TZ4uy5zYukSgI8mf3LB4osBH+Xve 9kpV4c+NahDJUYgzzOuhexOshLBtEhIE5SYL3jZ6Ois5gB98V5dlmZmx5ehvcUA= =hKCj -END PGP SIGNATURE- smime.p7s Description: S/MIME Kryptografische Unterschrift ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Can we have id's in dynamically generated elements for the next QML?
But i still don't fully understand how to make a component draggable when it's being created dynamically through a Repeater.. Don't you just need an id for that to work? You can use the delegate id to do the dragging. Take a look in this [1] example, maybe it fits for your case. [1] - http://quickgit.kde.org/index.php?p=kde-workspace.gita=blobh=6d445510fc7b466b0d6a912b20179d296626414ehb=551e443f7b3d598971d4c29eb297a7168a10d337f=plasma%2Fdesktop%2Fapplets%2Fpager%2Fpackage%2Fcontents%2Fui%2Fmain.qml Cheers, -- Luís Gabriel OpenBossa - INdT ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
Hi, On Thursday 02 August 2012 15:27:03 Thiago Macieira wrote: For example, in when I was just now adding it to qHash for QDateTime, I realised it does complex operations. Right now, none of those operations allocate memory, but it's actually very close to doing that. QDateTime has a d pointer and the hash function does some manipulation of the data. If I add it now, it means it cannot allocate memory, ever, in Qt 5. For that reason, I'm not sure I can do it: what if the implementation for QDateTime when timezones are taken into account needs to new? Where is qHash(QDateTime) defined? It doesn't seem to be where I expected it (qhash.* or qdatetime.*). Anyway, Timezones can do rather complex calculations that may require memory- allocations, but only when the QDateTime actually does calculations: * add or subtract some time to/from the QDateTime (addSecs, addMSecs) * convert to a different time zone (toUtc, toLocalTime, toTimeZone(x)) * convert to or from time_t Any of those operations needs a search of the time zone for the offset valid at the time to be converted, if we are lucky the offset is already in memory, if not we need to retrieve it from a file, or worse to calculate it from a POSIX-style rule (and then cache it for later). When converting to another zone things get worse. Depending on the implementation that will end up in Qt the actual lookup for which time zone is being used may have side effects too. Konrad signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 17.55.54, Konrad Rosenbaum wrote: Hi, On Thursday 02 August 2012 15:27:03 Thiago Macieira wrote: For example, in when I was just now adding it to qHash for QDateTime, I realised it does complex operations. Right now, none of those operations allocate memory, but it's actually very close to doing that. QDateTime has a d pointer and the hash function does some manipulation of the data. If I add it now, it means it cannot allocate memory, ever, in Qt 5. For that reason, I'm not sure I can do it: what if the implementation for QDateTime when timezones are taken into account needs to new? Where is qHash(QDateTime) defined? It doesn't seem to be where I expected it (qhash.* or qdatetime.*). qdatetime.{h,cpp} -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On 02/08/2012 07:50, ext Thiago Macieira wrote: The macro expands to nothing in C++98 mode. That means code using the API so marked and compiling in C++98 mode will simply not gain the benefits of the keyword, but should see no side effects. The presence of the keyword does not affect binary compatibility. With the Itanium C++ ABI, it's not present in the mangling. MSVC2010 does not supoprt it yet, so I cannot verify what it does. However, since C++11 support cannot be turned on or off on it, the keyword will be enabled or it won't depending on the compiler version, which means that binary compatibility is irrelevant. But if it does encode it in the mangling, we will not be able to add the keyword to methods in 5.1 or later. MSVC2012 doesn't support it (yet) either. However, MSVC compilers since 2003 support the almost equivalent throw()/throw(...)/throw(type) exception specification. So, perhaps we can identify the cases where they are similar and use that with MSVC until proper noexcept()/noexcept(type) support is provided? See http://msdn.microsoft.com/en-us/library/wfa0edys(v=vs.100).aspx for more details. -- .marius ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 17.15.26, marius.storm-ol...@nokia.com wrote: So, perhaps we can identify the cases where they are similar and use that with MSVC until proper noexcept()/noexcept(type) support is provided? Yes. I can identify where they are similar: nowhere. If you add it, the function with the throw() specification will *add* code to check all exceptions. That's why throw() is deprecated. Don't use it. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On 02/08/2012 12:19, ext Thiago Macieira wrote: On quinta-feira, 2 de agosto de 2012 17.15.26, marius.storm-ol...@nokia.com wrote: So, perhaps we can identify the cases where they are similar and use that with MSVC until proper noexcept()/noexcept(type) support is provided? Yes. I can identify where they are similar: nowhere. If you add it, the function with the throw() specification will *add* code to check all exceptions. That's why throw() is deprecated. Huh? The documentation explicitly says void MyFunction(int i) throw(); tells the compiler that the function does not throw any exceptions. It is the equivalent to using __declspec(nothrow). So, i.o.w. throw() == __declspec(nothrow), which in turn means the compiler can eliminate the mechanics of tracking the lifetime of certain unwindable objects in such a function, and significantly reduce the code size. So no, throw() will effectively remove all checking for exceptions. Using throw(...) *will* add code to check all exceptions, but that's not what we were talking about. -- .marius ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On 02/08/2012 12:32, ext marius.storm-ol...@nokia.com wrote: On 02/08/2012 12:19, ext Thiago Macieira wrote: On quinta-feira, 2 de agosto de 2012 17.15.26, marius.storm-ol...@nokia.com wrote: So, perhaps we can identify the cases where they are similar and use that with MSVC until proper noexcept()/noexcept(type) support is provided? Yes. I can identify where they are similar: nowhere. ... So, i.o.w. throw() == __declspec(nothrow), which in turn means ... So no, throw() will effectively remove all checking for exceptions. I see that we cannot use throw(type) though, since MSVC simply turns that into throw(...), which is not what you want. -- .marius ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 17.32.36, marius.storm-ol...@nokia.com wrote: the compiler can eliminate the mechanics of tracking the lifetime of certain unwindable objects in such a function, and significantly reduce the code size. That's in the caller. The problem is in the callee. The function that got the throw() decoration gets more code to verify that it is not leaking any exceptions. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On Thursday 02 August 2012, Thiago Macieira wrote: On quinta-feira, 2 de agosto de 2012 17.55.54, Konrad Rosenbaum wrote: Where is qHash(QDateTime) defined? It doesn't seem to be where I expected it (qhash.* or qdatetime.*). qdatetime.{h,cpp} Ok, found it - had the wrong branch checked out for some odd reason. This has a high likelyhood of causing allocations if time zones, calenders or anything fancy is active: it causes time zone calculations, which potentially cause allocations. Konrad signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 19.25.31, marius.storm-ol...@nokia.com wrote: Anyways, I see that LLVM/libc++ (http://llvm.org/svn/llvm-project/libcxx/trunk/include/__config) defines it like this: #if (__has_feature(cxx_noexcept)) # define _NOEXCEPT noexcept # define _NOEXCEPT_(x) noexcept(x) #else # define _NOEXCEPT throw() # define _NOEXCEPT_(x) #endif so, they do what I suggested, except they use 'noexcept' instead of 'noexcept(true)'. (Shouldn't really matter, just that the latter is more clear, IMO.) This is GCC: #ifndef _GLIBCXX_NOTHROW # ifndef __cplusplus # define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) # endif #endif #ifndef _GLIBCXX_NOEXCEPT # ifdef __GXX_EXPERIMENTAL_CXX0X__ # define _GLIBCXX_NOEXCEPT noexcept # define _GLIBCXX_USE_NOEXCEPT noexcept # define _GLIBCXX_THROW(_EXC) # else # define _GLIBCXX_NOEXCEPT # define _GLIBCXX_USE_NOEXCEPT throw() # define _GLIBCXX_THROW(_EXC) throw(_EXC) # endif #endif #ifndef _GLIBCXX_NOTHROW # define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT #endif There are three macros: NOEXCEPT, USE_NOEXCEPT and NOTHROW: $ grep -r _GLIBCXX_NOTHROW *~x86_64-redhat-linux | wc -l 13 $ grep -r _GLIBCXX_NOEXCEPT *~x86_64-redhat-linux | wc -l 607 $ grep -r _GLIBCXX_USE_NOEXCEPT *~x86_64-redhat-linux | wc -l 264 Don't ask me why they need three. But two of them expand to noexcept or empty, only USE_NOEXCEPT expands to throw() in C++98 code. The NO_THROW ones are used only in C functions (the __cxa_foo ones). And I think the USE_NOEXCEPT one is used only where the C++98 standard required it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 19.47.46, marius.storm-ol...@nokia.com wrote: This tells me that MSVC's implementation of throw() == noexcept(true) for all intents and purposes, and we can use that in Qt. Ah, that changes everything. But we can just use __declspec(nothrow) then, to be on the safe side. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] state of Qt's Australia office
On 02/08/2012, at 10:02 PM, lars.kn...@nokia.com lars.kn...@nokia.com wrote: I talked a bit with the team in Brisbane this morning. Obviously the mood there is somewhat grim. Grim yes, but at least we now know what is happening with our jobs in respect to Nokia. Talking for me, it's really sad to see this happen. There are a lot of bright engineers working in that office and I have been working with many of them for quite some time now. I really hope that everybody will find a new job soon, and that most of the people will actually stay connected to the Qt ecosystem and Qt project in some form or another. For Qt as a product, it is now really important to remember that we do have the Qt project and a live and active community around it. This might make some things a bit more difficult in the short term, but we will find ways to deal with this and to continue to move Qt forward. I'll try to keep this list posted and informed as good as I can. Luckily, the majority of work for 5.0 has already been done in these effected modules. I cannot speak for others, but I will certainly help out when/if I can, regardless of my employment. I want to continue working with sensors and sensor gestures, but I can help maintain the code I helped out with in other areas - sysinfo, bearermanagement backends. Lars On Aug 2, 2012, at 10:38 AM, ext martin.jo...@nokia.com martin.jo...@nokia.com wrote: I'm sure QML/QtQuick will live on - only Brisbane is affected. I'm not sure if/how we, the Brisbane developers, will continue to contribute, however. Br, Martin. From: ext qtnext [qtn...@gmail.com] Sent: Thursday, 2 August 2012 4:46 PM To: Jones Martin (Nokia-MP/Brisbane) Cc: development@qt-project.org Subject: Re: [Development] state of Qt's Australia office Le jeudi 2 août 2012, martin.jo...@nokia.com a écrit : We just found out yesterday. We haven’t had a chance to discuss continuation of QML/QtQuick, but we have passionate developers here who will continue contributing if possible. Qtquick was the main point of qt5... If your company depends on QML/QtQuick, then now is the time to discuss a mutually beneficial arrangement with us J I have invested a lot of time in qt5/qml trusting in what nokia said before... But i have a very small company so the only way to help that i can do is to pay for a commercial licence if there is a trustable company that continue qt Martin. From: development-bounces+martin.jones=nokia@qt-project.org [mailto:development-bounces+martin.jones=nokia@qt-project.org] On Behalf Of ext qtnext Sent: Wednesday, August 01, 2012 10:48 PM To: development@qt-project.org Subject: Re: [Development] state of Qt's Australia office QtDeclarative ? Does it mean that nobody in Qt team will work on qml (Quick2) ? 2012/8/1 Atlant Schmidt aschm...@dekaresearch.com Folks: (more) Let's hope that the remaining Trolls land in a more-friendly fjord! Atlant -Original Message- From: development-bounces+aschmidt=dekaresearch@qt-project.org [mailto:development-bounces+aschmidt=dekaresearch@qt-project.org] On Behalf Of Atlant Schmidt Sent: Wednesday, August 01, 2012 8:30 AM To: 'C. Bergström'; development@qt-project.org Subject: Re: [Development] state of Qt's Australia office Folks: I wasn't going to mention this but since the topic has come up... A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian Nyström (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia's great experiment in frameworks (mobile and otherwise) is over. Atlant * After having previously shot Symbian and Maemo/MeeGo dead This e-mail and the information, including any attachments, it contains are intended to be a confidential communication only to the person or entity to whom it is addressed and may contain information that is privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify the sender and destroy the original message. Thank you. Please consider the environment before printing this email. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development Clickhttps://www.mailcontrol.com/sr/ufrRwuioVx3TndxI!oX7UqcUCtlg0TD8RfkI3WfseUnsO8bgDK+guU4ZxjFLV1IJtna8Ms8t0Hr1lqOECv!Swg== to report this email as spam. This e-mail and the information, including any attachments, it contains are intended to be a
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On Thursday August 2 2012, Konrad Rosenbaum wrote: On Thursday 02 August 2012, Thiago Macieira wrote: On quinta-feira, 2 de agosto de 2012 17.55.54, Konrad Rosenbaum wrote: Where is qHash(QDateTime) defined? It doesn't seem to be where I expected it (qhash.* or qdatetime.*). qdatetime.{h,cpp} Ok, found it - had the wrong branch checked out for some odd reason. This has a high likelyhood of causing allocations if time zones, calenders or anything fancy is active: it causes time zone calculations, which potentially cause allocations. That begs the question whether this is what should happen for a _hash_, which is supposed to be _fast_ :) -- Marc Mutz marc.m...@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH Co.KG, a KDAB Group Company www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-Independent Software Solutions ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
Hi Thiago, On Thursday August 2 2012, Thiago Macieira wrote: The benefits are: - callers do not need to emit exception handlers around such functions - the compiler may assume that no exception unexpectedly happens inside that function body, foregoing exception handlers inside it as well. AFAIU, the compiler needs to make sure that std::terminate is called if an unexpected exception is thrown, which would require the equivalent of a function-try-catch block where the catch block calls std::terminate(). Do you have a reference? The first behaviour is present with a C++03's empty exception specification (i.e., throw() in the function declaration), AFAIU, that's only true for MSVC, and counter to what C++03 actually mandated. but the second behaviour is new in C++11. In the previous standard, the compiler was forced to emit exception code for the case when exceptions did happen even when they shouldn't. For that reason, the C++03 exception specification is deprecated. Ok, here I'm with you again. Btw, I've done some very rough tests: What I set out to check was whether calling non-noexcept functions from noexcept ones incurs a penalty for the std::terminate call that is required if a noexcept function would leak an exception (it can't, it must invoke std::terminate() instead, and the GCC compilate works as expected in that respect, when I make foo() below throw) vs. if the compiler can prove that all operations are noexcept. What I found was that a declaration int foo() noexcept; vs. int foo(); doesn't influence the assembly at all (expected, the exception must be swallowed inside foo(), not, as with throw() by the caller of foo()). But int foo(); int bar() noexcept { const int f = foo(); return 2*f;} seems to introduce a new entry in the gcc_except_table (that's expected, too. bar() needs to be prepared for foo() to throw and call std::terminate() in response) whereas int foo() noexcept; int bar() noexcept { const int f = foo(); return 2*f; } does not (also expected, as the compile can now prove that the body of bar() can't throw; the responsibility of preventing exceptions from exiting foo() is now with foo()'s implementation). The function itself is unchanged, though. I don't know enough compiler internals to properly interpret this result :) In a similar test, int foo(); int bar() noexcept { const int f = foo(); return 2*f; } also adds an entry to the exception table, compared to int foo(); int bar() { const int f = foo(); return 2*f; } which doesn't. What's more interesting is that I get with -m64 -O2 and no -g an .o size difference of 1360 bytes for the second vs. 1576 for the first variant. This size difference is much bigger than I would have expected from the .s-file diff. For comparision, the size for both bar() and foo() noexcept is also 1360. If there really is a 200 byte overhead per nonexcept function calling non-noexcept functions, we'd need to avoid marking functions noexcept that, say, Q_ASSERT(), e.g., even though we could probably live with the std::terminate that's called if Q_ASSERT() throws (at that point, it's clear that the assertion failed, if not from the resulting backtrace) :) Even if it isn't a full 200 bytes overhead, we should make qt_assert() noexcept before putting it on, say, QMutex::lock() which calls it. Thanks, Marc -- Marc Mutz marc.m...@kdab.com | Senior Software Engineer KDAB (Deutschland) GmbH Co.KG, a KDAB Group Company www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-Independent Software Solutions ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On sexta-feira, 3 de agosto de 2012, às 00.25.04, you wrote: AFAIU, the compiler needs to make sure that std::terminate is called if an unexpected exception is thrown, which would require the equivalent of a function-try-catch block where the catch block calls std::terminate(). Do you have a reference? Looking at the code generated by GCC, it looks like it generates no extra *code*, but it does generate a block of exception data. It indicates probably that no exceptions are expected in that block and that the stack unwinder should do what it must on its own. What I found was that a declaration int foo() noexcept; vs. int foo(); doesn't influence the assembly at all (expected, the exception must be swallowed inside foo(), not, as with throw() by the caller of foo()). That's the difference in behaviour, the flaw in the original standard. But int foo(); int bar() noexcept { const int f = foo(); return 2*f;} seems to introduce a new entry in the gcc_except_table (that's expected, too. bar() needs to be prepared for foo() to throw and call std::terminate() in response) whereas Yep. int foo() noexcept; int bar() noexcept { const int f = foo(); return 2*f; } does not (also expected, as the compile can now prove that the body of bar() can't throw; the responsibility of preventing exceptions from exiting foo() is now with foo()'s implementation). Yep. Which is why we should use noexcept only when we can prove that it doesn't throw. Most of glibc does declare its functions as nothrow, even in C mode. The keyword says no exceptions will leak. If, in addition, the compiler can prove that none can be produced, it doesn't need to write the exception table. The function itself is unchanged, though. I don't know enough compiler internals to properly interpret this result :) In a similar test, int foo(); int bar() noexcept { const int f = foo(); return 2*f; } also adds an entry to the exception table, compared to int foo(); int bar() { const int f = foo(); return 2*f; } which doesn't. Because no unwinding is necessary. Now try adding a type with a destructor before the call to foo() and you'll see something quite different. What's more interesting is that I get with -m64 -O2 and no -g an .o size difference of 1360 bytes for the second vs. 1576 for the first variant. This size difference is much bigger than I would have expected from the .s-file diff. For comparision, the size for both bar() and foo() noexcept is also 1360. You can't compare the size in .o since it contains relocation information that will be removed by the linker. If there really is a 200 byte overhead per nonexcept function calling non-noexcept functions, we'd need to avoid marking functions noexcept that, say, Q_ASSERT(), e.g., even though we could probably live with the std::terminate that's called if Q_ASSERT() throws (at that point, it's clear that the assertion failed, if not from the resulting backtrace) :) I don't think it's 200 bytes, but there is an overhead. An overhead, mind you, that is read-only, sharable and clean (no relocations). The exception tables are usually pretty far from the text, which means the pages containing them are often not demand-paged into memory at all. It makes the library size bigger, but shouldn't affect much at runtime. That said, you're right: we should make our noexcept functions call only other noexcept functions. Even if it isn't a full 200 bytes overhead, we should make qt_assert() noexcept before putting it on, say, QMutex::lock() which calls it. Agreed. It's already noreturn on non-Windows, noexcept makes sense. Even if it *can* throw, it makes no sense for qt_assert to throw and cause a stack unwinding, thereby permitting code to continue executing after a double fault (assertion and exception). -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel Open Source Technology Center PGP/GPG: 0x6EF45358; fingerprint: E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Proposal: adding Q_DECL_NOEXCEPT to many methods
On quinta-feira, 2 de agosto de 2012 23.57.58, Marc Mutz wrote: noexcept(std::declvalObject().f()) should work. Unfortunately, while the C++11 compiler support seems to be going fine, the library support is lagging WAY behind. Add to that the fact that some compilers are being used with incompatible Standard Libraries, meaning the features don't work, even if present. To make it all worse, there are no library version numbers, so we can't detect them properly. Exhibit A: MSVC supports initialiser lists, but it doesn't have initializer_list... Exhibit B: ICC compiling certain GCC headers will cause it to fail to link complaining about undefined references to functions that should be intrinsics. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden signature.asc Description: This is a digitally signed message part. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development