You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



Adobe/Mozilla Tamarin Project Frequently Asked Questions

Technical FAQ

What are the details of Adobe's collaboration with Mozilla?

Adobe and Mozilla announced that Adobe will contribute source code from the latest Adobe® ActionScript™ Virtual Machine (AVM2), the standards-based scripting language engine in Adobe Flash® Player 9, to a new open source project known as Tamarin that will be hosted by the Mozilla Foundation.

AVM2, as currently shipping in Adobe Flash Player 9, was built from the ground up to work with the next generation of ActionScript. The new virtual machine is designed to deliver the performance and features to support the needs of rich Internet application developers. Source code from AVM2 being contributed to the Tamarin project implements ECMAScript 4th edition language features such as namespaces, classes, and optional strongly typed variables, and includes a Just In Time (JIT) compiler that translates ActionScript bytecode to native machine code for maximum execution speed.

The Tamarin project will result in an ECMAScript 4th edition engine that Mozilla will use within the next-generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla's free Web browser, and other products based on Mozilla technology. The code will continue to be used by Adobe as part of the ActionScript Virtual Machine.

Developers and organizations can license the technology using the standard Mozilla licenses as outlined here: http://www.mozilla.org/foundation/licensing.html

Who will have access to the Tamarin source code?

The Tamarin source code will be hosted in the official Mozilla source code repository and will be accessible using the CVS source code control system. The Tamarin source code will also be included in source code distributions released by Mozilla for Firefox and other products based on Mozilla technology.

Since the Tamarin source code is being released as open source, anyone obtaining a copy of the code is free to make their own private code changes, distribute them to others under the open source license terms, and contribute them for possible inclusion in the official version of the Tamarin code hosted by Mozilla. Adobe has a dedicated team for this open source project, including Dan Smith, module owner, and Jeff Dyer and Edwin Smith -- Adobe engineers who worked on the original source code. Contributions to the Tamarin effort will be managed by a governing body of developers from both Adobe and Mozilla.

How will Tamarin be licensed to users?

Like other code that makes up the core Mozilla products, Tamarin will be licensed under the MPL/GPL/LGPL Triple License which allows for use of the files under the terms of any of the Mozilla Public License (MPL), the GNU General Public License (GPL) or the GNU Lesser General Public License (LGPL). For specific details on each license, please visit http://www.mozilla.org/MPL/.

How will developers benefit from this project?

Adobe's contribution of source code from the ActionScript Virtual Machine to the Tamarin project accelerates the ability of developers to create and deliver richer, more interactive and engaging experiences that work across multiple platforms. Specifically, developers will be able to leverage the Tamarin code to create web applications that perform much faster in Firefox.

How will this impact the development of Flash Player?

The Tamarin project with Mozilla will improve Adobe's ability to deliver a standards-compliant implementation of the ECMAScript 4th edition specification for ActionScript in future versions of Flash Player.

When implementing the Tamarin code into applications, can developers use the term ActionScript when describing the application?

ActionScript™ is the name used for Adobe's implementation of the language specification. Adobe is in the process of developing a licensing program that will allow developers, whose code passes a designated test suite, to say that their application or implementation is ActionScript-compliant. When the program is available, there will be a link on the Mozilla website to guidelines on how developers can use the term ActionScript when describing their implementation of Tamarin.

Technical FAQ

What is ActionScript™?

ActionScript is the ECMAScript-based programming language used for scripting Adobe® Flash® content and applications. The recently released Adobe Flash Player 9 includes ActionScript 3.0, which is based on the ECMA-262, 3rd edition standard with extensions for classes, namespaces, optional strong typing of variables, and other features. These ActionScript 3.0 extensions are expected to be included within the next revision to the ECMA-262 standard due out next year.

Are JavaScript and ActionScript the same?

ActionScript and JavaScript are based on the same ECMA-262, 3rd edition language standard, but the libraries supporting ActionScript and JavaScript are different.

For example, JavaScript is generally used within a browser and its Document Object Model (DOM) is browser window-, document-, and form-centric, while also supporting XML, event handling and Ajax. ActionScript executes within the Adobe Flash Player and its DOM is media centric, with support for animations, audio, text, and event handling.

In short, the languages are the same but have some unique extensions and supporting libraries. This contribution does not affect the DOM APIs in either Firefox or Adobe Flash Player.

What is AVM2?

AVM2 is the latest Adobe ActionScript Virtual Machine, the standards-based scripting language engine in Adobe Flash Player 9. AVM2 was built from the ground up to work with the next generation of ActionScript. The new virtual machine is designed to deliver the performance and features to support the needs of rich Internet application developers. AVM2 supports full runtime error reporting, built-in debugging, and binary socket support so developers can extend the player to work with any binary protocol. The AVM2 also features a Just In Time (JIT) compiler that translates ActionScript bytecode to native machine code for maximum execution speed.

Is there an AVM1, and is any of its code being released as open source?

AVM1 is used in Adobe Flash Player 9 and prior players to execute older versions of ActionScript. AVM2 is a ground-up rewrite of AVM1 to provide high performance, ECMA-262, 3rd edition compliance, and a new foundation for evolving the language. AVM1 source code is not being released as open source.

How does one build and execute an ActionScript 3.0 application?

A developer can use the free Adobe Flex™ SDK (http://www.adobe.com/products/flex/sdk/), Flex Builder, or Flash® Professional to compile ActionScript source code into a Flash file (SWF). The SWF file may then be distributed via the web or as a standalone application and is executed by Adobe Flash Player.

What exactly is being released as open source?

The Tamarin release will include the following components:

  • Source code from the ActionScript Virtual Machine (AVM2) as currently shipping in Adobe Flash Player 9, including the Just In Time (JIT) runtime compiler and conservative garbage collector.
  • A partial implementation of a prototype compiler written in ActionScript, which will be developed by the open source community to implement all of the ECMAScript 4th edition specification. This will be a "self-hosted" compiler that is written in the language it compiles.

Is the ActionScript compiler used by Adobe Flex and Flash Professional being released as open source?

No. As noted in the previous question, the Tamarin release will include a partial implementation of a prototype compiler; this compiler is distinct from the compiler used by Adobe Flex and Flash Professional. The plan is to use SpiderMonkey's compiler first and collaborate to develop the self-hosted ECMAScript 4th edition compiler.

Is ActionScript Virtual Machine (AVM2) the same as the ActionScript language?

No, they are distinct. The ActionScript Virtual Machine is responsible for executing the operations and semantics defined by the ActionScript language.

What are Mozilla's plans for Tamarin?

The Tamarin code will be included within SpiderMonkey, the open source C-based JavaScript engine used by Firefox and other applications based on Mozilla technology.

Is Adobe continuing development on Tamarin and the ActionScript Virtual Machine?

Yes. Adobe will continue to invest engineering resources in the ActionScript Virtual Machine and will be working in the open with the Mozilla community to improve the Tamarin code. Adobe's contributions to Tamarin will play an important role in the development of future versions of the ActionScript Virtual Machine. Future updates to ActionScript are planned to be based on the ECMA-262, 4th edition that is currently being standardized by the ECMA TC-39/TG-1 working group. Adobe continues to be an active participant on this working group.

Who else is participating in the ECMAScript working group?

The working group is led by Brendan Eich, Mozilla CTO and creator of JavaScript, and includes Yahoo!, Apple, Microsoft, Adobe, Opera and others.

When will Tamarin appear in SpiderMonkey and Firefox?

The Mozilla engineering team currently estimates that Tamarin will be incorporated into shipping versions of SpiderMonkey and Firefox in 2008.