Tamarin (software)

Last updated
Tamarin
Developer(s) Adobe Systems and Mozilla
Repository
Written in C++
Operating system Cross-platform
Type Virtual Machine for ECMAScript
License Tri-licensed GPL, LGPL, and MPL
Website developer.mozilla.org/en-US/docs/Archive/Mozilla/Tamarin OOjs UI icon edit-ltr-progressive.svg

Tamarin is a discontinued free software virtual machine with just-in-time compilation (JIT) support intended to implement the 4th edition of the ECMAScript (ES4) language standard. Tamarin source code originates from ActionScript Virtual Machine 2 (AVM2) [1] developed by Adobe Systems, as introduced within Adobe Flash Player 9, which implements ActionScript 3 scripting language. ActionScript Virtual Machine 2 was donated as open-source to Mozilla Foundation on November 7, 2006, to develop Tamarin as a high-performance virtual machine, with the support from broad Mozilla community, to be used by Mozilla and Adobe Systems in the next generation of their JavaScript and ActionScript engines with the ultimate aim to unify the scripting languages across web browsers and Adobe Flash platform and ease the development of better performing rich web applications. [2]

Contents

Tamarin and Mozilla

The source code, including the just-in-time compiler and conservative garbage collector, was donated to the Mozilla Foundation on November 7, 2006. [3] The contributed code is tri-licensed under the GPL, LGPL, and MPL licenses to be developed in Mozilla's Mercurial 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 besides Netscape itself. [6]

There were plans to use Tamarin as part of Mozilla 2 [7] (and therefore Firefox 4). The project to integrate Tamarin and SpiderMonkey 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 from ECMAScript 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] to ECMAScript Harmony. [11]

Adobe continued to use Tamarin in its Flash Player, but it did not replace SpiderMonkey as the JavaScript engine of Mozilla applications.

The only part of Tamarin used in modern Mozilla applications (i.e. Firefox 3.5+) via SpiderMonkey is NanoJIT, a module that is used to generate native code when performing just-in-time compilation. [12]

What Tamarin is not

Adobe contributed code for its ActionScript Virtual Machine 2 and the JIT compiler. The ActionScript compiler is also open source as a part of Adobe Flex. [13] There is also CrossBridge, an open source C and C++ compiler.

Tamarin is not the same as Adobe 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, in Brendan Eich's keynote at The Ajax Experience West: IronMonkey and ScreamingMonkey. [14] [15] IronMonkey is a project to map IronPython and IronRuby 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 with Internet Explorer. The project is led by Mark Hammond. [17] Neither project had production-quality releases and their current status is unclear.

Etymology

Both SpiderMonkey and Tamarin fulfill closely related goals and so were given names derived from types of monkeys (the spider monkey and the tamarin, respectively).

Further reading

Related Research Articles

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2023, 98.7% of websites use JavaScript on the client side for webpage behavior, often incorporating third-party libraries. All major web browsers have a dedicated JavaScript engine to execute the code on users' devices.

<span class="mw-page-title-main">Adobe Flash</span> Deprecated multimedia platform used to add animation and interactivity to websites

Adobe Flash is a multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

ECMAScript is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is standardized by Ecma International in the document ECMA-262.

<span class="mw-page-title-main">SpiderMonkey</span> JavaScript and WebAssembly engine maintained by the Mozilla Foundation

SpiderMonkey is open-source JavaScript and WebAssembly engine by the Mozilla Foundation.

Rhino is a JavaScript engine written fully in Java and managed by the Mozilla Foundation as open source software. It is separate from the SpiderMonkey engine, which is also developed by Mozilla, but written in C++ and used in Mozilla Firefox.

<span class="mw-page-title-main">ActionScript</span> Object-oriented programming language created for the Flash multimedia platform

ActionScript is an object-oriented programming language originally developed by Macromedia Inc.. It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript, though it originally arose as a sibling, both being influenced by HyperTalk. ActionScript code is usually converted to byte-code format by a compiler.

Presto was the browser engine of the Opera web browser from the release of Opera 7 on 28 January 2003, until the release of Opera 15 on 2 July 2013, at which time Opera switched to using the Blink engine that was originally created for Chromium. Presto was also used to power the Opera Mini and Opera Mobile browsers.

<span class="mw-page-title-main">Brendan Eich</span> American computer scientist and technology executive

Brendan Eich is an American computer programmer and technology executive. He created the JavaScript programming language and co-founded the Mozilla project, the Mozilla Foundation, and the Mozilla Corporation. He served as the Mozilla Corporation's chief technical officer before he was appointed chief executive officer, but resigned shortly after his appointment due to pressure over his firm opposition to same-sex marriage. He subsequently became the CEO of Brave Software.

<span class="mw-page-title-main">Apache Flex</span> Software development kit (SDK) for the development and deployment of rich web applications

Apache Flex, formerly Adobe Flex, is a software development kit (SDK) for the development and deployment of cross-platform rich web applications based on the Adobe Flash platform. Initially developed by Macromedia and then acquired by Adobe Systems, Adobe donated Flex to the Apache Software Foundation in 2011 and it was promoted to a top-level project in December 2012.

Netscape Plugin Application Programming Interface (NPAPI) is a deprecated application programming interface (API) of the web browsers that allows plugins to be integrated.

A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.

ECMAScript for XML (E4X) is the standard ISO/IEC 22537:2006 programming language extension that adds native XML support to ECMAScript. The goal is to provide an alternative to DOM interfaces that uses a simpler syntax for accessing XML documents. It also offers a new way of making XML visible. Before the release of E4X, XML was always accessed at an object level. E4X instead treats XML as a primitive. This implies faster access, better support, and acceptance as a building block of a program.

<span class="mw-page-title-main">Firefox 4</span> Firefox browser released in 2011

Mozilla Firefox 4 is a version of the Firefox web browser, released on March 22, 2011. The first beta was made available on July 6, 2010; Release Candidate 2 was released on March 18, 2011. It was codenamed Tumucumaque, and was Firefox's last large release cycle. The Mozilla team planned smaller and quicker releases following other browser vendors. The primary goals for this version included improvements in performance, standards support, and user interface.

A browser speed test is a computer benchmark that scores the performance of a web browser, by measuring the browser's efficiency in completing a predefined list of tasks. In general the testing software is available online, located on a website, where different algorithms are loaded and performed in the browser client. Typical test tasks are rendering and animation, DOM transformations, string operations, mathematical calculations, sorting algorithms, graphic performance tests and memory instructions. Browser speed tests have been used during browser wars to prove superiority of specific web browsers. The popular Acid3 test is no particular speed test but checks browser conformity to web standards.

River Trail is an open-source software engine designed by Intel for executing JavaScript code using parallel computing on multi-core processors.

<span class="mw-page-title-main">Mozilla</span> Free and open-source software community, developer of Firefox and Thunderbird

Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting exclusively free software and open standards, with only minor exceptions. The community is supported institutionally by the non-profit Mozilla Foundation and its tax-paying subsidiary, the Mozilla Corporation.

asm.js is a subset of JavaScript designed to allow computer software written in languages such as C to be run as web applications while maintaining performance characteristics considerably better than standard JavaScript, which is the typical language used for such applications.

This is a list of articles related to the JavaScript programming language.

ECMAScript is a JavaScript standard developed by Ecma International. Since 2015, major versions have been published every June.

References

  1. "Archived copy" (PDF). Archived from the original (PDF) on 2017-05-16. Retrieved 2017-03-25.{{cite web}}: CS1 maint: archived copy as title (link)
  2. "What Tamarin means to developers". Adobe Developer Connection. November 7, 2006. Archived from the original on March 16, 2013. Retrieved January 2, 2013.
  3. "Adobe and Mozilla Foundation to Open Source Flash Player Scripting Engine". Mozilla Foundation Press Center. San Francisco: Mozilla Foundation. November 7, 2006. Retrieved September 3, 2010.
  4. "Tamarin Project". Mozilla Foundation. Archived from the original on 2016-10-03. Retrieved 2021-03-25.
  5. Melanson, Mike (November 7, 2006). "Open Up". Penguin.SWF — Just another Adobe Blog site. Archived from the original on July 4, 2008. Retrieved September 3, 2010.
  6. "Project Tamarin - Adobe's contribution to Mozilla". The Browser Den. Archived from the original on October 11, 2008.
  7. Eich, Brendan (October 13, 2006). "Mozilla 2". Brendan's Roadmap Updates. MozillaZine. Archived from the original on October 25, 2006. Retrieved September 3, 2010.
  8. Resig, John (July 23, 2007). "ActionMonkey". John Resig Blog. Retrieved September 3, 2010.
  9. "JavaScript:ActionMonkey". MozillaWiki. Mozilla Foundation. September 4, 2008. Retrieved September 3, 2010.
  10. "Tamarin Project Introduction". Mozilla community. April 21, 2008. Retrieved January 1, 2013.
  11. Blizzard, Christopher (March 8, 2010). "A quick note on JavaScript engine components". Hacks.Mozilla.org. Mozilla Foundation . Retrieved September 3, 2010.
  12. Hoare, Graydon (October 14, 2009). "State of Tamarin". mozilla.dev.tech.js-engine group. Google Groups . Retrieved September 3, 2010.
  13. "Compiling and Running applications". Mozilla. Retrieved 2021-03-25.
  14. Eich, Brendan (July 25, 2007). "New Projects". Brendan's Roadmap Updates. MozillaZine. Archived from the original on November 14, 2010. Retrieved September 3, 2010.
  15. Resig, John (August 8, 2007). "The Browser Scripting Revolution". John Resig Blog. Retrieved September 3, 2010.
  16. "Tamarin:IronMonkey". MozillaWiki. Mozilla Foundation. August 20, 2007. Retrieved September 3, 2010.
  17. "Tamarin:ScreamingMonkey". MozillaWiki. Mozilla Foundation. May 28, 2008. Retrieved September 3, 2010.