Monday, August 25, 2014

Status update

Sorry for the radio silence, but I've just been incredibly busy with this and the degree. The patches are down for TenFourFox 33, but it took me about a week to get JavaScript compiling again after most of the old Nitro macroassembler was ripped out and V8 irregexp added to replace YARR as the regular expression engine. The JIT mostly works ... except irregexp, which gets simple patterns wrong and crashes on complicated ones. The issue is probably endian, though running the JIT with native regular expression compilation disabled works fine. However, the performance regression this would cause is not acceptable to ship, so this has to be fixed or we can't advance. Fortunately, I still have over six weeks yet to figure that out.

The MIPS JIT also landed, which is important because it is the architecture Mozilla supports most similar to PowerPC. The MIPS JIT is little-endian, so we still have to account for that, but it's a more conventional RISC instruction set than ARM, has a link register, requires lui/ori to load 32-bit quantities just like we need lis/ori, and has similar requirements for branch stanzas. Moreover, it does not have the technical debt we have accrued getting our JaegerMonkey (Firefox 10-era) JIT working at all with BaselineCompiler, which is the basis of PPCBC; as it stands there are several bugs in full IonMonkey branching and bailouts I can't fix with our current implementation. The MIPS JIT gives me the chance to blow up everything and start over with a template that will be very similar for our own machines, but I have to get 33 working first. If we're really lucky, we can get this in for Fx38, if there is one.

As mentioned multiple times, loss of 10.6 support would hurt us very badly. Mozilla will not do this until Google does in Chrome, though they have made some steps towards removal of support, the most important being that 10.6 is no longer supported as a build platform. (If you had hopes of me creating a TenSixFox, sorry.) The browser currently will still run on 10.6, but is linked against a later SDK. For their part, Chromium is tallying 10.6 specific bugs in their tracker as well as bugs hard to fix with 10.6 support, and it is possible that some future changes for 10.10+ will make it infeasible for them to continue supporting Snow Leopard. Generally this decision comes without warning, as it did for 10.5. I am watching these issues carefully. If the blade does not fall by 37 or 38, and Electrolysis is still not mandatory, we should make it.

31.1 will be out later this week with the scrollpad/Mighty Mouse scroll gestures fix, a tiny tweak to reduce JIT latency and some improvements to scrolling screen performance backported from Fx32 and 33.


  1. Glad to hear you are fixing the scroll situation on 31. I've had to keep using 24 on account of that. Also, will the new TenFourFox still sync with Firefox now that Firefox has changed its sync procedures (one has to give them information and sign up again)?

    1. I haven't changed anything on this end, so it should work. However, it's not exhaustively tested, especially since it's a service we don't control.

  2. Just want to say thank you for TemFourFox! I've used it for a long time and went away form it for a while due to getting a "new to me" MacBook Pro. The MacBook Pro had the GPU fail and I pulled out my old Powerbook G4 1.67 and downloaded. v.31. It work well and even will play youtube videos albeit slowly. More because of the oldness of the computer. Still keeping my G4 PB useful despite it almost being 10 years old. Thanks!


Due to an increased frequency of spam, comments are now subject to moderation.