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