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

Reply via email to