Change 20100708-ptw-9 by [email protected] on 2010-07-08 20:39:17 EDT
    in /Users/ptw/OpenLaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Process autoincludes on un-transformed source

Bugs Fixed:  LPP-8738 autoincludes broken by mixi implementation

Technical Reviewer: [email protected] (pending)
QA Reviewer: [email protected] (pending)

Overview:

    We call getLibraries 3 (!) times in compiling a file.  We should
    only need to call it once, since the set of libraries is
    determined by the source LZX.  The LZX mixin implementation
    actually transforms the DOM to create the expected semantics,
    which resulted in the auto-include mechanism finding different
    references (and losing the source references) because it was
    invoked on the transformed source.  This change caches the
    libraries found by the `updateRootSchema` call and reuses them for
    the `handleAutoincludes` call.

    I did not address the 3rd call `computePropertiesAndGlobals` in
    this change to reduce the risks.  We may want to try this in a
    separate change as an improvement to the compiler.

Details:

    ClassCompiler:  Remove unused local, noticed in passing.

    TopLevelCompiler:  Always compute the autoincludes, there is no
    need for the conditional; this lets us get the correct list of
    libraries and cache them for use in `handleAutoincludes`.

    CompilationEnvironment:  Add slots for caching the libraries and
    explanations.

    Compiler:  Cache the libraries and explanations discovered by
    `updateRootSchema`.

Tests:
    lztest, smoke, css and mixin tests, selection of demos

Files:
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
M       
WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20100708-ptw-9.tar

Reply via email to