Sunday, April 29, 2007

'Universal' Binaries

Many, if not most applications for MacOS now come as 'Universal Binaries'. A Universal Binary is an x86 executable and a PPC executable in one package; these 'binaries' thus run on both pre- and post-Intel transition Macs. As of the most recent version of XCode, in fact, a Universal Binary can now contain up to four executables, for x86, x86-64, PPC32 and PPC64. As the forthcoming iPhone appears to be ARM-based, a fifth might even be added.

The advantage of all this, of course, is that it makes it easy for users to download and developers to maintain applications for the various architectures. The downside is size. Universal binaries are already often nearly twice the size of conventional application packages; as the two 64bit architectures get added when Leopard is released, this will get even worse. I recently downloaded a 700mb TeX package for MacOS; its non-Universal predecessor was about 400mb.

There's a lot to be said, at this stage, for maintainers to at least give users the option to download packages for one architecture or the other. Few people need both, after all. VLC does this, but it appears to be almost unique in doing so. Note that the non-Universal packages are about half the size.

No comments:

Post a Comment