JavaScript:TraceMonkey: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
== Security Review ==
== Hacking on TraceMonkey ==


[[TraceMonkeySecurityReviewForm]]
The TM tree is located at http://hg.mozilla.org/tracemonkey.


== TraceMonkey Tasks ==
We are currently still in rapid development mode. Our commit policy is as follows: "If you are confident you know what you are doing, push now and prepare to answer questions later if you break the tree." If you have commit access to hg.mozilla.org, feel free to commit any patch you feel is sensible. Even white-space cleanup, additional comments or general code cleanup/naming consistency changes are welcome.


Here are a few pending tasks. Most of them benefit Tamarin-Tracing and TraceMonkey. Tasks that only benefit TraceMonkey are marked with a star(*).
Run trace-test.js and all benchmarks in t/* before you commit. Commits that break any of these tests are allowed if sensible, but please let everyone know why you break what and what has to happen to fix it.


* Setup performance & compliance test framework for shell using a MacMini.(*)
The main channel to discuss TM is #jsapi on irc.mozilla.org.  
** Skill set: perl, shell scripts and such
** Effort: couple days tops


* Cleanup page allocation code in nanojit.
== TraceMonkey Tasks ==
** Skill set: C/C++, gdb, some understanding of Tamarin would be good
** Effort: 1 week


* Make more JSOPs traceable.(*)
(Task list to be updated.)
** Skill set: solid experience with SpiderMonkey
** Effort: on-going


* Implement soft-float math in TraceMonkey. The code already exists in Tamarin-Tracing and just needs to be ported over. Coordinate with upstream maintainer to extract soft-float code into a filter and get a patch for that into Tamarin-Tracing.
== Security Review ==
** Skill set: C/C++, gdb, no fear of ARM assembly
** Effort: 2 weeks


* Add loop-spanning register allocation to nanojit and get patch into Tamarin-Tracing.
[[TraceMonkeySecurityReviewForm]]
** Skill set: C/C++, gdb, experience with compiler construction advisable
** Effort: 2-4 weeks, depending on implementation strategy
 
* Fix vprof in Tamarin to make it usable on Mac and Linux.
** Skill set: C/C++
** Effort: 2 days
 
* Help Intel with type stability analysis on real-world JS code.
** Skill set: understanding of JS, C/C++
** Effort: 2 weeks
 
* Port nanojit to PowerPC (lower priority).
** Skill set: solid understanding of architecture issues, C/C++, lots of gdb
** Effort: 4 weeks
 
* Update ARM/Linux JIT
** Skill set: ARM assembly, C/C++, gdb
** Effort: 2-4 weeks?
Confirmed users, Bureaucrats and Sysops emeriti
291

edits