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 84D7AD6AC for ; Fri, 30 Nov 2012 10:28:00 +0000 (UTC) Received: (qmail 51128 invoked by uid 500); 30 Nov 2012 10:27:59 -0000 Delivered-To: apmail-incubator-flex-dev-archive@incubator.apache.org Received: (qmail 50931 invoked by uid 500); 30 Nov 2012 10:27:59 -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 50911 invoked by uid 99); 30 Nov 2012 10:27:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Nov 2012 10:27:59 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) Received: from [69.167.147.50] (HELO franklin.liquidweb.com) (69.167.147.50) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Nov 2012 10:27:53 +0000 Received: from localhost ([127.0.0.1]:55348) by franklin.liquidweb.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from ) id 1TeNog-0006ol-Pp for flex-dev@incubator.apache.org; Fri, 30 Nov 2012 05:27:30 -0500 Received: from 64.223.163.204 ([64.223.163.204]) by teotigraphix.com (Horde Framework) with HTTP; Fri, 30 Nov 2012 05:27:30 -0500 Message-ID: <20121130052730.14144dsl2lslbcpe@teotigraphix.com> Date: Fri, 30 Nov 2012 05:27:30 -0500 From: Michael Schmalle To: flex-dev@incubator.apache.org Subject: Re: [FlaconJS] pseudo emitter algorithm References: <20121129124202.18057ehcvp03wmsq@teotigraphix.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Internet Messaging Program (IMP) H3 (4.3.11) X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - franklin.liquidweb.com X-AntiAbuse: Original Domain - incubator.apache.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - teotigraphix.com X-Get-Message-Sender-Via: franklin.liquidweb.com: authenticated_id: teotigra/from_h X-Source: X-Source-Args: X-Source-Dir: X-Virus-Checked: Checked by ClamAV on apache.org Quoting Frank Wienberg : > On Thu, Nov 29, 2012 at 6:42 PM, Michael Schmalle > wrote: > >> For FalconJS this process is totally bound to SWF format. >> >> This was my point. For any developer to fix bugs here they have to know >> the SWF format. Which I don't. >> >> This is why I propsed another solution using pure AST like Jangaroo does. >> >> I am not skilled enough to understand the trade offs currently. But I am >> going to try and see if I can create the same JS code using a different >> algorithm. >> > > I guess the trade off is that the AST approach leads to a different > packaging format. For Jangaroo, we use JARs that contain the generated JS > code as well as generated AS "API stubs" (under META-INF/joo-api), that is > the AS code is reduced to its API, using the "native" keyword. This allows > to compile against other modules without having their source code. However, > the consequence is that you need a different classpath and custom build > tools: we created a Maven plugin that provides a custom packaging type > currently called "jangaroo" that outputs a JAR in the format described > above. > When the output format is SWC/SWF, you more closely resemble Flash/Flex. > But honestly, unless we transform ActionScript byte code into JavaScript > (or interpret it in JavaScript like in Gordon's approach), we cannot use > any "binary" modules, anyway, but instead all modules have to be recompiled > for use with FalconJS, or even worse you need the complete source code for > the whole project, which would increase build time and hinder real modular > development as well as closed source modules--quite a show stopper for an > Enterprise tool! > > -Frank- > Ok, I didn't even think about the recompile. So in my mind, please correct me if I'm wrong, the SWC/SWF probably was chosen because it IS the packaging and organization structure currently. Where you are using a jar as you said. Correct? Since you have so much experience with as->js, what is your opinion on implementation? I'm asking because I might be putting a lot of work into the compiler output and would like to know which direction. Do you see any way of interfacing jangaroo and falcon/falconjs? Do you think offering the straight AST emitter(which would allow granular compiles with native stubs) like yours AND the SWF/SWC option and somehow getting them on the same API is something to consider? As I said earlier, you have some great code, I would love to work together somehow to get a nice application framework our there like Flex ontop of JS and whatever other language we could get to, Android, iOS, whatever. Thanks for all your time Frank! Mike -- Michael Schmalle - Teoti Graphix, LLC http://www.teotigraphix.com http://blog.teotigraphix.com