.lzo's are just zip archives of partially-compiled lzx.  You can "open" them 
with zip.  If you compile them with the --debug flag, the javascript code will 
be less obfuscated, which can make it easier to debug compiler bugs.

The format of the archive is an LZX interface specification followed by the 
compressed javascript implementation of that interface, and if you have 
compiled for a particular runtime, the runtime-specific linkable library of 
that.

Your particular bug here sounds like an over-zealous compiler warning.  The 
interface spec looks just like a normal LZX module with classes, but all the 
methods will be empty.  They must be declared so the final link/compile knows 
the API's of the Javascript implementation.  I suspect there is an empty setter 
declaration that is meant to be an interface.  If the compiler is checking for 
a body in the setter in the parsing phase rather than the compilation phase, I 
could see how this error could occur.  The compiler should only check when it 
is actually asked to compile the setter (which should be never, in an lzo -- 
the setter should already exist in the javascript.

Sorry for the long-winded description.  Hope that helps you pinpoint the bug.

On 2011-11-15, at 02:57, Raju Bitter wrote:

> I have a complex application I'm working on. When I compile the app
> without LZOs, the compilation works just fine.
> 
> Here's the directory structure:
> 
> canvas.lzx
>    ./components
>    ./components/library.lzx
>    ./components/mixins/library.lzx
>    ./components/classes/library.lzx
> 
> I wan to compile " ./components/classes/library.lzx" into an LZO. The
> classes in folder " ./components/classes/" use some mixins in the
> folder "./components/mixins/". So my idea was to
> 
> 1) first compile the mixins into an LZO
> lzc -c --runtime=swf10,dhtml ./components/mixins/library.lzx
> Generates library.lzo into folder ./components/mixins/
> If I recompile canvas.lzx with the mixins LZO, the compiler does not
> show any warning.
> 
> 2) then compile the classes library into an LZO
> lzc -c --runtime=swf10,dhtml ./components/classes/library.lzx
> The library.lzx includes
> <include href="../mixins/library.lzx" />
> 
> The LZO file is compiled, by now when I compile the canvas.lzx, I get
> the following compiler warnings
> ./components/classes/library.lzo:1599:25: Refusing to compile an empty setter
> 
> How can I debug this? Can I "look" into the LZO to find what happened?


Reply via email to