[I'm going to check this in so Maynard can verify.] On 2011-03-25, at 14:45, P T Withington wrote:
> 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
