This sounds like a fine plan - and a great way to clean up the compiler and make it easier to support other runtimes in the future. One comment: we'll need to support swf8 for a while because some of our biggest users require it.

P T Withington wrote:
Currently our .lzo technology which allows you to write a compressed, linkable library from a library of LZX, only works for the swf8 platform. We'd like to make this technology work across all platforms.

Here's a rough sketch of how I plan to do this:

Make a new subclass of JavascriptGenerator, DHTMLGenerator, and move the JS1-specific transforms into that subclass. DHTMLGenerator will be parallel to SWF9Generator, which is already a subclass of JavascriptGenerator. There may be some simplifications I can make there, because some of the methods of SWF9Generator are just there to undo JS1-specific transforms that shouldn't have been in the superclass in the first place.

[If we wanted to continue to maintain swf8 as a platform, it would make sense to make a new subclass of JavascriptGenerator, SWF8Generator, and move only the byte-code generation from CodeGenerator to there, leaving behind the duplicate platform-independent tranformations that are in CodeGenerator.]

Once JavascriptGenerator is not longer making platform-specific transformations, make another subclass, LZSGenerator, that generates the script portion of .lzo's. This will output to the 'lzs' platform, the extended Javascript that our script compiler takes as an input. It will also handle the minimizing of internal variable names and the compression of the output.

Comments and input welcome.

--
Regards,
Max Carlson
OpenLaszlo.org

Reply via email to