Change ptw-20110325-KrX by [email protected] on 2011-03-25 13:48:22 EDT
    in /Users/ptw/OpenLaszlo/trunk-devo
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Ensure interstitials required by an .lzo class are written to the .lzo

Bugs Fixed: LPP-9850 Compile order dependency for lzo that includes an 
(uncompiled) lzo that includes an lzo (whew!)

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

Overview:

    The compiler tries to share interstitials, but when you are
    library-compiling, the compiler cannot tell whether an
    interstitial that implements an external mixin will or will not be
    instantiated by other libraries, so it has to be conservative and
    make a copy of the interstitial in every library that needs
    it.

    A future improvement would be to have each library create only a
    descriptor for each intersitial it requires and resolve duplicate
    interstitials at link time.

Details:

    lztest/*:  Add a new test: a library that uses mixins locally, a
    second library that uses the first, but lzo-compile the second
    library first (the failing case from the bug report).

    compiler/*:  In passing, replaced many redundant calls to look for
    the linking flag with a boolean flag on the compilation
    environment.

    ClassModel:  If a class is not modelOnly and has interstitials,
    ensure that the interstitials are not modelOnly (will be emitted
    with the class).

    prepare-lzo-test:  Add the new test that lzo-compiles the test
    libraries out of order (the failing case from the bug report).

Tests:
    smokecheck, ant lztest

Files:
M       test/lztest/lzodir2/lzo-lib.lzx.proto
M       test/lztest/lztest-lzo-main.lzx
A       test/lztest/lzodir3
A       test/lztest/lzodir3/lzo-double-lib.lzx.proto
A       test/lztest/lzodir/lzo-lib-shared-interstitials-def.lzx.proto
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/LibraryCompiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/DHTMLWriter.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ToplevelCompiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/FileResolver.java
M       
WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
M       WEB-INF/lps/server/src/org/openlaszlo/compiler/Parser.java
M       build-tools/prepare-lzo-test.sh

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20110325-KrX.tar

Reply via email to