[UPDATE: This fixes the problem Max discovered last night with an explicit include of plainfloatinglist causing that autoinclude to be emitted into the binary library when it should have been considered external to the library.
But we have a major roadblock in LPP-8623: The library compile needs to process external libraries to build the schema so it can parse the library, but in some cases we use the <switch> tag to conditionally include definitions. The <switch> tag is presently evaluated at XML-parse time. Max and I found several switch cases last night that could be rewritten in Javascript, but I'm thinking we need to brainstorm on a real solution. There are many uses of <switch> in our libraries that do _not_ require the parse-time evaluation. Basically, this is an eval-when problem. class definitions are like Lisp macros and need to be eval-ed at compile time, but most anything else can be deferred. We need to brainstorm on this. With this update, library compiling now blows up when it is trying to update the schema for drawview (and external library that it will not compile) and it runs into a switch statement. You might think it could ignore that one (it can) but it has no way to k! now that -- it could be there are more includes hidden in the switch, for instance...] Change 20091118-ptw-8 by [email protected] on 2009-11-18 16:53:36 EST in /Users/ptw/OpenLaszlo/trunk-2 for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Binary compiler tweaks Bugs Fixed: LPP-8624 <script>when ($runtimeflag) {...}</script> crashes library compiler LPP-8603 forward reference from instance-class in .lzo file gives error in swf8 and dhtml runtimes LPP-8623 Library compiler should complain about <when/> tags Technical Reviewer: max, hminsky (pending) QA Reviewer: fellenberger, mdemmon (pending) Details: LzNode: Learn how to print nodes that are instances of anonymous classes. ClassModel: Give anonymous classes a useful tagname for debugging. Remove erroneous test that prevented forward references to classes in binary libraries. Only output tagname for debugging. Parser: For now, <switch> is not permitted in a binary library. ToplevelCompiler: Permit binary compiling an autoinclude. CodeGenerator, JavascriptGenerator: Match modularization of GenericVisitor, permit compile-time conditionals in user code. Compiler, Transformer: Work in progress, just check-pointing. GenericVisitor: Add missing visitor, fix a few brain-ohs. Tests: Test cases from bug reports. smokecheck. QA Reviewers will verify webtop SDK works. Files: M WEB-INF/lps/lfc/core/LzNode.lzs M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java A WEB-INF/lps/server/src/org/openlaszlo/sc/Transformer.java M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java M WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java M WEB-INF/lps/server/src/org/openlaszlo/sc/GenericVisitor.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java M WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20091118-ptw-8.tar _______________________________________________ Laszlo-reviews mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
