Personal tools

Legals Project Plan

From OpenLaszlo

This document provides the project plan for Legals, the OpenLaszlo release that supports both Flash and DHTML runtimes. All project milestones will appear on this page. In addition, this page is the kickoff page for all other legals-related pages.

Contents

Legals Project Goals

The goal of the legals project is to turn OpenLaszlo into a true multi-runtime platform by supporting both Flash and DHTML runtimes. Currently, OpenLaszlo generates script source that is compatible with ECMAScript Release 3, while the backend generates SWF7 through SWF8. More specifically, the front end generates Javascript 1.5, which is compatible with ECMA3. Since ActionScript is also an ECMA3 dialect we can compile directly to SWF bytecodes from ECMA3. With Legals, OpenLaszlo will move to compatibility with portions of the draft ECMAScript Release 4 standard, and expand runtime support to include two new families, SWF9 and DHTML on popular browsers. We are also interested in other potential runtimes (XAML/.NET, various mobile runtimes, etc) but are not explicitly designing for them at this time.

SWF9 Runtime Goals

The immediate goal of the swf9 porting project is to take advantage of the performance improvements in swf9 (AVM2). The swf9 vm is 10x faster for low-level stuff, with types another 2x or so. A secondary goal is to enable access to new features of AVM2, especially where these features are or will also be supported by other runtimes (e.g., regular expressions, E4X support deferred from intial release). It is not a goal of this project to add these new features. For example, it is outside the scope of this project to add regular expressions or E4X to the OpenLaszlo platform. However, this project should leave the platform in a state where it is easier to add these features in a way that has support on at least one swf and one non-swf target.

The http://osflash.org/swf9dis and http://osflash.org/flash9 pages provide:

  • Information about the SWF9 bytecode set. It is useful to compare the binary output of the Flex compiler from different source examples.
  • Tools for unpacking a swf file, doing a binary diff on various tag contents

Other Flash Runtimes

OpenLaszlo 3.x supports Flash Players 6 (swf6), 7 (swf7), 8 (swf8). OpenLaszlo 4.x (aka Legals) will support Flash Players 7, 8, and 9. See http://wiki.openlaszlo.org/Flash_Versions.

DHTML Runtime Goals

The initial DHTML target will be Javascript 1.4/Jscript 5.6. Subsequent releases will support Javascript 1.5. This requires a baseline of ECMA3.

System Requirements:

  • Javscript 1.4/Jscript 5.6 for initial release
  • HTML 3.2 transitional, DOM level 2, CSS2
  • Browser versions: Windows IE 6.0, Firefox 1.5
  • Platforms: Windows XP/2000, Linux 2.6, Mac OSX 10.2 (Firefox browser only)

DHTML issues and working document can be found here: DHTML_Target

Runtime Differences

The goal of Legals is to ensure that LZX applications behave the same way regardless of the target to which they're compiled. However, sometimes that's simply not possible, usually because the DHTML runtime does not support some feature that is implemented in flash. For example, DHTML does not natively support video or embedded fonts. These difference may require developers to modify or conditionalize code depending on how they plan to compile it.

These differences are summarized in Runtime_Differences

Legals Resources

Other useful subpages, which can and will be modified, include:

If you are uncertain about which page to add information to, please send email to either amuntz@openlaszlo.org or max@openlaszlo.org. Please do not just create another legals wiki page.

Documentation Plan

4.0 includes major improvements to the documenation and an overhaul of the doctools infrastructure. See the plan here:4.0_Documentation_Plan

Architectural Overview

Overall, the goal is to provide the most consistent and best-performing experience possible across the target runtimes.

First, the runtime libraries are being refactored to separate runtime-specific code into 'kernels' - one for SWF and one for DHTML. Next, they will be rewritten to use a new Jscript/JavaScript compliant inheritance model. At this point, the runtime libraries will be pure Javascript 1.2.

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. Therefore, the runtime will be rewritten on top of ECMA4. Future ECMA4-based runtimes (e.g. Firefox 2.0) will require relatively little support for OpenLaszlo compatibility. Some ECMA3+ features can be compiled away for ECMA3 targets, including static typing and sealed classes. The ECMA3 class-based object model will be emulated on top of the Jscript/Javascript inheritance model.

By the time we complete OpenLaszlo 4.0 We will have several discreet components that may be reused by other opensource projects, including:

  • backends for converting ECMA3+ to native ECMA 262 dialects
  • ECMA4 object model simulation in JScript 5.6, Javascript 1.5

Architectural details - will be taken from the Multiple_Runtimes_Infrastructure and Legals_Project pages and combined into a single page, and renamed legals architecture.

Milestones

This section describes the major milestones for the project. As the details for each task becomes clear, they will be added here. Other tasks will also be added.

March 6, 2006 - Demo

Released: LZpiX Demo

June 2006 - Preview 1

This is a preview of Legals - functionality incomplete, but architecture in place enough to invite community participation

Sub Tasks

  • Compiler modifications to emit ECMA3
  • Creation of sprite kernel API from LzView for both DHTML and SWF
  • Creation of unit testing framework that supports kernel development and automated testing within Rhino
  • Update of deployment wrappers to support both DHTML and SWF
  • Cross-runtime debugger console for cross-platform development

July 2006 - Preview 2

This release adds support in the DHTML runtime for IE6 and Safari; SWF9 work has begun

Sub Tasks

  • Profiler ported to DHTML
  • LFC sources cleaned up, organized, runtime-specific extensions separated
  • No known memory leaks in IE6
  • Initial round of IE6 performance optimizations
  • Safari blockers resolved
  • LZPIX works in Firefox 1.5, IE6, Safari 2.0

August 2006 - Preview 3

This release further builds out the multiple (DHTML, SWF7-8) backends. LFC is modernized, and DHTML and SWF7-8 kernels are feature complete.

Sub Tasks

  • DHTML, SWF7-8 kernels feature complete
  • LFC cleaned up and converted to ECMA3
  • LFC feature-complete against SWF7-8, DHTML kernels
  • Raster assets for components (pending designer availability)

Early October - Preview 4

This release contains functioning versions of most of the standard OpenLaszlo UI components.

Sub Tasks

  • ECMA4 draft enhancements complete
  • LFC converted to use ECMA4 draft enhancements
  • Components running in both runtimes
  • More sample code and examples updated for Legals
  • Improvements to OOBE and packaging

Late October - Beta 1

Sub Tasks

  • Doc Tools updated to handle refactored LFC, runtime differences, ECMA3 + ECMA4 draft enhancements
  • Beta-quality OOBE and packaging
  • Mostly feature-complete, some blocking issues and missing features

December - Beta 2

Sub Tasks

  • Feature complete, no major blocking issues
  • Initial documentation

Final Release - Q1 2007

This is the fully qualified release of Legals. Applications may be deployed against this release.

Soon Thereafter