On Thu, May 28, 2015 at 11:00 AM, Josh Tynjala <joshtynj...@gmail.com> wrote:
> Well, the original plan of matching TypeScript's output is fine with me. I > didn't mean to confuse you by throwing something extra in there. I haven't > looked as closely at Babel, but I heard good things. I figured knowledge of > Babel would be good to have around to sanity check things in case > TypeScript's output had unexpected issues. > Yeah one of them that I wouldn't have caught early on would be accessors support. Well for now, I will match TypeScripts output and we can use Bable's way of calling super on accessors. I will just make sure to leave it swappable, or try to, sometimes with AST walking things get spider webed quick, which I am going to try and avoid by using more composition. If this intrigues you enough to start writing a framework, :) we can nail the details later. Did you see ALex's question to you about goog dependencies and if you had a problem with that? Mike > > - Josh > On May 28, 2015 7:47 AM, "Michael Schmalle" <teotigraphix...@gmail.com> > wrote: > > > Well see Josh, I am good at writing cross compilers but have spent hardly > > any time understanding all the nuances of javascript. > > > > Each time I have written this thing, I have had a spec given to me by > > others that I made work. So I am kind of looking for that spec here so I > > have something concrete to generate. I don't have enough experience to > know > > what it should be for the needs of a proper javascript impl and > > actionscript cross compile. > > > > Mike > > > > On Thu, May 28, 2015 at 10:34 AM, Josh Tynjala <joshtynj...@gmail.com> > > wrote: > > > > > Yeah, the ES5 output. While I think the output looks good from > > TypeScript, > > > I figured it wouldn't hurt to point out an alternative. I'm sure it's > > > pretty similar, but when it comes to the little details, you might see > > > something there that you like better. > > > > > > - Josh > > > On May 27, 2015 4:01 PM, "Michael Schmalle" <teotigraphix...@gmail.com > > > > > wrote: > > > > > > > So basically your saying the output of ES5 from Babel? > > > > > > > > Mike > > > > > > > > On Wed, May 27, 2015 at 6:47 PM, Josh Tynjala <joshtynj...@gmail.com > > > > > > wrote: > > > > > > > > > You might also consider looking at the output of Babel. Babel > > > transpiles > > > > > ECMAScript 6 back to older versions of the language that are more > > > widely > > > > > supported today. TypeScript is trying to be a superset of ES6, so > it > > > > should > > > > > be pretty similar. > > > > > > > > > > http://babeljs.io > > > > > > > > > > - Josh > > > > > > > > > > On Wed, May 27, 2015 at 2:23 PM, Michael Schmalle < > > > > > teotigraphix...@gmail.com > > > > > > wrote: > > > > > > > > > > > Ok Update. > > > > > > > > > > > > I have been researching TypeScript and it's output, this is what > I > > am > > > > > > doing. For some reason this "just" makes sense to me and the are > > > 100's > > > > of > > > > > > examples I can use to test the code generation against. > > > > > > > > > > > > Josh, I would say if you want to start experimenting with your > > > > framework, > > > > > > use what you just showed me as a base and I can meet you in the > > > middle, > > > > > > then we can figure our the quirks together. > > > > > > > > > > > > I will/am start/ing working on this ASAP. > > > > > > > > > > > > Mike > > > > > > > > > > > > On Wed, May 27, 2015 at 4:54 PM, Michael Schmalle < > > > > > > teotigraphix...@gmail.com > > > > > > > wrote: > > > > > > > > > > > > > Ok, > > > > > > > > > > > > > > I am a doer... :) Since this is all POC right now and I am up > to > > > > learn > > > > > > > some JS, I will use this as a format. I have done this > JSEmitter > > 2 > > > > > times > > > > > > > now so the 3rd isn't going to be that hard, maybe the charm for > > me > > > > to. > > > > > > > > > > > > > > Note, most of the expressions and statements are already done. > As > > > > > noted, > > > > > > > inheritance, scope and set/get always are the pains but if I > > have a > > > > > > target > > > > > > > output protocol like TypeScript's output, why not emulate it. > > > > > > > > > > > > > > Alex, I know what you are thinking... Don't. :) My gut feeling > > is, > > > > if I > > > > > > > start from the ground up and have NO dependencies on anything, > I > > > will > > > > > do > > > > > > > this twice as fast. I am very good at refactoring so once I > have > > > > tests > > > > > > > working on the generated .js, we can see what could be > abstracted > > > to > > > > > and > > > > > > > from this emitter and FlexJS. > > > > > > > > > > > > > > I really think for my own sanity, I need to start in isolation > > and > > > > not > > > > > > get > > > > > > > in FlexJS's way either, that is another pro for me, no commit > > > > > conflicts, > > > > > > > nothing of that nature. > > > > > > > > > > > > > > Thoughts Josh, Alex? > > > > > > > > > > > > > > Mike > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, May 27, 2015 at 4:40 PM, Josh Tynjala < > > > joshtynj...@gmail.com > > > > > > > > > > > > wrote: > > > > > > > > > > > > > >> When I played with TypeScript, I loved that I could subclass > > > > CreateJS > > > > > > >> prototypes very easily. As long as something like that is > > possible > > > > > from > > > > > > >> ActionScript (assuming I could provide a SWC or something for > > > > CreateJS > > > > > > or > > > > > > >> whichever library I want to use), I don't have too strong of > an > > > > > opinion > > > > > > on > > > > > > >> how the final JavaScript looks. > > > > > > >> > > > > > > >> I'll just say that I like the clean code that the TypeScript > > > > compiler > > > > > > >> outputs. To me, it looked pretty much like what I might write > > > > > manually, > > > > > > if > > > > > > >> I were using vanilla JavaScript. Looking at the TypeScript > > > > playground, > > > > > > the > > > > > > >> Inheritance example and the Modules example both look very > nice. > > > > > > >> > > > > > > >> http://www.typescriptlang.org/Playground > > > > > > >> > > > > > > >> - Josh > > > > > > >> > > > > > > >> On Wed, May 27, 2015 at 12:02 PM, Michael Schmalle < > > > > > > >> teotigraphix...@gmail.com> wrote: > > > > > > >> > > > > > > >> > On Wed, May 27, 2015 at 2:50 PM, Alex Harui < > aha...@adobe.com > > > > > > > > wrote: > > > > > > >> > > > > > > > >> > > New thread: > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > On 5/27/15, 9:52 AM, "Michael Schmalle" < > > > > > teotigraphix...@gmail.com> > > > > > > >> > wrote: > > > > > > >> > > > > > > > > >> > > >Well, when I said "teach" I just meant getting into the > > code. > > > > > > >> Really, I > > > > > > >> > > >know the base part of the compiler and the walker/visitor > > > > > framework > > > > > > >> well > > > > > > >> > > >;-), so getting FalconJX to use an HTML.swc would be > > exactly > > > > > what I > > > > > > >> am > > > > > > >> > > >looking for to do. > > > > > > >> > > > > > > > > > >> > > >This is where you can keep doing what you are good at > and I > > > can > > > > > > work > > > > > > >> on > > > > > > >> > > >what I am good at(code rendering). > > > > > > >> > > > > > > > > > >> > > >Can I ask you to start another thread and outline what > you > > > see > > > > > > needs > > > > > > >> to > > > > > > >> > be > > > > > > >> > > >done to accomplish what is in your mind dealing with > > FalconJX > > > > and > > > > > > the > > > > > > >> > > >HTML.swc? If you can just brainstorm, then I can ask you > > > > > questions > > > > > > to > > > > > > >> > fill > > > > > > >> > > >in the gaps that I am not seeing. > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > As I see it, FalconJX should just be able to grab some > SWCs > > > and > > > > > > >> > > cross-compile some AS based on definitions in the SWCs. > > Right > > > > now > > > > > > we > > > > > > >> > feed > > > > > > >> > > it playerglobal/airglobal and FlexJS swcs with UIBase > > widgets, > > > > but > > > > > > in > > > > > > >> > > theory, as Josh suggests we should be able to replace > those > > > SWCs > > > > > > with > > > > > > >> > just: > > > > > > >> > > > > > > > > >> > > jsglobal.swc: > > > > > > >> > > Object > > > > > > >> > > Number > > > > > > >> > > String > > > > > > >> > > <what else>? > > > > > > >> > > > > > > > > >> > > HTML.swc: > > > > > > >> > > Window > > > > > > >> > > Event > > > > > > >> > > UIEvent > > > > > > >> > > MouseEvent > > > > > > >> > > HTMLElement > > > > > > >> > > etc. > > > > > > >> > > > > > > > > >> > > > > > > > > >> > See for HTML lib, Roland used WebIDL parser to create it; > > > > > > >> > > > > > > > >> > > > > > > > > > > https://github.com/RandoriAS/randori-libraries/tree/master/HTMLCoreLib > > > > > > >> > > > > > > > >> > The builtin.swc we made; > > > > > > >> > > > > > > > >> > > > > > > > > > > https://github.com/RandoriAS/randori-tools/tree/develop/RandoriBuiltin > > > > > > >> > > > > > > > >> > Read the README, does this violate anything? > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > Then folks should be able to test drive FalconJX by > running > > > some > > > > > AS > > > > > > >> > > through it to get any JS they normally use in their web > > apps, > > > > and > > > > > we > > > > > > >> > > should be able to stop writing any JS at all. All files > in > > > > > > flex-asjs > > > > > > >> > that > > > > > > >> > > are currently .JS files should be able to be written in AS > > and > > > > > > >> > > cross-compiled with only those two SWCs. I can tell you > > that > > > it > > > > > > would > > > > > > >> > > probably have saved us much time if we had this already. > It > > > is > > > > > > >> painful > > > > > > >> > > doing .JS code simply in the writing of ‘this.’ and > > > ‘prototype’. > > > > > > >> > > > > > > > > >> > > > > > > > >> > Yeah, not to mention compile time checking. :) > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > Anyway, that’s as far as I’ve thought on this subject. As > > you > > > > > said > > > > > > in > > > > > > >> > > another thread this is where we’d have to prove there are > no > > > > > > >> hard-coded > > > > > > >> > > dependencies in Falcon/FalconJX on playerglobal/airglobal. > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > See the above links and give feedback on what you think. > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > OK, one more thought: there may be reverse-engineering > > issues > > > > > about > > > > > > >> > > replacing playerglobal/airglobal, but I was hoping we > might > > > find > > > > > > some > > > > > > >> > > Tamarin code laying around that has what we’d start with > for > > > > > > >> > jsglobal.swc. > > > > > > >> > > > > > > > > >> > > > > > > > >> > I think this is what Roland actually did, I know he found it > > > some > > > > > > >> where(how > > > > > > >> > to build the builtin.swc Randori used). > > > > > > >> > > > > > > > >> > > > > > > > >> > Question; So the code style, you said we might use the > FlexJS > > > > > emitter > > > > > > >> but I > > > > > > >> > don't see how that is possible since it's not a vanilla > > emitter. > > > > > > >> > > > > > > > >> > It seems to me I need to know the exact code style that a > > > vanilla > > > > > > >> > transpiler will create and I can make that emitter as > another > > > > > backend, > > > > > > >> what > > > > > > >> > do you think? > > > > > > >> > > > > > > > >> > @Josj you have any thoughts? I am ready to start writing it. > > :) > > > > > > >> > > > > > > > >> > Mike > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > -Alex > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >