I can help debug swf9 tests, if you need.  Just ping me if you would
like me to look at something that's failing.




On Thu, Jul 17, 2008 at 9:39 AM, Donald Anderson <[EMAIL PROTECTED]> wrote:
>
> On Jul 17, 2008, at 9:10 AM, P T Withington wrote:
>
> Questions:
>
> 1) Do you need to copy default values for parameters, or is that not stored
> on the parameter the way type and ellipsis is?
>
> I think it already happens.   Parameter names are ASTIdentifiers and
> initializers are anything else (maybe ASTLiteral,
> or an expression tree).  This loop changes the ASTIdentifiers and preserves
> the rest:
>     // Replace params
>     for (int i = 0, len = paramIds.length; i < len; i++) {
>       if (paramIds[i] instanceof ASTIdentifier) {
>         ASTIdentifier oldParam = (ASTIdentifier)paramIds[i];
>         SimpleNode newParam = translateReference(oldParam).declare();
>         params.set(i, newParam);
>       }
>     }
> But I'll find a way to test this.
>
> 2) The tag compiler will emit #pragma withThis in both functions and
> methods.  The either the swf9 back-end should turn that into a no-op in a
> method (as it is redundant), or we can change the tag compiler to _not_ emit
> that in methods, but then the swf8 and dhtml back-ends will have to
> automatically insert it for methods.  I believe this will simply be an
> efficiency not a correctness issue.  If you want to defer, please file a
> separate bug.  The only way I know to test this would be to inspect the
> generated code.
>
> Should be easy enough.  We are already tracking when we are in a declared
> class and also when we are in a declared method.
> Is that enough?  Do any closures (which might have #pragma withThis) occur
> within a Class.Method body?
>
> 3) I'd like to make sure at least _one_ of the known working swf9 tests
> works after this change.  If hello is the test, we need to get that working
> again first.
>
> Agreed.  Max got lzpix working, and it does not yet work with this
> changeset, so I have some work to do to debug that.
>
>
> Otherwise, approved.
>
> Thanks, I'll incorporate these and if the changes after debugging are
> non-trivial, I will have you review again.
>
>
> On 2008-07-16, at 23:10EDT, Donald Anderson wrote:
>
> Change 20080716-dda-V by [EMAIL PROTECTED] on 2008-07-16
> 21:26:41 EDT
>
>   in /Users/dda/laszlo/src/svn/openlaszlo/trunk-a
>
>   for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: Fix remapLocals and withThis in SWF9
>
> New Features:
>
> Bugs Fixed: LPP-6637
>
> Technical Reviewer: ptw (pending)
>
> QA Reviewer: (pending)
>
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Details:
>
>   The SWF9 code generator has had a long standing bug that prevented
>
>   the withThis pragma from working.  This change set fixes the fundamental
> bug and
>
>   other smaller problems in order to allow withThis to function properly.
>
>   withThis is necessary for the new approach to handling states.
>
>   The code that disables the withThis from being operation has been removed.
>
>   The bug was an extra visit of the function - the second visit sees some
>
>   artifacts left by the first visit, and gets confused.  This has been
> fixed.
>
>   Mixins in SWF9 are handled by keeping the AST for the mixin and visiting
>
>   it whenever it is mixed in.  The visited AST was not a complete copy,
>
>   only a shallow copy, and this exposed the same sort of extra visit bug.
>
>   A deep copy function for SimpleNode (the basis for AST) was added.
>
>   This required minor changes to all existing handcoded AST classes to
>
>   support deep copy.  Fortunately there are not many of these classes,
>
>   but if we add any, we'll need to implement the deepCopy() function.
>
>   Remapped formal arguments, (e.g. function foo(a, b) => function foo($1,
> $2)),
>
>   must retain any ellipsis from the original declaration (e.g. function
> foo(a, ...b) => function foo($1, ...$2))
>
>   I am also retaining type info, (e.g. function foo(a:*, b) => function
> foo($1:*, $2))
>
> Tests:
>
>  Passes test case given by ptw in LPP-6637.
>
>  Builds LFC without errors with withThis code enabled.
>
>  Regression tests: smokecheck for swf8/dhtml.
>
>  Unfortunately SWF9 hello seems broken (not due to this change),
>
>  so unable to test that.
>
> Files:
>
> M      WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
>
> M      WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9Generator.java
>
> M      WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java
>
> M      WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/SimpleNode.java
>
> M
>      
> WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTModifiedDefinition.java
>
> M      WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTOperator.java
>
> M      WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTLiteral.java
>
> M
>      
> WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTFormalParameterList.java
>
> M      WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTIdentifier.java
>
> M
>      
> WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/ASTPassthroughDirective.java
>
> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20080716-dda-V.tar
>
>
>
> --
>
> Don Anderson
>
> Java/C/C++, Berkeley DB, systems consultant
>
> voice: 617-547-7881
>
> email: [EMAIL PROTECTED]
>
> www: http://www.ddanderson.com
>
>
>
>
>
>
> --
> Don Anderson
> Java/C/C++, Berkeley DB, systems consultant
>
> voice: 617-547-7881
> email: [EMAIL PROTECTED]
> www: http://www.ddanderson.com
>
>
>
>



-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to