by Charles Ying

Inside Tamarin – Adobe’s Open Source Flash VM

November 6th, 2006

If you haven’t heard the news, Adobe has open sourced the Flash 9 JIT Javascript Virtual Machine, named Tamarin. This is exciting news, given that until today, all open source Javascript engines were variants on abstract syntax tree implementations, namely Spider Monkey and JavascriptCore.

Here are some of the important bits from a brief overview of the Tamarin source code:

Javascript Compiler

This is a full featured Javascript to byte code compiler. This allows for more efficient execution environments, profiling, code verification, and semantic analysis. If you wanted to build, oh, say, a Flash or AJAX to J2ME converter, you could write a VM to handle only byte-code created by this compiler (eval and such may not work, unless you ported the compiler as well).

JIT Byte Code VM

A high performance just-in-time byte code VM with targets for PowerPC Macintosh, Intel 32-bit and ARM processors on UNIX, Macintosh, and Windows.

Garbage Collection

Not much to say here, an incremental garbage collector with different implementations based on different strategies. This is an important component for embedded device memory management. This may also be considered for use by future browsers for DOM object memory management especially for Firefox.

ARM Port

Possibly the biggest news is that significant work already exists for an ARM build of the Javascript VM. This paves the way for high performance mobile or embedded device implementations.

If you are working on a browser or mobile scripted apps platform (AJAX, Laszlo, Flex, etc.) platform, this is a huge deal. With Firefox adopting the engine, and its performance and E4X language support characteristics, Tamarin and its offspring might likely become the defacto execution and compatibility benchmark for AJAX and any scripted environments in both desktop and mobile.

The current CVS version doesn’t compile cleanly out of the box on my PowerPC Mac, but I’m sure in a few days, once people realize how big of a deal this is, the project will get whipped into shape quickly.

Technorati Tags: , , , , , , ,

3 Responses to “Inside Tamarin – Adobe’s Open Source Flash VM”

  1. JD on EP Says:

    Tamarin commentary, day 1…

    Tamarin commentary, day 1: Through the day I’ll be updating this entry with links & pullquotes I find particularly interesting. It’s like drinking from a firehose, though… Adobe’s donation to Mozilla of scripting engine sourcecode will take us all…

  2. qooxdoo » Blog » Tamarin Follow-ups Says:

    […] Inside Tamarin – Adobe’s Open Source Flash VM […]

  3. Rick Says:

    I’m not sure Tamarin is what I’m looking for…maybe you can enlighten me. I have some Java server code that needs to execute some Flash content from another website, and then grab the resulting screen image (I’m screen-scraping a page that may become Flash in the future). The Flash is straightforward (requires no user interaction), but I don’t know of any way to do this right now. Does this VM perhaps allow this? I can create a native library that the Java code can call, if it can execute Flash into a provided frame buffer…