Personal tools

Legals Project

From OpenLaszlo

Contents

Requirements

(MOVED TO LEGALS_PROJECT_PLAN)

SWF9 runtime

  • executes ActionScript 3.0 plus support libraries
    • AS3 is a dialect of the ECMA Release 4 proposal

DHTML runtime

  • Initially our target browsers will be Windows IE 6.0.xx, Netscape 4.7 (?), and Mozilla Firefox 1.0/1.5.
  • (Fill in market penetration numbers to support.)
  • Baseline requirements therefore are:
    • ECMA3
    •  ?? what version of HTML - HTML 4.0 or XHTML? DOM2? CSS2?
  • Conceptually two separate DHTML runtimes: Javascript 1.2 / JScript 5.6, and Javascript 1.5.

Conceptual Design

Changes to Language definition

  • Good performance on SWF9 is likely to require use of new language features in AS3/ECMA4: class-based object model, static typing, and sealed classes.
  • This argues for repositioning LZX on top of ECMA4
    • Benefit is that future ECMA4-based runtimes (e.g. Firefox 2.0) will require relatively little support for OpenLaszlo compatibility
    • Certain ECMA4 features can be compiled away for ECMA3 targets
      • static typing
      • sealed classes
    • Other features can be emulated
      • class-based object model
  • Runtime: Lightweight Views. Use Sprites instead of MovieClip?
  • Runtime: View States. swf9 supports an equivalent to the LZX state mechanism. Can this be used directly?

Architectural changes

SWF9 backend and runtime

DHTML backend and runtime

Architecture

Two-pass compiler

1. Compile LZX to ECMA4~

2. Compile ECMA4~ to native

  • Two conceptual sub-stages: ECMA4~ to native source, native source to binary where needed:

Source Transform Binary Generation Notes
ECMA4 to AS2 AS2 to SWF6-8 (3.x front end) Either our 3.x backend or MTASC
ECMA4 to AS3 AS3 to SWF9 minimal source transform + flex2, eventually our own backend
ECMA4 to JScript 5.6 (no binary) Supports Win IE 6, 7?
ECMA4 to Javascript 1.5 (no binary) Supports Firefox 1.0/1.5

OLR

  • OLR mostly written in ECMA4, with a kernel of runtime-specific/native code (AS2, AS3, JScript, etc).
  • Kernel(s) include:
    • runtime support for drawing, interaction, data processing (XML), and networking
    • ECMA4 object runtimes for AS2, JScript 5.6, Javascript 1.5

Design Principles

Reduce complexity by focusing on SOLO deployment

  • focus is on SOLO deployment
    • non-SOLO deployment support TBD

Build discrete components that can be used outside OpenLaszlo

  • We will attempt to separate components that might be reused by other opensource projects, including:
    • backends for converting ECMA3/4 to native ECMA dialect
      • e.g. ECMA3/4-to-AS3/SWF9
    • ECMA4 object model simulation in JScript 5.6, Javascript 1.5
    • Community support will probably be required to fully separate these components

Details