Friday, January 3, 2014

My New Year's Resolution is to fix IonMonkey ...

... and ask Scarlett Johansson out on a date. Fortunately, I have made progress on the more realistic goal of the two:

Starting program: /Volumes/BruceDeuce/src/mozilla-26.0/obj-ff-dbg/dist/bin/js --ion-eager -e var\ i=0
Reading symbols for shared libraries ... done

Program exited normally.

Like our initial victory with PPCBC, this is the simplest of simple JavaScripts. But it proves the basic machinery for IonMonkey optimized JavaScript compilation is now, finally, working. A very ugly hack was required that should stick for the time being. Meanwhile, we will move on to more complicated scripts and fill in the holes in the code generator that I know are not correct.

Of course, the moving target that is the JavaScript JIT compiler in Firefox is moving again. Mozilla is unhappy with the slow, nay, nonexistent pace of progress on YARR, the regular expression library used in Firefox/TenFourFox imported from WebKit. At least one suggestion that has legs is to switch to V8 irregexp, the regular expression library used in V8 imported from Google Chrome. irregexp is pretty fast, but it means yet another macroassembler to write, and more importantly it means the Nitro macroassembler we use now for both YARR and (underlyingly) PPCBC would be removed and we'd have to actually write two new backends just to restore the level of JIT function we have now. Understandably I am less than thrilled with this possibility even though the work would not be excessively difficult; it would just be tedious and delay my porting activities further. I'm hoping Mozilla develops their own regex and bases it on the existing infrastructure so I'd only have to port our underlying code generation once when they get rid of Nitro. Fortunately this is not likely to be consummated in any meaningful way much before Firefox 31.

Don't even get me started on asm.js, by the way. That's waaaay down on the priority list.

24.3.0 is scheduled for 4 February, at which time the assault on 29 and Australis will begin. By the way, does anyone have Scarlett's phone number? Asking for a friend.


  1. Scarlett and I had a good laugh!

    And we wish you a Happy New Yarr.

    Sorry, I couldn't resist.

  2. Hang on, I thought the code was to get Scarlett to say 'yes.' Cam, you're a wonderful person and I'm sure she would say 'yes.'


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