Changes

Jump to: navigation, search

Tamarin:ScreamingMonkey:Planning notes

4,243 bytes added, 05:16, 26 July 2007
no edit summary
== Stage 1 ==

Identify the full scope of the next stages of the project (ie, create
detailed estimates for most following stages.)

Stage 1 will include a "prototype" implementation - that implementation will
be written in C++, using the Microsoft "Active Template Libraries" to help
manage boilerplate MSCOM code. This prototype will focus on the "big ticket"
items - ie, things that are likely to be problems in the real implementation.
As a suitable JavaScript compiler for Tamarin is still in development, the
initial stages of this implementation will require the use of an external
compiler; the AXScript engine will be unable to use JavaScript source code
directly. It is expected that by the time such a compiler is necessary
(currently thought to be stage 3; see below) the 'ActionMonkey' compiler
being developed by Mozilla should be suitable for use.

=== Deliverables ===

* a "prototype" implementation that will not function, but will demonstrate minimal integration of AXScript with Tamarin.
* Identification of features that will be delivered in stage 2, and those which can be pushed back to later stages.
* Estimates for the time needed to deliver phases 2 and 3.
* A strategy for the real implementation (ie, should ATL continue to be used, how much of the mozilla infrastructure for MSCOM is suitable, etc)
* Identification of limitations or other issues in the Microsoft ActiveScripting framework that may cause issue for this project. For example, limitations in how the "<script ...>" tag is parsed by IE for instantiating the ActiveScript object to satisfy the tag, etc.
* Identification of issues related to embedding a compiler in the engine, and recommendations for this aspect of the project.

== Stage 2 ==

ActiveScript implementation, targetting "Windows Scripting Host"

This stage delivers enough of an implementation to work with the
Windows Scripting Host. This is an AXScript host, just like IE,
although it need not implement all interfaces - things such as
"type info", UI controls etc can be omitted. This will target
pre-compiled JavaScript code - the use of a compiler is not
in the scope of this stage.

Details here are guestimates - see Stage 1, where a detailed plan for
this stage will be delivered. This stage will deliver a buildable,
working Active Script engine. It will not deliver any integration
with installers, end-user documentation, etc.

=== Deliverables ===

* Full implementations of AXScript interfaces to act as a "basic" script language, but not fully functioning in IE.
* Integration into a build system so the ActiveScript binary is created. Its not clear exactly what build system that would be yet, or how such integration would be implemented.
* Developer documentation

== Stage 3 ==

AXScript implementation that targets Internet Explorer using JavaScript source
code. This will involve integration of a JavaScript compiler, as well as
enhancements to the AXScript engine to support IE specific features.
This still only delivers a "buildable" implementation - no
installer or end-user documentation will be provided. This implementation
should be able to be used by developers for testing purposes.

=== Deliverables ===

* Engine that integrates with a compiler, so javascript source code can be compiled on the fly.
* Script engine enhanced for use inside IE.

== Stage 4 ==

This stage consolidates the work in the previous stages. It will address
automated testing, installation and any other issues identified as "out of
scope" for stages 2 and 3.

The deliverable for this stage is an implementation that is suitable for
day-to-day use by beta testers.

=== Deliverables ===

* Integration into installation system, talkback, and any other "deployment" related requirements.

== Stage 5 ==

Add debugging support. This step is optional, but would allow integration
into the "Script Debuggers" from Microsoft. The task is to implement the
ActiveScript interfaces related to debugging. This stage will eventually be
split to "estimate" and "implement" stages once more knowledge is gathered
from the implementation of the previous stages.

=== Deliverables ===

* Updated code and developer documentation to allow debugging in the end-user binaries.
Confirm
98
edits

Navigation menu