[Development] Remove OSX 10.6 Build?

Jake Petroules jake.petroules at petroules.com
Tue Jul 15 23:42:57 CEST 2014


On 2014-07-15, at 04:53 PM, Adam Light <aclight at gmail.com> wrote:

> Getting back to a thread from a few months ago....
> 
> 
> On Mon, Mar 24, 2014 at 3:57 PM, Jake Petroules <jake.petroules at petroules.com> wrote:
> 
> Pretty much the only thing you lose with ARC is that it's 64-bit only and thus using it means waving goodbye to 32-bit Qt on OS X completely. I don't know if this is a problem for anyone. There's also a selection of classes to which zeroing weak references cannot be made at all, and this list has changed from release to release.
> 
> 
> Have any final decisions been made on this matter?
> 
> Our Qt based application, which we hope to release next year, must be able to be *both* 32 and 64 bit on Macintosh. This isn't due to hardware constraints but because our application allows users to use 3rd party libraries for which they often don't have the source code. Since the version of the application we are currently shipping is 32-bit only on Macintosh, none of these 3rd party libraries will function if we provide only a 64-bit version of our application. This will make it much more difficult for our users to upgrade when we release the new version, and that's something we'd like to avoid.
> 
> We'd like to plan to use Qt 5 for our application (instead of 4.8) but if it soon won't be possible to build a 32-bit version we might have to stick with Qt 4.8 (of course, that has problems of its own).
> 
> For what it's worth, we're OK dropping support for OSX 10.6, just not the ability to build a 32-bit application.
> 
> Thanks
> 
> Adam
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

As I've mentioned before, I don't think dropping 32-bit support would gain much for Qt. In fact it's more work to drop it than simply keep it around.

For qtbase (and other modules probably have less): it's especially not worth it for only 96 Objective-C++ source files (and one Objective-C) comprising barely 29k lines of code (compared to around 5300 files / 2m LOC for C/C++) - and remember, all but one of these files is Objective-C++, not pure Objective-C, so a good chunk of that 29k figure will just be C++, bringing the amount even lower:

find . -name '*.m' -o -name '*.mm'
./config.tests/mac/corewlan/corewlantest.mm
./examples/widgets/mac/qmaccocoaviewcontainer/main.mm
./examples/widgets/mac/qmacnativewidget/main.mm
./src/corelib/io/qfilesystemwatcher_fsevents.mm
./src/corelib/io/qstandardpaths_ios.mm
./src/corelib/io/qurl_mac.mm
./src/corelib/kernel/qcore_mac_objc.mm
./src/corelib/tools/qbytearray_mac.mm
./src/corelib/tools/qlocale_mac.mm
./src/corelib/tools/qstring_mac.mm
./src/corelib/tools/qtimezoneprivate_mac.mm
./src/gui/accessible/qaccessiblecache_mac.mm
./src/network/access/qnetworkreplynsurlconnectionimpl.mm
./src/platformsupport/cglconvenience/cglconvenience.mm
./src/platformsupport/clipboard/qmacmime.mm
./src/platformsupport/eventdispatchers/qeventdispatcher_cf.mm
./src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
./src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
./src/plugins/bearer/corewlan/qcorewlanengine.mm
./src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm
./src/plugins/platforms/cocoa/main.mm
./src/plugins/platforms/cocoa/qcocoaaccessibility.mm
./src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm
./src/plugins/platforms/cocoa/qcocoaapplication.mm
./src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
./src/plugins/platforms/cocoa/qcocoaautoreleasepool.mm
./src/plugins/platforms/cocoa/qcocoabackingstore.mm
./src/plugins/platforms/cocoa/qcocoaclipboard.mm
./src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
./src/plugins/platforms/cocoa/qcocoacursor.mm
./src/plugins/platforms/cocoa/qcocoadrag.mm
./src/plugins/platforms/cocoa/qcocoaeventdispatcher.mm
./src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
./src/plugins/platforms/cocoa/qcocoafontdialoghelper.mm
./src/plugins/platforms/cocoa/qcocoaglcontext.mm
./src/plugins/platforms/cocoa/qcocoahelpers.mm
./src/plugins/platforms/cocoa/qcocoainputcontext.mm
./src/plugins/platforms/cocoa/qcocoaintegration.mm
./src/plugins/platforms/cocoa/qcocoaintrospection.mm
./src/plugins/platforms/cocoa/qcocoakeymapper.mm
./src/plugins/platforms/cocoa/qcocoamenu.mm
./src/plugins/platforms/cocoa/qcocoamenubar.mm
./src/plugins/platforms/cocoa/qcocoamenuitem.mm
./src/plugins/platforms/cocoa/qcocoamenuloader.mm
./src/plugins/platforms/cocoa/qcocoamimetypes.mm
./src/plugins/platforms/cocoa/qcocoanativeinterface.mm
./src/plugins/platforms/cocoa/qcocoaprintdevice.mm
./src/plugins/platforms/cocoa/qcocoaprintersupport.mm
./src/plugins/platforms/cocoa/qcocoaservices.mm
./src/plugins/platforms/cocoa/qcocoasystemsettings.mm
./src/plugins/platforms/cocoa/qcocoasystemtrayicon.mm
./src/plugins/platforms/cocoa/qcocoatheme.mm
./src/plugins/platforms/cocoa/qcocoawindow.mm
./src/plugins/platforms/cocoa/qmacclipboard.mm
./src/plugins/platforms/cocoa/qmultitouch_mac.mm
./src/plugins/platforms/cocoa/qnsview.mm
./src/plugins/platforms/cocoa/qnsviewaccessibility.mm
./src/plugins/platforms/cocoa/qnswindowdelegate.mm
./src/plugins/platforms/cocoa/qpaintengine_mac.mm
./src/plugins/platforms/cocoa/qprintengine_mac.mm
./src/plugins/platforms/ios/plugin.mm
./src/plugins/platforms/ios/qiosapplicationdelegate.mm
./src/plugins/platforms/ios/qiosapplicationstate.mm
./src/plugins/platforms/ios/qiosbackingstore.mm
./src/plugins/platforms/ios/qiosclipboard.mm
./src/plugins/platforms/ios/qioscontext.mm
./src/plugins/platforms/ios/qioseventdispatcher.mm
./src/plugins/platforms/ios/qiosglobal.mm
./src/plugins/platforms/ios/qiosinputcontext.mm
./src/plugins/platforms/ios/qiosintegration.mm
./src/plugins/platforms/ios/qiosplatformaccessibility.mm
./src/plugins/platforms/ios/qiosscreen.mm
./src/plugins/platforms/ios/qiosservices.mm
./src/plugins/platforms/ios/qiostheme.mm
./src/plugins/platforms/ios/qiosviewcontroller.mm
./src/plugins/platforms/ios/qioswindow.mm
./src/plugins/platforms/ios/quiaccessibilityelement.mm
./src/plugins/platforms/ios/quiview_textinput.mm
./src/printsupport/dialogs/qpagesetupdialog_mac.mm
./src/printsupport/dialogs/qprintdialog_mac.mm
./src/widgets/doc/snippets/macmainwindow.mm
./src/widgets/doc/snippets/qmacnativewidget/main.mm
./src/widgets/styles/qmacstyle_mac.mm
./src/widgets/util/qscroller_mac.mm
./src/widgets/widgets/qmaccocoaviewcontainer_mac.mm
./src/widgets/widgets/qmacnativewidget_mac.mm
./src/widgets/widgets/qmenu_mac.mm
./tests/auto/corelib/io/qurl/tst_qurl_mac.mm
./tests/auto/corelib/tools/qbytearray/tst_qbytearray_mac.mm
./tests/auto/corelib/tools/qstring/tst_qstring_mac.mm
./tests/auto/other/qaccessibilitymac/tst_qaccessibilitymac_helpers.mm
./tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog_mac_helpers.mm
./tests/auto/widgets/kernel/qwidget/tst_qwidget_mac_helpers.mm
./tests/auto/widgets/widgets/qmenu/tst_qmenu_mac.mm
./tests/manual/cocoa/qmaccocoaviewcontainer/main.mm
./tests/manual/cocoa/qmaccocoaviewcontainer/TestMouseMovedNSView.m
./tests/manual/cocoa/qt_on_cocoa/main.mm

I'd be open to adding ARC *support* to Qt though. It wouldn't be much work, just replace all calls to retain, release with macros such as QT_OBJC_RETAIN, QT_OBJC_RELEASE, QT_OBJC_BRIDGE, QT_OBJC_STRONG, QT_OBJC_WEAK, etc. and then we can support both modes pretty easily. But... there's probably little point in doing this anyways since it would increase testing burden and virtually all the Objective-C code is internal to Qt. The little that is exposed through the API (primarily type conversions, NSString to QString etc.) has the appropriate memory management macros to work seamlessly with ARC. So, all in all, best to leave Qt as it is on the Objective-C front.
-- 
Jake Petroules - jake.petroules at petroules.com
Chief Technology Officer - Petroules Corporation
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20140715/bf26bd0d/attachment.html>


More information about the Development mailing list