Return-Path: X-Original-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 85ACBD848 for ; Wed, 5 Dec 2012 21:00:09 +0000 (UTC) Received: (qmail 47220 invoked by uid 500); 5 Dec 2012 21:00:08 -0000 Delivered-To: apmail-incubator-flex-dev-archive@incubator.apache.org Received: (qmail 47141 invoked by uid 500); 5 Dec 2012 21:00:08 -0000 Mailing-List: contact flex-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: flex-dev@incubator.apache.org Delivered-To: mailing list flex-dev@incubator.apache.org Received: (qmail 47133 invoked by uid 99); 5 Dec 2012 21:00:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Dec 2012 21:00:08 +0000 X-ASF-Spam-Status: No, hits=0.3 required=5.0 tests=FRT_ADOBE2,RCVD_IN_DNSWL_MED,SPF_PASS,SUBJ_ALL_CAPS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gosmith@adobe.com designates 64.18.1.35 as permitted sender) Received: from [64.18.1.35] (HELO exprod6og115.obsmtp.com) (64.18.1.35) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Dec 2012 21:00:01 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob115.postini.com ([64.18.5.12]) with SMTP ID DSNKUL+1u/sHDbvmYhq4fSl7JiL2APXiUymD@postini.com; Wed, 05 Dec 2012 12:59:40 PST Received: from inner-relay-1.corp.adobe.com (inner-relay-1.corp.adobe.com [153.32.1.51]) by outbound-smtp-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id qB5KxcuN028482 for ; Wed, 5 Dec 2012 12:59:38 -0800 (PST) Received: from nacas01.corp.adobe.com (nacas01.corp.adobe.com [10.8.189.99]) by inner-relay-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id qB5KxbAV009777 for ; Wed, 5 Dec 2012 12:59:37 -0800 (PST) Received: from nambx05.corp.adobe.com ([10.8.189.124]) by nacas01.corp.adobe.com ([10.8.189.99]) with mapi; Wed, 5 Dec 2012 12:59:37 -0800 From: Gordon Smith To: "flex-dev@incubator.apache.org" Date: Wed, 5 Dec 2012 12:59:35 -0800 Subject: RE: ABC -> JS Thread-Topic: ABC -> JS Thread-Index: Ac3TIIjw6JOrwxgnTpernzH9lC+HKwACsOGQ Message-ID: <149F8129B58B2D418508E63117D9C5419B5B4D0455@nambx05.corp.adobe.com> References: <20121204164934.693874gty27rggry@franklin.liquidweb.com> <149F8129B58B2D418508E63117D9C5419B5B4D0212@nambx05.corp.adobe.com> <20121204175313.705820uyb6zu0dll@franklin.liquidweb.com> <149F8129B58B2D418508E63117D9C5419B5B4D0269@nambx05.corp.adobe.com> <149F8129B58B2D418508E63117D9C5419B5B4D0406@nambx05.corp.adobe.com> <20121205144104.414542c9k3jpk9qo@franklin.liquidweb.com> In-Reply-To: <20121205144104.414542c9k3jpk9qo@franklin.liquidweb.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org I don't see the need for an interface that's sharable between ABC and JS. T= hey're apples and oranges. - Gordon -----Original Message----- From: Michael Schmalle [mailto:apache@teotigraphix.com]=20 Sent: Wednesday, December 05, 2012 11:41 AM To: flex-dev@incubator.apache.org Subject: RE: ABC -> JS YES! I knew it. Sorry for the expletives but, last night mulling over the code a= gain I came to this exact conclusion. I figured that he used the already existing model and thus had to use ABC s= pecific properties to actually be able to use that model. So as a side effect we create a model interface that could be used for more= than one implementation. I guess I will think about this some more. Mike Quoting Gordon Smith : > I didn't understand why JSEmitter uses lots of ABC classes. I got the=20 > answer from Bernd P. > > Falcon's BURM handles generating instructions-or-JS-code for method=20 > bodies, but it doesn't generating higher-level constructs like=20 > classes, fields, etc. Bernd needed some data structures that could=20 > hold information about these higher-level constructs, until he was=20 > ready to spit them out as JS code. Rather than roll his own, he just=20 > re-used the ABC classes which represent these constructs. My opinion=20 > is that this is reasonable and expedient, especially for a prototype,=20 > but confusing to newcomers. I'd recommend making new structures to=20 > represent the higher-level JS constructs. > > - Gordon > > -----Original Message----- > From: Gordon Smith [mailto:gosmith@adobe.com] > Sent: Tuesday, December 04, 2012 3:31 PM > To: flex-dev@incubator.apache.org > Subject: RE: ABC -> JS > > I'm trying to stay out of FalconJS, but I will ask Bernd P about this. > > - Gordon > > -----Original Message----- > From: Michael Schmalle [mailto:apache@teotigraphix.com] > Sent: Tuesday, December 04, 2012 2:53 PM > To: flex-dev@incubator.apache.org > Subject: RE: ABC -> JS > > The JSEmitter is littered with the whole; > > import org.apache.flex.abc.graph.IBasicBlock; > import org.apache.flex.abc.semantics.ClassInfo; > import org.apache.flex.abc.semantics.ExceptionInfo; > import org.apache.flex.abc.semantics.InstanceInfo; > import org.apache.flex.abc.semantics.Instruction; > import org.apache.flex.abc.semantics.Label; > import org.apache.flex.abc.semantics.Metadata; > import org.apache.flex.abc.semantics.MethodBodyInfo; > import org.apache.flex.abc.semantics.MethodInfo; > import org.apache.flex.abc.semantics.Name; > import org.apache.flex.abc.semantics.Namespace; > import org.apache.flex.abc.semantics.Nsset; > import org.apache.flex.abc.semantics.PooledValue; > import org.apache.flex.abc.semantics.ScriptInfo; > import org.apache.flex.abc.semantics.Trait; > import org.apache.flex.abc.semantics.Traits; > import org.apache.flex.abc.instructionlist.InstructionList; > > He used the IABCVisitor which is all ABC as well. > > Looking at this again, Alex put it well, it may be generating Strings=20 > but the WHOLE API of the class is abc.semantics. If you don't know abc=20 > semantics, there is nothing you can do other than learn it all. > > Mike > > > Quoting Gordon Smith : > >> Interesting. I don't understand why it is doing anything with Traits. >> Alex, you might want to ask Bernd P. >> >> - Gordon >> >> -----Original Message----- >> From: Michael Schmalle [mailto:apache@teotigraphix.com] >> Sent: Tuesday, December 04, 2012 1:50 PM >> To: flex-dev@incubator.apache.org >> Subject: Re: ABC -> JS >> >> Quoting Alex Harui : >> >>> >>> On 12/4/12 12:37 PM, "Gordon Smith" wrote: >>> >>>>> SO I will say to anybody, in the current state of the FalconJS=20 >>>>> compiler, you NEED to know opcdes to be able to fix anything. >>>> >>>> I don't know much about FalconJS but I would be very surprised if=20 >>>> this is true. Can you show me one method of FalconJS that actually=20 >>>> writes out an ABC opcode? >>> It isn't writing out ABC per-se, but the code in JSEmitter seems to=20 >>> require knowledge about the ABC block in the SWF. Its API is in=20 >>> terms of traits. I was surprised to see that when I first started=20 >>> poking at the code. >> >> Gordon, this is what I meant (what Alex said), sorry for getting=20 >> terminology mixed up here but the fact I am having trouble=20 >> understanding it is because of the ABC block stuff. I just don't know=20 >> enough to grasp the mechanics of the traversals. >> >> I just want to understand what is going on and it's the >> addInstruction() stuff etc that seems to require some knowledge of ABC. >> >> Mike >> >> >>> >>> -- >>> Alex Harui >>> Flex SDK Team >>> Adobe Systems, Inc. >>> http://blogs.adobe.com/aharui >>> >>> >> >> -- >> Michael Schmalle - Teoti Graphix, LLC http://www.teotigraphix.com=20 >> http://blog.teotigraphix.com >> >> > > -- > Michael Schmalle - Teoti Graphix, LLC > http://www.teotigraphix.com > http://blog.teotigraphix.com > > -- Michael Schmalle - Teoti Graphix, LLC http://www.teotigraphix.com http://blog.teotigraphix.com