Gecko 2.0 and Mac OS X Architecture Support

With Gecko 1.9 development wrapping up, I’ve been thinking about the roadmap for Gecko 2.0’s Mac OS X support. One of the items that we’ll need to consider is architecture support – this is something on many Mac OS X developers’ minds since Mac OS X 10.5 was just released with top-to-bottom support for PPC, PPC64, x86, and x86-64.

I think we should make 2 architecture changes during the Gecko 2 development cycle – add support for x86-64 and drop support for PPC. I think the arguments for both changes are pretty solid.

x86-64 is the future for Mac OS X applications, and that future is likely to come sooner rather than later. Apple has a history of successfully making aggressive changes to their platform in order to stay on the cutting edge, and I think it is a pretty safe bet that come the next WWDC encouraging all developers to move to x86-64 will be a top item on the agenda. They have been dropping technical hints for years and sowing the seeds for this change in their hardware offerings. The reason for this is much bigger than x86-64’s technical advantages though – Apple wants to consolidate. PPC is on the way out altogether, but if 32-bit x86 applications don’t go away soon too then Mac OS X has to ship with support for more than one architecture for a lot longer and users will need to have 32-bit and 64-bit frameworks loaded into memory at the same time. I highly doubt Apple will drop support for 32-bit x86 in Mac OS X 10.6, but I think they would like the average 10.6 user to not ever have to load a 32-bit application for performance reasons. You can bet that they’ll offer some creative enticements for 64-bit migration by making some APIs x86-64-only in 10.6.

Gecko 2.0 is a great time to add support for x86-64 even if the first version of Firefox that ships with Gecko 2.0 doesn’t ship an x64-64 binary. I’m not suggesting that we necessarily make it a tier-1 supported platform, but we can get started down the path to tier-1 quality. It shouldn’t be too hard to do the work, we will have to do it anyway, and by getting this work done earlier we’ll eventually ship a higher-quality x86-64 product with less stress on development and QA.

Obviously PPC is on the way out in the Mac OS X world. I doubt that Mac OS X 10.6 will support PPC hardware, and by the time Gecko 2.0 ships (Q1 2009 at a minimum) we will have very few PPC users remaining. It simply won’t be worth the effort required to support it properly even if it seems like a good idea at the beginning of the development cycle. Not supporting PPC will free up engineering and QA resource to work on much more important things, and we will no longer have to ship a universal binary. PPC users will have access to a supported Gecko 1.9.x Firefox for some time after Gecko 2.0 is released, so it isn’t like they will be without a modern web browser. Dropping PPC support will be unfortunate for some just like dropping support for anything is, but on the whole I think it is definitely the right thing to do for Gecko 2.0.

Update: There is some confusion in the comments about what dropping PPC Mac OS X support would actually mean. First of all, I was referring to PPC Mac OS X only. PPC Linux and any other PPC platforms would not be affected. Secondly, I should have said we would just bump it from tier-1 supported status. There would be little in the way of code changes, PPC Mac OS X builds could remain available through a community effort.

19 thoughts on “Gecko 2.0 and Mac OS X Architecture Support

  1. I think part of the appeal of some of the gecko browsers is that they provide a modern web experience for older systems that would otherwise have been left in the cold. FireFox 2 still runs on Mac OS X 10.2, which means a lot in markets like education where computers aren’t replaced every year..

  2. I agree – the 4-way “fat” binary is a temporary hack, and most open source projects shouldn’t be expected to go that way. It is as you say – keep up the progress.

  3. If you don’t mind that Gecko 2.0 Apps won’t run on school and university computers around the world (where older Macs stay much longer than in private households), than you’re right to throw away PPC support.

  4. Uh-oh, batten down the hatches. I think more people vociferously proclaimed that the removal of Windows 98 support from Firefox 3 (which isn’t even out yet) would be disastrous due to the amount of people still running Windows 98 than, like, actually still _run_ Windows 98. Expect the same with people who own 2002-vintage iMacs.

    – Chris

  5. I don’t expect that such a decision to remove PPC support will be a popular one, but I agree that it’s probably the best thing to do long term. It seems like a logical progression after the already-removed 10.3.x support in Fx3.

  6. Does this mean that support for embedded PPC processors (Wii, Playstation 3) would not be supported either? I would think that Mozilla2 should compile on as many architectures as possible, even if they are not Tier 1 platforms.

    In this case, if Mac PPC is not a Tier 1 platform, it seems that there could be unofficial (or official, if there is sufficient interest) Mac PPC builds.

  7. Just out of interest: Is there a significant difference between compiling for PPC and PPC64? or are you proposing to get rid of both of them? are you proposing abandoning only the Mac/PPC builds or all PowerPC platforms (like the PS3)?

  8. I am referring to not actively supporting PPC in our *Mac OS X* code only. PPC Linux and any other PPC platforms would not be affected. Code-wise, this isn’t really a big change because we have very little PPC-specific code in our Mac OS X code. Mostly, it means primary developers won’t be doing any testing and Mozilla Corporation wouldn’t produce PPC builds. PPC Mac OS X builds could remain available as a non-tier-1 platform through volunteer efforts.

  9. There’s quite some difference between older hardware and older software like Windows 98 or Mac OS X 10.3 Panther. At our department we are still using a PowerMac G4 from 2002, and it does great for light-weight tasks like web browsing, email or writing. I think there are still at least 2 years to go for that machine. As our last PPC Apples were bought in 2005, I guess we will be using PPC Macs at least until 2010. Our current ration Intel/PPC is 1:6. On all these machines we have installed Tiger 10.4, and as Leopard seems to be running as fast as Tiger, we will be running that soon.
    That’s why I think dropping Mac OS X PPC as official platform delivers a bad message: It’s not dropping support for outdated software platforms (which for new software is logical), it’s dropping support for a current operating system platform which happens to run on hardware bought 1-3 years ago.

  10. Let’s not forget that Apple only started selling Intel boxes in January 2006, and was still selling PowerPC-based Macs until the first Mac Pro desktops hit in August 2006. This isn’t just “2002-vintage iMacs” at issue, but computers that were new as recently as last year.

    Admittedly, we are looking at something at least 1½ years out from now. The latest PPC Macs in 2009 will be just over 3 years old. Given that people tend to hang onto Macs longer than PCs, is that going to be ancient? I’ve got an early-2004 model PowerBook that’s going strong today at 3½ years, happily running Leopard. (Not that I expect it will run 10.6, but I’d have been really annoyed if, after 3½ years, a web browser declared it to be obsolete.)

    I suppose it all comes down to the projected 2009 ratios, though. Does anyone have any stats on the current Intel/PowerPC ratio out there on the net, and at what rate they’re being replaced?

  11. Actually, I think supporting 10.5 API’s like CoreText is *far* more important than x86-64 support, since a huge amount of the work the browser does boils down to “measure text, break up text, draw text” and CoreText is important to optimize this path. For other graphics in general, I would say that tighter integration of Cairo with existing Quartz features is also important. Unless there’s some creative use of address space that magically gets us greater performance, x86-64 support is interesting but a lesser priority for the next release.

  12. Actually, my suspicion is that 10.6 will still support PPC (assuming the timeframe is in the 18-24 month range). Tiger/Leopard was a little longer than Apple normally would want to stretch, because the Intel switch had to be accommodated partway into the natural cycle. I think it’ll be 2010 or so before the PPC systems really start vanishing from the scene – and as long as Apple can still milk some revenue from them they most likely will.

  13. hi josh,

    will firefox 3 definitely have native form controls and HTML content for Mac OS? or is it something that’ll come in afterwards on a later version?

    i’m a little confused because in the nightly releases i’ve been downloading i visit HTML pages and some of the UI elements (like select dropowns) don’t fit in with the rest of the OS.


  14. Unless there’s some creative use of address space that magically gets us greater performance

    Actually, it does. Core 2 has lots of registers that go unused in 32-bit mode. In 64 bit mode, it addresses all of them, which in spite of increased cache misses (due to more data/longer instructions in the caches, etc), provides a signifigant real-world speedup.

    As anecdotal evidence, I compiled LAME as a 64 bit binary, and saw 15% speed gains.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s