JavaScript:Projects: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(mark obsolete)
 
(15 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{OutdatedSpiderMonkey}}
This list of active JS projects was compiled from older lists of [https://wiki.mozilla.org/JavaScript:Home_Page#Tracked_Projects tracked projects] and [https://wiki.mozilla.org/Javascript:SpiderMonkey:2013Projects 2013 projects].
This list of active JS projects was compiled from older lists of [https://wiki.mozilla.org/JavaScript:Home_Page#Tracked_Projects tracked projects] and [https://wiki.mozilla.org/Javascript:SpiderMonkey:2013Projects 2013 projects].


Line 17: Line 19:


== Test262 ==
== Test262 ==
* ''Goal:'' Integrate test262, ECMA's ECMAScript conformance test suite, into Mozilla's tests ({{bug|496923}}) and fix failures ({{bug|652780}}).
* '''Goal:''' Integrate test262, ECMA's ECMAScript conformance test suite, into Mozilla's tests ({{bug|496923}}) and fix failures ({{bug|652780}}).
* '''Developer:''' jwalden
* '''Developer:''' jwalden
* '''Tracking bug:''' {{bug|496923}}
* '''Tracking bug:''' {{bug|496923}}
Line 55: Line 57:
= GC =
= GC =


== Exact Stack Rooting ==
== Generational GC ==
* '''Goal:''' Exactly root Firefox.
* '''Goal:''' Implement generational garbage collector (GGC) and exactly root Firefox.
* '''Team:''' terrence, sfink, jonco
* '''Team:''' terrence, sfink, jonco
* '''Tracking bug:''' {{bug|753203}}
* '''Tracking bug:''' GGC {{bug|619558}} and Exact Stack Rooting {{bug|753203}}
* '''More info:''' https://people.mozilla.org/~sfink/analysis/
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:ProjectGenerationGarbageCollection and [https://people.mozilla.org/~sfink/analysis/ rooting hazard burndown chart]


== Generational GC ==
== Memory-dependent GC Configuration ==
* '''Goal:''' Implement generational garbage collector (GGC). GGC requires exact stack rooting.
* '''Goal:'''  
* '''Team:''' terrence, sfink, jonco
* '''Team:''' TBD
* '''Tracking bug:''' {{bug|619558}}
* '''Tracking bug:''' TBD
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:ProjectGenerationGarbageCollection
* '''More info:''' Currently the GC settings are configured for Unagi devices with 256 MB, and even if this is our current target in terms of Market, but we would need to generalize our GC settings to perform best on all devices (see Bug 898556). Even with GGC, we might still have frequenct GCs if we overflow the nursery before the next minor GC.


== Future ==
* Incremental Browser Marking
* Compacting GC
* Nursery allocation of JSStrings
* G1: The Good Parts {{bug|902174}}
* Concurrent GC


= Performance =
= Performance =
Line 88: Line 96:
** Visual Studio integration with Emscripten - Naveed waiting on contractor SOW
** Visual Studio integration with Emscripten - Naveed waiting on contractor SOW


== Browsermark 2.0 ==
== Web Browser Grand Prix ==
* '''Goal:''' Run Browsermark 2.0 benchmark in-house.
* '''Goal:''' Beat Chrome on Tom's Hardware's Web Browser Grand Prix (WBGP). Run Peacekeeper, Browsermark, and JSBench benchmarks in-house.
* '''Team:''' Naveed
* '''Team:''' Naveed
* '''Tracking bug:''' {{bug|915281}}
* '''Tracking bug:''' {{bug|499198}}, {{bug|851699}}
* '''More info:''' http://browsermark.rightware.com/
* '''More info:''' http://browsermark.rightware.com/


Line 99: Line 107:
* '''Tracking bug:''' {{bug|}}
* '''Tracking bug:''' {{bug|}}
* '''More info:''' The A-Team is implementing this test framework with input from Luke. https://etherpad.mozilla.org/js-benchmarking
* '''More info:''' The A-Team is implementing this test framework with input from Luke. https://etherpad.mozilla.org/js-benchmarking
== Start-up Cache ==
* '''Goal:''' Cache JS bytecode as "extra data" for B2G apps. The target would be to land with support of packaged app for B2G 1.4 / 1.5 (Gecko 30 / 32).
* '''Team:''' npierron
* '''Tracking bug:''' {{bug|900784}}
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:StartupCache


= Dev Tools =
= Dev Tools =
Line 104: Line 118:
== jsdbg2 ==
== jsdbg2 ==
* '''Goal:''' Add profiling API ({{bug|797876}}) and JIT stack debugging ({{bug|716647}}) jsdbg2, then remove JSD1 ({{bug|800200}}).
* '''Goal:''' Add profiling API ({{bug|797876}}) and JIT stack debugging ({{bug|716647}}) jsdbg2, then remove JSD1 ({{bug|800200}}).
* '''Team:''' jimb?
* '''Team:''' TBD
* '''Tracking bug:''' {{bug|800200}}
* '''Tracking bug:''' {{bug|800200}}
* '''More info:'''  
* '''More info:'''


== Heap Profiling ==
= Technical Debt =
* '''Goal:''' Add integrated tools for tracking memory use, finding leaks, and so on.
* '''Team:''' jimb?
* '''Tracking bug:''' {{bug|}}
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:HeapProfiling


== Stack Snapshots ==
== Run TBPL Tests On All Platforms ==
* '''Goal:''' Add lightweight records of where errors occurred, where event handlers were registered, and so on.
* '''Goal:''' Get our existing test suites running on TBPL in all combinations of the shell and browser on both desktop and ARM.
* '''Team:''' jimb?
* '''Team:'''  
* '''Tracking bug:''' {{bug|}}
* '''Tracking bug:''' {{bug|}}
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:StackSnapshots
* '''More info:'''  
 
= Technical Debt =


== Minimize Header Dependencies ==
== Minimize Header Dependencies ==
Line 128: Line 136:
* '''More info:''' {{bug|785103}} tracks header minimization for all of Gecko.
* '''More info:''' {{bug|785103}} tracks header minimization for all of Gecko.


== Refactor MOP ==
* '''Goal:''' Update meta-object protocol to be more ES5/ES6-like.
* '''Team:''' jwalden
* '''Tracking bug:''' MOP {{bug|637378}} and property/element {{bug|586842}}
* '''More info:''' https://wiki.mozilla.org/Javascript:SpiderMonkey:PropertyElementStorage
== Remove JSContext ==
* '''Goal:''' The single-threaded JSRuntime makes JSContext unnecessary, but most of the work is to make Gecko stop depending on them ({{bug|767938}}).
* '''Team:'''
* '''Tracking bug:''' JSContext {{bug|650361}} and Gecko {{bug|767938}}
* '''More info:'''


= Research =
= Research =

Latest revision as of 22:09, 27 April 2021

Ambox outdated.png THIS PAGE IS OBSOLETE
This article is in parts, or in its entirety, outdated. Hence, the information presented on this page may be incorrect, and should be treated with due caution. Visit SpiderMonkey.dev for more up to date information.

This list of active JS projects was compiled from older lists of tracked projects and 2013 projects.


JavaScript Language

Parallel JS

  • Goal: Expose finer-grain parallelism to JavaScript.
  • Team: sstangl, luke, niko, shu?
  • Tracking bug: bug 891877
  • More info: Work includes a parallel subset of JS (bug 891877), RiverTrail/ParallelArray (bug 801869), and prototyping Shared ArrayBuffers.

ECMA-402 i18n

Test262

ES6

Classes

Modules

Symbols

Typed Objects


GC

Generational GC

Memory-dependent GC Configuration

  • Goal:
  • Team: TBD
  • Tracking bug: TBD
  • More info: Currently the GC settings are configured for Unagi devices with 256 MB, and even if this is our current target in terms of Market, but we would need to generalize our GC settings to perform best on all devices (see Bug 898556). Even with GGC, we might still have frequenct GCs if we overflow the nursery before the next minor GC.

Future

  • Incremental Browser Marking
  • Compacting GC
  • Nursery allocation of JSStrings
  • G1: The Good Parts bug 902174
  • Concurrent GC

Performance

ARM/B2G

  • Goal: Optimize ARM performance for Firefox OS and Android.
  • Team: dcrosher, jcoppeard, mrosenberg
  • Tracking bug: bug
  • More info:

AWFY

OdinMonkey

Web Browser Grand Prix

Selenium Browser Benchmark

  • Goal: Create a test framework to browse real websites using Selenium scripts and measure performance regressions.
  • Team: jmaher, bclary, luke
  • Tracking bug: bug
  • More info: The A-Team is implementing this test framework with input from Luke. https://etherpad.mozilla.org/js-benchmarking

Start-up Cache

Dev Tools

jsdbg2

Technical Debt

Run TBPL Tests On All Platforms

  • Goal: Get our existing test suites running on TBPL in all combinations of the shell and browser on both desktop and ARM.
  • Team:
  • Tracking bug: bug
  • More info:

Minimize Header Dependencies

  • Goal: Reduce header dependencies of jsapi.h and friends to improve rebuild times.
  • Team: njn
  • Tracking bug: bug 908050
  • More info: bug 785103 tracks header minimization for all of Gecko.

Refactor MOP

Remove JSContext

  • Goal: The single-threaded JSRuntime makes JSContext unnecessary, but most of the work is to make Gecko stop depending on them (bug 767938).
  • Team:
  • Tracking bug: JSContext bug 650361 and Gecko bug 767938
  • More info:

Research

Shumway