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