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
