I was just talking to Tucker about this. I asked, "is there an official JavaScript definition of 'interface', and if so are we implementing it or are we extending it?
Tucker's answer was, if I recall correctly, "I don't know, and we're 'embracing and extending'." Any comment? I'm trying to understand how much of this whole subject is standard ECMAscritpt, for which I can rely on external sources, and how much is new to LZX that I'll have to explain entirely. jrs On Sep 14, 2006, at 1:06 PM, Jim Grandy wrote: > I guess I like moving to 'interface' as a tag, while we have the > chance. Having to explain 'traits' in tag world but 'interfaces with > implementation' in the script world feels overly-complex to me. > > I do like the idea of using the implements clause instead of extends- > becomes-a-list. > > jim > > On Sep 14, 2006, at 9:10 AM, P T Withington wrote: > >> I am ambivalent as to whether we should use our preferred tag and >> say that it translates to as JS1+ `interface`, or we should use >> interface as our tag name too. >> >> I was about to say we should convey to ECMA the idea of letting >> extends be a list, but perhaps since we hijacked interface we >> should just list the trait/interfaces in the implements clause >> (which is not yet implemented in our parser LPP-2686). I guess our >> proposal boils down to letting you put common implementation into >> the interface. You could permit partial implementations and the >> compiler could complain if there are functions declared in the >> interface that are not defined in either the interface or the class. >> >> On 2006-09-14, at 11:56 EDT, Jim Grandy wrote: >> >>> Great! I was going to propose that you do exactly this. >>> >>> Should we change our LZX tag name to suit? >>> >>> Any details that we should communicate back to ECMA in case they >>> decide to implement interfaces with implementation? >>> >>> jim >>> >>> On Sep 14, 2006, at 4:11 AM, P T Withington wrote: >>> >>>> Change change.GBQ162YZu.txt by [EMAIL PROTECTED] /Users/ptw/ >>>> pending-changes/ on 2006-09-14 06:47:35 EDT >>>> >>>> Summary: Implement LZS 'traits syntax', directive blocks in class >>>> declarations >>>> >>>> New Features: >>>> The LZS compiler now supports `interface` declarations, with the >>>> extension that you are allowed to include implementation in an >>>> interface. This is how you define a `trait` in lzs. >>>> >>>> Bugs Fixed: >>>> LPP-2396 lzs syntax for trait declarations >>>> LPP-2399 Allow directive blocks in class declarations >>>> >>>> Technical Reviewer: promanik (pending) >>>> QA Reviewer: henry (pending) >>>> Doc Reviewer: jsundman (pending) >>>> >>>> Documentation: >>>> >>>> .lzs source (LaszloScript, our variant of ECMAScript 1+) now >>>> supports >>>> class and interface declarations, as proposed by ECMAScript 2. We >>>> permit implementation in interfaces, as has been proposed to the >>>> ECMA >>>> committee. Finally, the class `extends` clause can be a list, >>>> consisting of a superclass and any number of interfaces, whose >>>> implementation will be 'mixed in'. >>>> >>>> Details: >>>> LzNode: moved `if ($debug)` back to their original position, >>>> inside the class declaration. >>>> >>>> LzDataElement: re-wrote LzDataElementTrait as an `interface` >>>> declaration. >>>> >>>> Parser.jjt: support for `interface` declarations, directives in >>>> class and interface declarations. >>>> >>>> JavascriptGenerator, CodeGenerator: Move class clause >>>> processing >>>> out to a subroutine that can recurse when encountering a >>>> directive >>>> block, conditional block or pragma. Make generic for class or >>>> interface. >>>> >>>> Tests: >>>> Changed two LFC files to use interface declarations and >>>> directive >>>> blocks in class declarations. Inspected the output of the dhtml >>>> compiler for accuracy. >>>> >>>> ant make, ant test, and LZPIX all functional. >>>> >>>> Files: >>>> M lfc/core/LzNode.lzs >>>> M lfc/data/LzDataElement.lzs >>>> M server/sc/src/org/openlaszlo/sc/Parser.jjt >>>> M server/src/org/openlaszlo/sc/Compiler.java >>>> M server/src/org/openlaszlo/sc/JavascriptGenerator.java >>>> M server/src/org/openlaszlo/sc/CodeGenerator.java >>>> >>>> <patch.ptw.V9Py.tgz> >>>> >>>> _______________________________________________ >>>> Laszlo-dev mailing list >>>> [email protected] >>>> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev >>> >>> >>> _______________________________________________ >>> Laszlo-dev mailing list >>> [email protected] >>> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev >> > > > _______________________________________________ > Laszlo-dev mailing list > [email protected] > http://www.openlaszlo.org/mailman/listinfo/laszlo-dev _______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
