Saturday, November 12, 2016

45.5.0 final available

The final release of TenFourFox 45.5.0 (downloads, hashish, er, hashes, release notes) is available. Pretty much everything made it, including the hybrid-endian JavaScript engine (the LE portion of IonPower-NVLE), the AltiVec VP9 IDCT/IADST/IHT transformations, the MP3 refactoring and the new custom in-browser prefpane. There is also a fix for PostScript-based front blocking which apparently glitched in 45. Assuming all goes well and there are no major regressions, this will go live either late Sunday or early Monday due to a planned power outage which will affect Floodgap on Tuesday.

Meanwhile, I still don't have a good understanding of what's wrong with Amazon Music (still works great in 38.10), nor the issue with some users being unable to make changes to their default search engine stick. This is the problem with a single developer, folks: what I can't replicate I can't repair. I have a couple other theories in that thread for people to respond to.

Next up will be actually ripping some code out for a change. I'm planning to completely eviscerate telemetry support since we have no infrastructure to manage it and it's wasted code, as well as retina Mac support, since no retina Mac can run 10.6. I don't anticipate these being major speed boosts but they'll help and they'll make the browser smaller. Since we don't have to maintain good compatibility with Mozilla source code anymore I have some additional freedom to do bigger surgeries like these. I'll also make a first cut at the non-volatile portion of IonPower-NVLE by making floating point registers in play non-volatile (except for the volatiles like f1 that the ABI requires to be live also); again, not a big boost, but it will definitely reduce stack pressure and should improve the performance of ABI-compliant calls. User agent switching and possibly some more AltiVec VP9 work are also on the table, but may not make 45.6.

The other thing that needs to be done is restoring our ability to do performance analysis because Shark and Sample on 10.4 freak out trying to resolve symbols from these much more recent gcc builds. The solution would seem to be a way to get program counter samples without resolving them, and then give that to a tool like addr2line or even gdb7 itself to do the symbol resolution instead, but I can't find a way to make either Shark or Sample not resolve symbols. Right now I'm disassembling /usr/bin/sample (since Apple apparently doesn't offer the source code for it) to see how it gets those samples and it seems to reference a mysterious NSSampler in the CHUD VM tools private framework. Magic Hat can dump the class but the trick is how to work with it and which selectors it will allow. More on that later.

6 comments:

  1. Just wanted to thank you for your work on TenFourFox. I have a G4 Mac that I use for my personal browsing at work. This browser makes things very usable and quick. You do great work.

    ReplyDelete
  2. Congrats! and thanks for creating a great browser! and most importantly sharing the code and the development insights behind it all!

    I have a feeling that you are or you will be the last developer to know about 10.4 development...

    ReplyDelete
    Replies
    1. Maybe, maybe not. I might be the last one still cranking out 10.4 compatible software, though. My Tutti emulator runs happily on Intel and PowerPC from 10.4 to 10.12. Now that's "universal."

      Delete
  3. Have you had developers offer to help you keep it maintained or do you just prefer to keep everything under your wing for sanity sake?

    ReplyDelete
    Replies
    1. There have been collaborators before, Tobias and Ben most notably, but others have contributed.

      Eventually when we are no longer at source parity I will upload everything into github but with the changesets, the toolchain from MacPorts and the Firefox 45ESR source tree anyone can contribute.

      Delete

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