Personal tools

Legals Tasks

From OpenLaszlo

Contents

Schedule

  • 2/06/06 (Monday): Demo design complete [Bret]
  • 2/09/06 (Thursday): Coding of demo design in lzx complete [Bret]
  • 2/28/06 (Tuesday): Code Freeze (development complete) [All] (BETTER IF EARLIER)
  • 3/6/06 (Monday): ETech

Demo Details

A demoable version that allows you to select a flickr photo feed, scale the images in real time, and drag photos you wish to keep into a tray.

Remaining Tasks

  • Constraints: dependent on new compiler backend [Tucker]
  • Xpath [Max/Henry]
  • Unit tests - add unit test to framework and convert LzUnit [Elliot]
  • Dev console changes [Henry]

Current Working Functionality

  • Compiler switch [Tucker]
  • Datasets [Henry]
  • Opacity, layouts, animators, classes, script tags, includes [Max]
  • Clipping, resource stretching [Max]
  • Font size/style [Henry]
  • Flickr query [Henry]
  • Input Text [Max]
  • View with mouse events (all implemented) [Max]

Tasks

Note: this page has not yet been reconciled with any tasks the SWF9 Target or DHTML_Target pages.

Server

  • Add wrapper page that includes OLR and lzt=js script includes (LPP-1304) [Max]
  • Add request type (lzt=js?) that emits javascript from lzc --script (LPP-1305) [Henry]

Build System

(reduces integration overhead between lps-dev and lps-legals if done early)

    • Move mini runtime from sandbox to lps/includes/lfc (| LPP-1299)[Max]
    • Migrate .as files to .js (LPP-1300) [Max]
      • lps-legals -> lps-dev or the other way around?
      • Holding off until move to svn
    • move ORL out of WEB-INF (LPP-1300) [Max]
      • Instead, could build DHTML OLR outside WEB-INF

Compiler

  • Add runtime type (lzr=dhtml) for conditionalizing ORL builds and server actions (LPP-1324) [Max/Tucker]
  • Compile resource tags to script (LPP-1325) [Henry]
    • responsible for assembling multiframe resources
    • Should provide a list of relative URLs for each resource declaration, keyed off server-assigned library names
    • LzLibrary = {}; LzLibrary.$resname = ['url','url2'];
    • Could preload resources
  • Emit constraints as ECMA instead of bytecode (LPP-1302) [Tucker/Oliver]
    • convert new constructor(parent, args) -> LzFactory.create(constructor, parent, args) (LPP-1303)[Tucker]
      • may want to copy n constructor arguments instead of just 2 (parent, args)
    • convert .super.foo(args) -> .callInherited('foo', args) [Done according to Tucker]
    • Pass list of events to runtime (LPP-1326)[[Tucker]
      • events need to be created ahead of time - can't rely on onxxx failing silently as in flash
      • e.g. DeclareEvent( LzFactory, 'oncreate' );
      • should this be a runtime task based on a list of events?
    • clean ECMA4~ frontend
    • multi-target backend
      • AS3
        • (ECMA4~ to AS3 transform) LPP-1358 Tucker
        • flex2 for AS3 to SWF9 (added as a note to LPP-1359)
        • AS3 to SWF9 backend LPP-1359 Tucker
      • DHTML (JS1.6)
        • ECMA4~ to ECMA3+ transform LPP-1360 Tucker
      • AS2
        • ECMA4~ to ECMA3 (to AS2) transform LPP-1361 Tucker
        • AS2 to SWF6-8 backend LPP-1362 Tucker
        • E4X to XML API transform LPP-1363 Tucker
      • DHTML (JS1.2 / JScript5.6)
        • ECMA4~ to ECMA3 transform LPP-1364 Tucker
        • E4X to XML API transform LPP-1365 Tucker
    • SWF to PNG conversion pass for non-Flash runtimes LPP-1366 Tucker
    • unit test compile phase using Rhino (LPP-1357) [Henry]

Runtime

    • E4X support library for ECMA3 runtimes (LPP-1368 max)
    • regexp support library for downlevel runtimes (LPP-1369 max)
    • JS1.6 runtime (Spidermonkey + Rhino) (LPP-1370 max)
    • JS1.2/JScript5.6 runtime (LPP-1371 max)
    • AS2 runtime (LPP-1372 max)
    • AS3 runtime (LPP-1373 max)

ORL

    • Include prototype AJAX library and have dataset instantiate/load from it [Henry]
    • Remove flasm, make sure it's in sync with bytecode in lps-dev (LPP-350) [Jim]
    • Port existing instantiator to use new class instantiation system on lzt=js requested code (LPP-1309) [Henry]
    • Make simple LZX demo with minilfc (LPP-1310) [Henry/Max]
    • Convert ORL to use new class instantiation system (LPP-1311) [Max]
    • Convert ORL to explicitly declare events (LPP-1381) [Max]
    • Convert components to explicitly declare events (LPP-1382) [Jim]
    • Write unit tests for LzClass and LzUserClass (LPP-1383) [Jim]
    • Write unit tests for LzView (LPP-1384) [Adam]
    • refactor ORL for multiple runtimes (LPP-1418)[max]
    • update ORL generic to ECMA4~ (LPP-1419)[max]
    • DHTML kernel
      • implement display node (LPP-1420)[Henry]
      • multiframe resources (LPP-1421) [Max]
      • port text APIs (LPP-1422) [Max]
      • port data APIs (LPP-1423) [Max]
    • AS2 kernel (LPP-1424)[Max]
    • AS3 kernel (LPP-1425)[Jim]


  • Components
    • multiple runtime support (LPP-1437)[Jim]
  • Doc Tools
    • support ECMA4~ features (LPP-1438)[smithee]
    • support multiple runtimes (LPP-1436)[smithee]

Research

    • investigate AS3 Sprite API [Max]
    • Investigate Flash CSS runtime support/APIs [Elliot]
    • MiniLFC: Why does style.backgroundColor only work if the div has contents?
    • LZX stress test (10, 100, 1000 animated views with resources) timed in dhtml, flash

Notes

  • ECMA4~ here means ECMA3 + whatever we need from ECMA4
    • at least: class keyword, sealed decl, type decls, E4X, compound attrs
    • not this time: packages, namespaces
  • ECMA3+ is ECMA3 + E4X
  • "DHTML" here is XHTML + DOM2 + CSS2 + maybe canvas/whatwg
  • when is IE7 going to be released? Will Jscript.NET support ECMA4~ features by then?

Staging

Stage 0: DHTML demo

source: source tree update, .as to .js (LPP-1300) max
Add wrapper page that includes ORL and lzt=js script includes (LPP-1304) max
Add request type (lzt=js?) that emits javascript from lzc --script (LPP-1305) henry
Port existing minilfc instantiator to use new class instantiation system (LPP-1309) henry
Make simple LZX demo with existing view system (LPP-1310) henry/max

Stage 1: ECMA3 + AS2 updated + AS3 start + DHTML start

frontend: clean ECMA3 (LPP-1367) ptw
frontend: ECMA4 classes (LPP-1352) hqm/ptw
backend: multi-runtime support ptw
backend: clean AS2 compiler (LPP-1361) ptw
backend: JS1.6 compiler (LPP-1360) ptw
backend: AS3 instruction set documented community
compiler: Rhino unit test harness (LPP-1357) hqm
runtime: unit tests hqm/max/jim
runtime: JS1.6 runtime (LPP-1370) max/hqm
runtime: AS2 runtime updated for ECMA4 classes jim
ORL: eliminate __proto__ and port to ECMA max
ORL: refactored (runtime/kernel/generic) max
doctools: support for multiple runtimes hqm

Stage 2: ECMA4 (no E4X) + AS2 + AS3 partial + DHTML partial

frontend: types, sealed, compound attrs ptw
backend: AS3 (flex2) ptw
backend: ECMA4 to ECMA3 transform (no E4X) ptw
backend: AS3 compiler start ptw/hqm
backend: JS1.2/JScript5.6 compiler tbd
runtime: JS1.2/JScript5.6 runtime complete max/hqm
runtime: AS3 runtime start ptw/hqm
OLR: generic updated to ECMA4 tbd
OLR: DHTML kernel start max/jim
OLR: AS3 kernel start max/jim
doctools: support for ECMA4~ features hqm

Stage 3: ECMA4~ + AS2 + AS3 + DHTML partial

frontend: E4X tbd
(frontend: regexp) tbd
backend: AS3 compiler complete ptw/hqm
backend: E4X to XML API transform tbd
runtime: AS3 runtime complete ptw/hqm
runtime: E4X library for ECMA3 runtimes tbd
(runtime: regexp library for downlevel runtimes) community
OLR: AS3 kernel complete max/jim
(OLR: more DHTML kernel) max/jim
components: multiple runtime support tbd

Notes

  • Stages are currently milestone-driven, not resource-driven.
  • components work may need to move earlier than Stage 3
  • E4X and regexp available to cut if necessary (prefer E4X)
  • DHTML work after Stage 1 to scale with available resources
  • risk: AS3 compiler, runtime and kernel not complete until Stage 3