But in this case is there any need to emit this interface declaration at all, since we don't emit any code that for our interstitial classes that actually say 'implements' for the mixins it uses? Or maybe we should be doing that?
On Sat, Dec 5, 2009 at 2:03 PM, P T Withington <[email protected]> wrote: > 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] > > -- Henry Minsky Software Architect [email protected]
_______________________________________________ Laszlo-reviews mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews
