« Building for future X… | Home | 70000 functions for X… »

ARM Macs thoughts

Recently a client asked whether we would be ready for Apple someday switching to Mac computer with ARM based CPU design.

First we expect, if Apple does such a move, that they do announce it similar to previous switches from 68k to PPC and from PPC to Intel. At a WWDC (world wide developer conference) they announce the upcoming switch, present test computers, provide a new Xcode version to build for ARM and give developers time to try it. Months later they launch a consumer computer to let early adapters get a first ARM based device.

We expect Apple will reuse the FAT binary technique to have Mac apps contain both ARM and x86 code for a while. They did that with 68k/PPC, PPC/Intel and Intel 32/64 bit code. We even for a while packed PPC 32/64-bit and Intel 32/64bit code together for an application.

My prediction would be that Apple quickly shows an iMac like computer for developers to proof the power of the new chips and have a test/build computer for developers. Lots of cores performing quickly and show they are at the same level as the Intel iMacs. To show power consumption, something like a MacBook Air with ARM compared to Intel version and have a few extra hours of battery usage. Maybe the new ARM based computers are not much better than Intel counterpart as the goal may not be to have better chips, but to own them and allow custom changes in future.

One curious thing is how Apple can use LLVM bitcode to help automate the transition. Did you remember the Apple Watch upgrade from 32 to 64-bit? Apple internally recompiled the apps from bitcode to native 64-bit ARM code to run on the new 64-bit Watch CPU. As apps for the Mac App Store are all build with bitcode embedded nowadays, Apple may be able to use that code to build ARM versions automatically. Or use the bitcode to improve performance for any emulation layer they use. The bitcode is the intermediate code the compiler generated from source code and is used to generate the machine code.

For FileMaker, we would need Claris Inc. to start building an ARM version of FileMaker and then we can use a newer Xcode version to build our plugin. Currently we already build 64-bit ARM for the iOS version of our plugin.

For Xojo, the team already builds iOS with 64-bit and have ARM support for Linux. So we expect them to quickly enable ARM for MacOS once a new Xcode is available to build their own framework and use newer compilers.

For both we expect to quickly be able to build something. It may be some work to remove all deprecated APIs as we expect Apple to not bring those over. e.g. FSRef data tpes, Addressbook framework and OpenGL frameworks are deprecated. They still work for compatibility, but may simply not make the move to ARM versions of the software.
11 05 20 - 11:16