I think the question is whether to keep supporting swf8 the way it
currently is (where it's code generator is mostly a duplicate of the
new way) or to try to integrate it into the new way (which would mean
re-modularizing the existing code generator). I tend toward the
former, as it is a least-effort, because I assume swf8 will eventually
be phased out. OTOH, if you think swf8 will have to be maintained for
a long time, the latter approach would be less effort in the long run
(although more up front).
On 2009-10-07, at 04:41, Max Carlson wrote:
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