Pretty much our libraries are fat. When I library-compile, I turn off the compile-time conditionals and emit both branches. When you link the library, those conditionals will get evaluated and only the correct branch will get compiled.
But <switch> is not written as compiling into a compile-time conditional, it is evaluated in the XML parser. I can't think of how to handle converting switch into javascript, since it conditionally includes XML, not javascript... An interesting topic for today's phone meeting! On 2009-11-19, at 09:16, Henry Minsky wrote: > Hey didn't the Mac have "fat binaries" that had both PowerPC and Intel code, > or 68K and powerpc code , or something? Maybe we need "fat libraries" with > all runtimes parse trees? > > (seems like a not so good idea, but can't think of anything else at the > moment) > > On Thu, Nov 19, 2009 at 9:08 AM, P T Withington <[email protected]> wrote: > >> [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 know 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 >> > > > > -- > Henry Minsky > Software Architect > [email protected] _______________________________________________ Laszlo-reviews mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
