Well, dynamic does make sense on a mixin (it is saying the class that mixes me 
in must be dynamic).  So I think the bug now lies in the swf9 back-end, where 
it should drop the dynamic declaration when it generates the interface from the 
mixin.

On 2009-12-05, at 13:48, Henry Minsky wrote:

> Oh I see it's complaining that 'dynamic' can't be applied to interface. I
> guess that makes sense...
> 
> 
> org.openlaszlo.sc.CompilerError: line unknown: Error: Interface attribute
> dynamic is invalid, in line: dynamic interface $lzc$class_boxmodel {
> 
> On Sat, Dec 5, 2009 at 11:24 AM, P T Withington <[email protected]> wrote:
> 
>> I don't see what is malformed about the interface declaration.  What is the
>> Flex compiler complaining about?  We know it handles mixins declared in JS
>> in the LFC.
>> 
>> On 2009-12-05, at 09:23, Henry Minsky wrote:
>> 
>>> OK, well, if I output just
>>> 
>>> "dynamic mixin foo { }" then the swf10 compiler feels like it has to make
>> an
>>> interface for it, and
>>> the code it puts out isn't
>>> really well formed, so it barfs.
>>> 
>>> e.g., if I have a declared mixin
>>> 
>>>  <mixin name="boxmodel">
>>>      <attribute name="margin" type="number" value="0"/>
>>> 
>>>      <setter name="margin" args="margin">
>>>          Debug.warn('set_margin', margin, this);
>>>      </setter>
>>>  </mixin>
>>> 
>>> that eventually turns into a ScriptClass which is
>>> 
>>> mixin $lzc$class_boxmodel
>>> and that gets converted by the swf10 backend into a .as file
>>> 
>>> package {
>>> dynamic interface $lzc$class_boxmodel {
>>> }
>>> }
>>> 
>>> So do we need to stop the swf10 generator from outputting anything at all
>>> for the mixin case?
>>> 
>>> 
>>> On Sat, Dec 5, 2009 at 5:51 AM, P T Withington <[email protected]> wrote:
>>> 
>>>> Right now we don't support mixins extending anything. See what happens
>> if
>>>> you suppress the 'extends' clause when you output a mixin?
>>>> 
>>>> On Dec 5, 2009, at 1:11, Henry Minsky <[email protected]> wrote:
>>>> 
>>>> I need some help in hacking the script compiler back end to understand
>>>> "mixin".
>>>> 
>>>> Currently we're passing the follwing values for 'kind' from ClassModel,
>>>> 
>>>> mixin
>>>> class
>>>> instance class
>>>> anonymous
>>>> 
>>>> If I just emit "class" for everything except "mixin", something in the
>>>> DHTML backend stil
>>>> chokes on "mixin":
>>>> 
>>>> "dynamic mixin $lzc$class_testmixin extends LzView "
>>>> 
>>>> compiles to something which causes a runtime error.
>>>> 
>>>>    [exec] js: "lps/includes/lfc/LFCdhtml-debug.js", line 298: uncaught
>>>> JavaScript runtime exception: TypeError: Cannot find function make in
>> object
>>>> 
>>>>    [exec] function () {
>>>>    [exec]     this.constructor = arguments.callee;
>>>>    [exec]     if (this.$lzsc$initialize !==
>>>> Instance.prototype.$lzsc$initialize) {
>>>>    [exec]         this.$lzsc$initialize.apply(this, arguments);
>>>>    [exec]     }
>>>>    [exec] }
>>>>    [exec] .
>>>>    [exec]     at lps/includes/lfc/LFCdhtml-debug.js:298
>>>>    [exec]     at test/lztest/lztest-mixins.js:153
>>>>    [exec]     at tmp/test_lztest_lztest-mixins.js:99
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Fri, Dec 4, 2009 at 6:03 PM, P T Withington < <[email protected]
>>> 
>>>> [email protected]> wrote:
>>>> 
>>>>> On 2009-12-04, at 17:47, Henry Minsky wrote:
>>>>> 
>>>>>> On Fri, Dec 4, 2009 at 5:41 PM, P T Withington <<
>> [email protected]>
>>>>> [email protected]>wrote:
>>>>>> 
>>>>>>> I don't see in ScriptClass that it is using `kind` in toString.  Is
>> the
>>>>>>> changeset up to date?
>>>>>>> 
>>>>>> 
>>>>>> So for the ScriptClass.toString method , should I only output a
>>>>> non-empty
>>>>>> string if it's a "class" kind  , or just pass
>>>>>> along any class/mixin/interface to the script compiler
>>>>> 
>>>>> Where toString has the literal "class" use the variable `kind` instead,
>>>>> and let the script compiler sort it out.
>>>>> 
>>>>> "dynamic class" + ...
>>>>> 
>>>>> =>
>>>>> 
>>>>> "dynamic " + kind + ...
>>>>> 
>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> It seems that you should not need to make a copy of the element
>>>>> children in
>>>>>>> ViewCompiler (nor in ClassCompiler), since you're not munging the DOM
>>>>> in
>>>>>>> ClassModel any more.
>>>>>>> 
>>>>>> 
>>>>>> oh yeah..
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> So, not quite approved yet...
>>>>>>> 
>>>>>>> On 2009-12-04, at 17:31, Henry Minsky wrote:
>>>>>>> 
>>>>>>>> 
>>>>>>>> really passes smokecheck now, in swf8,swf10, and dhtml
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Change 20091204-hqm-g by [email protected] on 2009-12-04 10:17:09
>>>>> EST
>>>>>>>> in /Users/hqm/openlaszlo/trunk6
>>>>>>>> for <http://svn.openlaszlo.org/openlaszlo/trunk>
>>>>> http://svn.openlaszlo.org/openlaszlo/trunk
>>>>>>>> 
>>>>>>>> Summary: fix for  instance-mixin fails for non-top-level instance
>>>>>>>> 
>>>>>>>> New Features:
>>>>>>>> 
>>>>>>>> Bugs Fixed: LPP-8654  instance-mixin fails for non-top-level
>> instance
>>>>>>>> 
>>>>>>>> Technical Reviewer: ptw
>>>>>>>> QA Reviewer: max
>>>>>>>> Doc Reviewer: (pending)
>>>>>>>> 
>>>>>>>> Documentation:
>>>>>>>> 
>>>>>>>> Release Notes:
>>>>>>>> 
>>>>>>>> Overview:
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Details:
>>>>>>>> 
>>>>>>>> + ViewCompiler: updateSchema recursively map over child elements
>>>>>>>> 
>>>>>>>> + ClassModel: remove code in ClassModel that inserted a classdef
>> into
>>>>> the
>>>>>>> DOM.
>>>>>>>> 
>>>>>>>> + ScriptClass: added a "kind" field
>>>>>>>> 
>>>>>>>> + updated lztest smoke check for mixins to have non-toplevel node
>> with
>>>>>>> mixin
>>>>>>>> 
>>>>>>>> Tests:
>>>>>>>> 
>>>>>>>> test case from bug
>>>>>>>> test/mixins.lzx
>>>>>>>> smokecheck
>>>>>>>> test/smoke/mixin-simple.lzx
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Files:
>>>>>>>> M       test/lztest/lztest-mixins.lzx
>>>>>>>> M       WEB-INF/lps/server/src/org/openlaszlo/sc/ScriptClass.java
>>>>>>>> M
>>>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/ViewCompiler.java
>>>>>>>> M
>> WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Changeset:
>>>>>>> <http://svn.openlaszlo.org/openlaszlo/patches/20091204-hqm-g.tar>
>>>>> http://svn.openlaszlo.org/openlaszlo/patches/20091204-hqm-g.tar
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Laszlo-reviews mailing list
>>>>>>>> <[email protected]>
>> [email protected]
>>>>>>>> <http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews>
>>>>> http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Henry Minsky
>>>>>> Software Architect
>>>>>> <[email protected]>[email protected]
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> Henry Minsky
>>>> Software Architect
>>>> <[email protected]>[email protected]
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Laszlo-reviews mailing list
>>>> [email protected]
>>>> http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> Henry Minsky
>>> Software Architect
>>> [email protected]
>> 
>> 
> 
> 
> -- 
> Henry Minsky
> Software Architect
> [email protected]


_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to