Tuesday, July 24th, 2007

ActionMonkey: Getting rid of the spiders in the browser

Category: Firefox, JavaScript, Performance

John Resig has blogged about ActionMonkey which is the first real news that we have heard from Mozilla after Adobe donated Tamarin to the foundation:

ActionMonkey is Mozilla’s latest foray into a new JavaScript engine. It’s actually an amalgam of two of Mozilla’s current engines: SpiderMonkey (which powers the current Mozilla platform) and Tamarin (the ActionScript engine donated to Mozilla by Adobe).

The result will be what is used to run the upcoming Mozilla 2 platform.

The first stage (Stage 0) is to replace SpiderMonkey’s memory management with the garbage collection routiens of Tamarin (also called MMgc).

Other stages that need to be taken into account include:

  • Preservation of the existing SpiderMonkey API.
  • Integration of SpiderMonkey’s thread safety and property tree concepts into Tamarin (necessary for the security needed in web-based JavaScript).
  • Replacement of SpiderMonkey’s decomplier with one that is compatible with Tamarin.
  • Replacement of SpiderMonkey’s interpreter with an evolved version of Tamarin’s
  • … and much more.

Great to see some momentum building.

Posted by Dion Almaer at 11:54 am

4.2 rating from 27 votes


Comments feed TrackBack URI

…it’ll be interesting to see the performance increases that JIT compiler from Tamarin brings. Can’t wait to see that evolve. Great to hear some news about this

(sidenote: would really like to see support for Crockford’s JSONRequest.js and secure/supported XSS in a not-too-distant release of FF… hopeful to hear some news from Mozilla/FF about that)

Comment by Mark Holton — July 24, 2007

awesome monkey. w00t

Comment by David G. Paul — July 24, 2007

There are actually changes being checked into the trees, which is always exciting. Jason Orendorff actually is updating his blog[1] fairly often if you want to keep track of progress.

[1] http://blog.mozilla.com/jorendorff/

The trace trees paper mentioned on the actionmonkey wiki page is extremely interesting. If I understand it correctly, it also seems like you could get good JIT compilation of untyped code simply by treating an untyped assignment like a ‘bc’ instruction mentioned in the example given in paper.

Based on the perf numbers in the paper and the numbers coming from adobe, the 10x speedup of untyped js doesn’t seem as farfetched as the IE js guys made it sound in their interview a couple months ago.

Comment by Karl G — July 24, 2007

has anyone benchmarked luaJIT vs Tamarin? seeing as the difference between Lua and JS is basically “we call objects ‘tables'” and we’re “made in brazil” vs “made in silly valley”

Comment by carmen — July 24, 2007

@Mark: You’re in luck – all of that is slated to be in Firefox 3 (both support for JSONRequest and support for cross-domain XMLHttpRequest).

Comment by John Resig — July 25, 2007

Leave a comment

You must be logged in to post a comment.