I've got to quit for the night, and I am out tomorrow. If my review of this is blocking Max's progress, I suggest you check this in, and Max make a 4.8 branch, so that he can proceed. We can address any review issues as integrations.
On 2010-05-27, at 17:40, Henry Minsky wrote: > Change 20100527-hqm-G by [email protected] on 2010-05-27 17:34:59 EDT > in /Users/hqm/openlaszlo/trunk > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: 'fat lzo' binary libraries, containing swf10 and dhtml object code > > New Features: > > Bugs Fixed: LPP-9022 > > 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, > with filenames based on the compiler flags (e.g., "swc", "swc-debug", > "swc-backtrace", etc) > > When targeting swf10 and dhtml, the if the compiler sees the > platform-specific entry in the lzo file, and matches current > compilation flags. 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/makefile: compiles the libraries below with these > flags > > lzc -c --runtime=swf10,dhtml libglobal.lzx > 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, ensure behavior identical > 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 > http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=dhtml&debug=true > http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=dhtml > http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf8&debug=true > http://127.0.0.1:8080/trunk/test/testlzo/main.lzx?lzr=swf8 > > > Files: > M test/testlzo/libglobal.lzx > A test/testlzo/simple.lzx > A WEB-INF/lps/lfc/kernel/swf9/LZOApplication.as > M WEB-INF/lps/lfc/kernel/swf9/Library.lzs > 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/SWF9External.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF10Compiler.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/SWF9ParseTreePrinter.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/lzsc.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/FileResolver.java > M WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java > M > WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java > M WEB-INF/lps/server/src/org/openlaszlo/compiler/ImportCompiler.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/20100527-hqm-G.tar
