Parts of this article (those related to how and when it was discontinued) need to beupdated. Please help update this article to reflect recent events or newly available information.(August 2022) |
| Tamarin | |
|---|---|
| Developers | Adobe Systems andMozilla |
| Written in | C++ |
| Operating system | Cross-platform |
| Type | Virtual Machine forECMAScript |
| License | Tri-licensedGPL,LGPL, andMPL |
| Website | developer |
| Repository | |
Tamarin is a discontinuedfree softwarevirtual machine withjust-in-time compilation (JIT) support intended to implement the 4th edition of theECMAScript (ES4) language standard. Tamarinsource code originates from ActionScript Virtual Machine 2 (AVM2)[1] developed byAdobe Systems, as introduced withinAdobe Flash Player 9, which implementsActionScript 3 scripting language. ActionScript Virtual Machine 2 was donated asopen-source toMozilla Foundation on November 7, 2006, to develop Tamarin as a high-performance virtual machine, with the support from broadMozilla community, to be used by Mozilla and Adobe Systems in the next generation of theirJavaScript andActionScriptengines with the ultimate aim to unify the scripting languages acrossweb browsers andAdobe Flash platform and ease the development of better performing richweb applications.[2]
The source code, including thejust-in-time compiler and conservativegarbage collector, was donated to theMozilla Foundation on November 7, 2006.[3] The contributed code istri-licensed under theGPL,LGPL, andMPL licenses to be developed in Mozilla'sMercurial repository.[4] The contributed code is approximately 135,000 lines of code,[5] making it the largest single donation of code to the Mozilla project besidesNetscape itself.[6]
There were plans to use Tamarin as part ofMozilla 2[7] (and thereforeFirefox 4). The project to integrate Tamarin andSpiderMonkey was called "ActionMonkey",[8] but was canceled in 2008[9] because Tamarin's interpreter turned out to be slower than SpiderMonkey's and because the plans of ECMAScript development shifted fromECMAScript 4, which was partially implemented by then existing Tamarin source code and was meant to be completed by joined efforts of Adobe, Mozilla and its community within the Tamarin Project,[10] toECMAScript Harmony.[11]
Adobe continued to use Tamarin in itsFlash Player, but it did not replace SpiderMonkey as theJavaScript engine of Mozilla applications.
The only part of Tamarin used in modern Mozilla applications (i.e. Firefox 3.5+) via SpiderMonkey isNanoJIT, a module that is used to generate native code when performingjust-in-time compilation.[12]
Adobe contributed code for its ActionScript Virtual Machine 2 and theJIT compiler. The ActionScript compiler is also open source as a part ofAdobe Flex.[13] There is alsoCrossBridge, an open sourceC andC++ compiler.
Tamarin is not the same asAdobe Flash Player, which remains closed source. The Tamarin virtual machine is only a part of Flash Player.
Two projects related to Tamarin were announced on July 25, 2007, inBrendan Eich's keynote at The Ajax Experience West: IronMonkey and ScreamingMonkey.[14][15] IronMonkey is a project to mapIronPython andIronRuby to Tamarin led by Seo Sanghyeon.[16] ScreamingMonkey's goal is to allow Tamarin to run within non-Mozilla browsers (thus allowing them to understand JavaScript 2), starting withInternet Explorer. The project is led by Mark Hammond.[17] Neither project had production-quality releases and their current status is unclear.
Both SpiderMonkey and Tamarin fulfill closely related goals and so were given names derived from types of monkeys (thespider monkey and thetamarin, respectively).
MozillaCTO
Mozilla Foundation executive director
Mozilla developer
{{cite web}}: CS1 maint: archived copy as title (link)mozilla.dev.tech.js-engine group.Google Groups. RetrievedSeptember 3, 2010.