[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

Reply via email to