JavaScript:ActionMonkey: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 3: Line 3:
Want to help?  Write to jason dot orendorff at gmail dot com.  Or visit irc://irc.mozilla.org/jslang and say hi.
Want to help?  Write to jason dot orendorff at gmail dot com.  Or visit irc://irc.mozilla.org/jslang and say hi.


== Goals ==
== Project summary ==


The goals are:
The goal of ActionMonkey is to merge SpiderMonkey and Tamarin.  Particulars:


* Preservation (with necessary additions and as few deletions as possible) of [http://lxr.mozilla.org/mozilla/source/js/src/jsapi.h jsapi.h].
* ActionMonkey will continue to support the [http://developer.mozilla.org/en/docs/JSAPI_Reference JSAPI], SpiderMonkey's existing C API, with necessary additions and as few deletions as possible.  People currently using SpiderMonkey as a library should be able to install a new copy of the SpiderMonkey libraries, recompile their code, and run it without major changes.
* SpiderMonkey's [http://lxr.mozilla.org/mozilla/source/js/src/jslock.h thread safety] and [http://lxr.mozilla.org/mozilla/source/js/src/jsscope.h property tree] integrated/reimplemented in Tamarin.
* ActionMonkey will have threading support.  (See [http://developer.mozilla.org/en/docs/JS_THREADSAFE JS_THREADSAFE].)
* Replacement of SpiderMonkey's decompiler with a better decompiler that can work with [http://hg.mozilla.org/tamarin-central/?file/ef6478309778/core/opcodes.tbl ABC].
* We will use the [[Tamarin:Tracing|tamarin-tracing]] interpreter and JIT, so ActionMonkey will run existing JavaScript code (without AS3-style type annotations) fast.
* Replacement of SpiderMonkey's GC with [[Tamarin:MMgc]], evolved as needed.
* SpiderMonkey's [http://lxr.mozilla.org/mozilla/source/js/src/jslock.h thread safety] and [http://lxr.mozilla.org/mozilla/source/js/src/jsscope.h property tree] will be integrated/reimplemented in Tamarin.
* Replacement of SpiderMonkey's interpreter by an evolved version of Tamarin's.
* ActionMonkey will use SpiderMonkey's existing compiler to generate Tamarin bytecode (ABC) for the Tamarin VM to execute.  (SpiderMonkey's compiler is faster and contains some Web compatibility quirks that might be tedious to reimplement in a new compiler.)
* Advanced JIT optimization for hot paths and untyped code, inspired by [http://www.ics.uci.edu/~franz/Site/pubs-pdf/ICS-TR-06-16.pdf Trace Trees].
* SpiderMonkey's GC will be replaced by [[Tamarin:MMgc]], evolved as needed.
* [http://www.cs.cornell.edu/Info/People/jgm/lang-based-security/ Information flow] VM support for better security models.
* [http://www.cs.cornell.edu/Info/People/jgm/lang-based-security/ Information flow] VM support for better security models.


638

edits

Navigation menu