Developer(s) | Adobe Labs and Mozilla |
---|---|
Development status | Active |
Written in | C++ |
Operating system | Cross-platform |
Type | Virtual Machine for ECMAScript |
License | Tri-licensed GPL, LGPL, and MPL |
Website | mozilla.org/projects/tamarin/ |
Tamarin is a free virtual machine with just-in-time compilation (JIT) support intended to implement the fourth edition of the ECMAScript standard.
Tamarin was developed by Adobe Labs for its ActionScript virtual machine used in Flash 9 and up and open-sourced in 2006.
Contents |
The code was donated to the Mozilla project on November 7, 2006.[1] The contributed code is tri-licensed under the GPL, LGPL, and MPL licenses to be developed in Mozilla's Mercurial repository.[2] The contributed code is approximately 135,000 lines of code,[3] making it the largest single donation of code to the Mozilla project besides Netscape itself.[4]
There were plans to use Tamarin as part of Mozilla 2[5] (and therefore Firefox). The project to integrate Tamarin and SpiderMonkey was called "ActionMonkey",[6] but was canceled in 2008[7] because Tamarin's interpreter turned out to be slower than SpiderMonkey's and because the plans of ECMAScript development shifted from ECMAScript 4 (which was partially implemented by Tamarin) to ECMAScript Harmony.[8]
Tamarin continues to be used in Adobe Flash Player, but it has not replaced SpiderMonkey as the JavaScript engine of Mozilla applications.
The only part of Tamarin used in modern Mozilla applications (e.g. Firefox 3.5+) via SpiderMonkey is NanoJIT, a module that's used to generate native code when performing just-in-time compilation.[9]
Adobe contributed code for its virtual machine and the JIT compiler. The ActionScript compiler is also open source and you can download it from: http://opensource.adobe.com/svn/opensource/flex/sdk/sandbox/asc-redux/[10]
Tamarin is not the same as Adobe's Flash Player, which remains closed source. The virtual machine is only a part of Flash Player.
Two projects related to Tamarin were announced on July 25, 2007 in Brendan Eich's keynote at The Ajax Experience West: IronMonkey and ScreamingMonkey.[11][12] IronMonkey is a project to map IronPython and IronRuby to Tamarin led by Seo Sanghyeon.[13] ScreamingMonkey's goal is to allow Tamarin to run within non-Mozilla browsers (thus allowing them to understand JavaScript 2), starting with Internet Explorer. The project is led by Mark Hammond.[14] Neither project had production-quality releases and their current status is unclear.
Both SpiderMonkey and Tamarin fulfill closely related goals and so were both dubbed after monkeys (the spider monkey and the tamarin, respectively).
mozilla.dev.tech.js-engine
group. Google Groups. http://groups.google.com/group/mozilla.dev.tech.js-engine/msg/04e49d6407c33bd3. Retrieved September 3, 2010.
|
|