I'm referring to compiling the swf10 binary .swc library file, obviously, not to the runtime-independent lzs file in the lzo.
On Tue, May 25, 2010 at 1:40 AM, Henry Minsky <[email protected]> wrote: > oh crud, I think I see what's happening, in an lzo library, any top level > script that's emitted by the lzx compiler, to instantiate a view for example > (generates a call to canvas.LzInstantiateView), is just getting discarded > when I build the .swc library. The library only gets class declarations and > global variable definitions, because they each have their own .as files. > > When compiling an actual application, any top level statements the swf9 > backend finds get stuffed into the LzApplication.runTopLevelDefinitions() > method, which is invoked during app startup. But when building an lzo > library, they aren't getting put anywhere. There's no 'main' class to define > a method on. > > I'm not sure how to solve this. Maybe an lzo needs to contain a special > <script> block which contains only > the view instantiations, (or all top level statements, i.e., any statement > except for a class declaration?) encountered while compiling the library > source. Then at application compile time the LZX compiler appends all those > blocks from the lzo's it's opened into the main app's > runTopLevelDefinitions() method? > > > > > > > > > > On Mon, May 24, 2010 at 8:19 PM, Henry Minsky <[email protected]> wrote: >> hmm , lemme check that, I I could have sworn that was working. >> >> On Mon, May 24, 2010 at 7:17 PM, Max Carlson <[email protected]> wrote: >>> Not approved. I don't see the red box around 'vanilla' when I go through >>> all the steps and run in non-debug mode on the server, e.g. >>> trunk-clean/test/testlzo/main.lzx?lzr=swf10 >>> >>> On 5/23/10 9:58 PM, Henry Minsky wrote: >>>> >>>> fixed bug with listing of includes files in the lzo, modified test case to >>>> cover it >>>> >>>> >>>> >>>> Change 20100520-hqm-Q by [email protected] on 2010-05-20 01:30:13 EDT >>>> in /Users/hqm/openlaszlo/trunk >>>> for http://svn.openlaszlo.org/openlaszlo/trunk >>>> >>>> Summary: make lzo files include platform-specific library object code >>>> >>>> New Features: >>>> >>>> Bugs Fixed: >>>> >>>> Technical Reviewer: ptw >>>> QA Reviewer: max >>>> Doc Reviewer: (pending) >>>> >>>> Documentation: >>>> >>>> Release Notes: >>>> >>>> Overview: >>>> >>>> + lzo files are now implemented as zip archives, and contain optional >>>> .swc (flash 10) and .js (dhtml) object code files >>>> >>>> When targeting swf10 and dhtml, the if the compiler sees the >>>> platform-specific entry in the lzo file, it will link >>>> against it directly, rather than compiling the lzs script code block from >>>> the lzo. >>>> >>>> + new comand line arg added to lzc, "--lzolibs". Takes a comma >>>> separated list of external lzo files to link against when building >>>> your own lzo library. This will be needed by the swf10 backend when >>>> resolving externals from other swf-10-binary-compiled lzo libs (like maybe >>>> the lz components library someday). >>>> >>>> Details: >>>> >>>> *** utils/FileUtils.java: >>>> >>>> makeXMLReaderForFile() needs to understand new zipfile format for lzo >>>> files. This scans through and returns the generic LZX file portion of >>>> the lib (as opposed to the optional binary-runtime-specific entries) >>>> >>>> >>>> *** /sc/JavascriptGenerator.java: >>>> >>>> Add a ';' to the end of a block of javascript output, if it does not >>>> already have one >>>> >>>> >>>> *** sc/SWF10Compiler.java: >>>> >>>> Don't generate application framework boilerplate code if we're just >>>> building a library. >>>> >>>> *** sc/SWF9External.java (revision 16441) >>>> >>>> Make compileTranslationUnits() accept optional list of external swc libs >>>> to link against >>>> >>>> *** sc/DHTMLCompiler.java (revision 16441) >>>> >>>> Add hook to allow copying raw byte stream to output, so we can insert >>>> DHTML-specific precompiled javascript from lzo lib if available. >>>> >>>> *** compiler/ObjectWriter.java (working copy) >>>> >>>> added schemaDone() API, called by compiler when the schema has been >>>> computed (all classes >>>> have been entered into class map) >>>> >>>> *** compiler/DHTMLWriter.java (working copy) >>>> >>>> If an lzo is being used and is contains a fully-compiled DHTML object >>>> file, append that to >>>> the compiler output verbatim. >>>> >>>> *** compiler/CanvasCompiler.java (working copy) >>>> moved code that adds Flash8 LFC to the SWFWriter >>>> >>>> *** compiler/LibraryWriter.java (working copy) >>>> Write out zipfile format archives for lzo libraries. >>>> >>>> If runtime targets are specified (e.g., "lzc -c --runtimes=swf10,dhtml"), >>>> we create ObjectWriters for SWF10 and/or >>>> DHTML, so that we compile runtime-specific object code and store it in >>>> entries in the lzo. This will speed up compiling/linking lzo's for >>>> DHTML and SWF10. >>>> >>>> Calls to addScript are forwarded to the runtime-specific ObjectWriters >>>> if they are present. >>>> >>>> >>>> Tests: >>>> >>>> ant lztest >>>> smokecheck swf10/dhtml >>>> amazon in dhtml/swf10 >>>> >>>> test case in test/lzotest: compile the libraries below with these flags >>>> >>>> lzc -c --runtime=swf10,dhtml extclass.lzx >>>> lzc -c --runtime=swf10,dhtml libdir/lib1.lzx >>>> >>>> ## test compiling a swf10 lzo which subclasses something from an >>>> external lzo library >>>> lzc -c --runtime=swf10,dhtml --lzolibs extclass.lzo libdir/lib2.lzx >>>> >>>> then compile main app for all runtimes >>>> lzc --runtime=swf8 main.lzx >>>> lzc --runtime=swf10 main.lzx >>>> lzc --runtime=dhtml main.lzx >>>> >>>> also compile via the LPS server >>>> http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf10&debug=true >>>> http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf10 >>>> >>>> >>>> >>>> >>>> Files: >>>> A test/testlzo >>>> A test/testlzo/main.lzx >>>> A test/testlzo/extclass.lzx >>>> A test/testlzo/libdir >>>> A test/testlzo/libdir/lib1.lzx >>>> A test/testlzo/libdir/lib2.lzx >>>> A test/testlzo/libdir/myinc.lzx >>>> M WEB-INF/lps/server/src/org/openlaszlo/utils/FileUtils.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF10Compiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/DHTMLCompiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/ObjectWriter.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/DHTMLWriter.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java >>>> M >>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/ResourceCompiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/SWFWriter.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/FileResolver.java >>>> M >>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java >>>> M >>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/IntermediateWriter.java >>>> M >>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/ScriptElementCompiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/Main.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/SWF9Writer.java >>>> M WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java >>>> >>>> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20100520-hqm-Q.tar >>> >>> -- >>> Regards, >>> Max Carlson >>> OpenLaszlo.org >>> >> >> >> >> -- >> Henry Minsky >> Software Architect >> [email protected] >> > > > > -- > Henry Minsky > Software Architect > [email protected] > > > > -- Henry Minsky Software Architect [email protected]
