Approved for QA! On 5/8/10 9:11 PM, Henry Minsky wrote:
one file was missing from the changeset Change 20100507-hqm-p by [email protected] on 2010-05-07 11:13:40 EDT in /Users/hqm/openlaszlo/trunk for http://svn.openlaszlo.org/openlaszlo/trunk Summary: modify SWF9Writer to pass smaller chunks of javascript to script compiler New Features: Bugs Fixed: LPP-8978 Technical Reviewer: ptw QA Reviewer: max Doc Reviewer: (pending) Documentation: Release Notes: Overview: For swf10 compiles, instead of building one large javascript string and passing it to the script compiler, this sends each chunk of script that is passed to a persistent instance of the script compiler. Calls to CompilationEnvironemnt.compileScript (hence to SWF9Writer.addScript) are sent down to a new "compileBlock" method in sc.Compiler. Details: This implements a new subclass of sc.Compiler, sc.SWF10Compiler. Instead of a monolithic call to sc.Compiler.compile(), a SWF10 compile is initialized with a call to sc.SWF10Compiler.startSWF10App() then blocks of script are compiled via calls to compileBlock() and the finalization is done with a call to finishSWF10App(). This creates any needed interstitials and global var declarations, as well as the main app boilerplate. The flex compiler is then called. + SWF9Generator has some things refactored into new methods: makeInterstitials() writeGlobalTUnitsToAS3() writeMainTranslationUnit() callFlexCompiler() - a persistent pointer to a script parser and to the "main translation unit" is kept around so that it can be reused for each call to compileBlock(). - the "classes" table, which kept a copy of all class defs in order to create interstitials, is now called "classConstructors", and only keeps a copy of the AST subtree that is the class constructor. The tree is diked out of it's parent using the deepCopy method. Tests: smokecheck, lzpix, test/snippets/import-class-and-view.lzx A compile of the customer app now requires about 200-400 MB less of memory. The app can be compiled in non-debug mode with 640MB max heap (down from 800MB) In backtrace mode, it requires 1000MB max heap (down from 1400MB). Files: A 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/ScriptCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java M WEB-INF/lps/server/src/org/openlaszlo/sc/TranslationUnit.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryWriter.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java A WEB-INF/lps/server/src/org/openlaszlo/compiler/IntermediateWriter.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/ViewSchema.java Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20100507-hqm-p.tar
-- Regards, Max Carlson OpenLaszlo.org
