Tamarin — это упразднённая свободная виртуальная машина с поддержкой компиляции «на лету» (JIT), предназначенная для реализации 4-го издания языкового стандарта ECMAScript (ES4). Исходный код Tamarin происходит из ActionScript Virtual Machine 2 (AVM2) [1] , разработанной Adobe Systems , как представлено в Adobe Flash Player 9 , который реализует язык сценариев ActionScript 3. ActionScript Virtual Machine 2 была передана в качестве открытого исходного кода в Mozilla Foundation 7 ноября 2006 года для разработки Tamarin как высокопроизводительной виртуальной машины при поддержке широкого сообщества Mozilla , которая будет использоваться Mozilla и Adobe Systems в следующем поколении их движков JavaScript и ActionScript с конечной целью унифицировать языки сценариев в веб-браузерах и платформе Adobe Flash и облегчить разработку более производительных насыщенных веб-приложений . [2]
Исходный код, включая компилятор just-in-time и консервативный сборщик мусора , был передан в дар Mozilla Foundation 7 ноября 2006 года. [3] Предоставленный код имеет тройную лицензию GPL , LGPL и MPL для разработки в репозитории Mercurial компании Mozilla . [4] Предоставленный код составляет приблизительно 135 000 строк кода, [5] что делает его крупнейшим единовременным пожертвованием кода проекту Mozilla помимо самого Netscape . [6]
Планировалось использовать Tamarin как часть Mozilla 2 [7] (и, следовательно, Firefox 4). Проект по интеграции Tamarin и SpiderMonkey назывался «ActionMonkey», [8], но был отменен в 2008 году [9], поскольку интерпретатор Tamarin оказался медленнее, чем SpiderMonkey, а также потому, что планы по разработке ECMAScript сместились с ECMAScript 4 , который был частично реализован на основе существующего исходного кода Tamarin и должен был быть завершен совместными усилиями Adobe, Mozilla и ее сообщества в рамках проекта Tamarin, [10] на ECMAScript Harmony . [11]
Adobe продолжила использовать Tamarin в своем Flash Player , но он не заменил SpiderMonkey в качестве движка JavaScript приложений Mozilla.
Единственная часть Tamarin, используемая в современных приложениях Mozilla (например, Firefox 3.5+) через SpiderMonkey — это NanoJIT , модуль, который используется для генерации собственного кода при выполнении компиляции JIT . [12]
Adobe предоставила код для своей ActionScript Virtual Machine 2 и JIT- компилятора. Компилятор ActionScript также имеет открытый исходный код как часть Adobe Flex . [13] Также существует CrossBridge , компилятор C и C++ с открытым исходным кодом .
Tamarin — это не то же самое, что Adobe Flash Player , который остается закрытым исходным кодом. Виртуальная машина Tamarin — это только часть Flash Player.
Два проекта, связанных с Tamarin, были анонсированы 25 июля 2007 года в докладе Брендана Эйха на конференции The Ajax Experience West: IronMonkey и ScreamingMonkey. [14] [15] IronMonkey — это проект по сопоставлению IronPython и IronRuby с Tamarin, возглавляемый Со Санхёном. [16] Цель ScreamingMonkey — позволить Tamarin работать в браузерах, отличных от Mozilla (тем самым позволяя им понимать JavaScript 2), начиная с Internet Explorer . Проект возглавляет Марк Хаммонд. [17] Ни один из проектов не имел релизов производственного качества, и их текущий статус неясен.
Оба вида — SpiderMonkey и Tamarin — выполняют тесно связанные задачи, поэтому им были даны названия, происходящие от видов обезьян ( паукообразная обезьяна и тамарин соответственно).
Технический директор
Мозиллы
Исполнительный директор Mozilla Foundation
Разработчик Mozilla
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )mozilla.dev.tech.js-engine