Mac 64bit Support
As time moves forward the viability of 32-bit Mac applications is diminishing. Certain features are not available to 32-bit applications (such as MapKit), and third-party offerings are gradually removing support for that architecture (CEF being the most notable). In order that LiveCode keep pace with Mac development, it is important that the engine be transitioned to 64-bit on Mac.
Overview
As time moves forward the viability of 32-bit Mac applications is diminishing. Certain features are not available to 32-bit applications (such as MapKit), and third-party offerings are gradually removing support for that architecture (CEF being the most notable). In order that LiveCode keep pace with Mac development, it is important that the engine be transitioned to 64-bit on Mac.
Benefits
A 64-bit Mac version of LiveCode would have the following benefits:
- Performance: we observed a 10-15% performance increase in the Linux engine after transitioning to 64-bit – particularly in graphics rendering.
- Longevity: by removing antiquated APIs we can ensure that the LiveCode engine will continue to function well as the Mac platform evolves.
- Assurance: the Mac App Store periodically changes its submission requirements, by ensuring we are 64-bit compliant it ensures that we can keep pace with any changes in policy
- Modernity: updating the multimedia APIs to use the newest ones available on Mac will ensure that this important aspect can continue to be supported well and completely.
Proposal
Whilst the recent Cocoa port (performed as one of the KickStarter goals) removed the majority of API usage that would block moving to 64-bits, there are still some areas of the engine which need to be rewritten to allow a 64-bit build.
The biggest hurdle in transitioning to 64-bits is to sort out Multimedia. Apple have deprecated both QuickTime and QTKit, and AVFoundation is only really ‘good enough’ in 10.8 and above to be a reasonable target for replacing these features in the engine (Since 6.7, the LiveCode Player has supported an AVFoundation implementation, as well as QTKit).
Therefore we propose the following process:
1.Update all the remaining places which are using old APIs which are not compatible with 64-bit support.
2.Disable current Multimedia features which rely on QuickTime (which is not compatible with 64-bit) – in particular, sound recording, QT visual effects and QTKit-based player.
3.Release an initial version of the 64-bit engine, alongside the 32-bit engine.
4.Iterate on the 64-bit engine to make sure it is stable and has feature parity with the 32-bit engine*.
5.Whilst stabilising the 64-bit engine we will set to work on replacement implementations of the multimedia aspects which currently rely on QuickTime.
6.When multimedia support is ready for 64-bits and the 64-bit engine is seen to be stable enough, we will drop support for the 32-bit engine and ship LiveCode as a full 64-bit application.
* Note: Resource fork support will not be present in the 64-bit engine. Resource forks have long been deprecated on Mac, and there is no 64-bit APIs to access them.
If this project is successfully funded we estimate that work will begin at the start of October 2015 with a first test version appearing in December 2015. The estimated final delivery for this feature is February 2016
Bonus For You
Pledge a total of $99 or more across all our campaigns this week, and we’ll give you a bonus if your backed campaigns fund: free access to the Simulcast (live web streaming) of our 2016 LiveCode conference. You’ll be able to watch the whole thing, ask questions and rewind the recording at your leisure. List value $299.
11 comments
Join the conversationJohn - September 27, 2015
You said it yourself… 32bit MacOS is on its way out. Sooner or later it will be deprecated, and 64bit will be the norm. Now you’ve also said that, because we didn’t come up with $26,000 in just five days, you will not support 64bit.
Are you crazy?
If you really don’t intend to support the next level(s) of basic technologies, which you & all of us MUST transition to, then you are already dead.
Thank you for telling us that NOW, so we can avoid the huge waste of time & money which is LiveCode’s new business model.
Todd - September 28, 2015
Of course they intend to do it. Honestly, this is just a way to raise money and set priority. Yes, they are looking for different ways to generate income. I think the 5 days was a bit over dramatic, but we as a community need to give feedback that will improve the process. For example, I would support FastCGI for the web server because I am focused on Cloud development. I can not pay the total $30,000 it would cost to do it, but there are several other who also wish this to be done, so we will pull together and raise the money.
–Todd
Mario - September 28, 2015
Are you insane? Youre asking your clients to fund your business? This is all stuff you need to be keeping up with on your own or else livecode is a waste of money… Wow lol
Jim - September 28, 2015
“Youre asking your clients to fund your business?”
Every for-profit business is funded by customers. That’s the very definition of being in business. This Feature Exchange is just another way of pricing a product/service. I hope it will be a successful model for LiveCode Ltd.
Alan - October 2, 2015
Might be what you expect of commercial product, but open source software?
Anyway congratulations on reaching the target and thanks to all.
Ben - September 28, 2015
I am glad to put my money in my future and be a part of it, rather then ‘hope’ and wait for others to decide to go for it .. 🙂
Well done !!
– Ben (NL)
Beda - September 29, 2015
I would appreciate FastCGI too and I would donate for it although I’m paying for an Indy-License just for not to have to upgrade to a Pro-License to get this feature. While supporting the community backers should always have a personal benefit like the free access to the Simulcast (live web streaming) of the 2016 LiveCode conference – this is a great Deal! And don’t let us forget, the more participants there are the lower the single donation can be to reach the goal!
Todd, thank you very much for doubling our pledges in the Mac 64 bit project! Hope the Remote Debugger project will not die!
Alex - September 14, 2016
This project was funded 100% to completion a whole year ago, and this still hasn’t happened. Did you simply pocket your donors’ money? Will this ever happen? Livecode is essentially the only development environment left on OS X that isn’t 64-bit. All others migrated ages ago.
Heather - September 14, 2016
we shipped Mac 64 bit in February 2016, version 8.0 dp15. You can read about it here:
https://livecode.com/livecode-8-dp-15-whats-new/
and access it via a checkbox in the standalone builder settings. I hope this helps 🙂
Alex - September 30, 2016
Ah my mistake. I didn’t realize that included the development environment as well as the standalone outputs, especially since the livecode app defaults to 32-bit unless you uncheck “32-bit mode” in Finder. (You might want to fix that in your deliverable)
I was expecting to see 64-bit-only mac build. Given that livecode has grown to 885M in 8.1.1 from 207M in 5.0.2, would a 64-bit-only mac build reduce its size? If not, would it be safe to delete unused runtimes in the /Tools/Runtime folder?
Matt - January 26, 2018
LiveCode 8.1.8 shows the Mac 64-bit standalone target is still experimental. With the recent announcement by Apple that they’re soon dropping support for 32-bit apps, how ‘experimental’ is this? Come summer (northern hemisphere), 32-bit apps on OSX might be defunct altogether. It creeps me out a bit that I might be forced to release an ‘experimental’ app.