Why did the previous AVM2 attempts fail?

On Thu, Sep 2, 2010 at 4:29 AM, Rob Savoye <[email protected]> wrote:

>  So I've spent a little time looking at AVM2 VMs that are also open
> source. It seems that what we want to do is pass off any swf bytecodes
> Gnash sees to another VM, and get back something like a display list. As
> others have looked into this in much more depth than I have, I can't
> barely wait to be corrected. :-)
>
>  But I do believe we want to use our own renderers, and to also support
> the usual mixed model of flash were a swf file can load and execute
> other swf files of differing versions. What follows is not an exhaustive
> list, but just something to get the discussions going based on limited
> research. One thing to note is both ActionScript and JavaScript are
> based on the same ECMA standard, so a VM can supposedly be used for
> either. The biggest difference of course is that JavaScript is headless,
> and does no graphics, and flash of course, does graphics.
>
> Lightspark
> ----------
>  Lightspark is a GPL'd AVM2 VM with YouTube support. The problem being
> is seems primarily geared towards being a YouTube player, and not much
> else. It's plugin fires up Gnash if it sees older swf files, but I don't
> believe it supports the mixed swf execution thing that is heavily used
> by flash when you try to do anything that isn't YouTube. It also
> supports OpenGL only, which would be a problem. There is also no API to
> use LightSpark as an external VM. To me it seems that to use LightSpark
> would require forking it and becoming LightSpark++ developers, which I
> have no interest in myself.
>
> Tamarin
> -------
>  Tamarin is AVM2 used in Adobe flash, and then later open sourced and
> donated to Mozilla for use as a faster JavaScript engine. This later
> became the ActionMonkey project. Currently Tamarin isn't used at all by
> Mozilla or Firefox, as it turns out to have both performance and
> functionality problems. Although Adobe uses this, I'm not entirely sure
> that's a good enough reason by itself.
>
> ActionMonkey
>  ActionMonkey is the merger of Tamarin and JavaScript, but was later
> canceled by Mozilla. The big issues as listed on this page:
> https://wiki.mozilla.org/JavaScript:ActionMonkey are that it's not
> thread-safe, and it uses disk files.
>
> V8
> --
>  V8 is the JavaScript engine in Chromium, and appears to be the
> fastest. While this is currently JavaScript oriented, it should be
> possible to use it for ActionScript. It has an "as is" license.
> http://code.google.com/apis/v8/intro.html
>
> SpiderMonkey
> ------------
>  SpiderMonkey is the current JavaScript VM in Firefox, and has the
> advantage of still being actively maintained. One interesting thing is
> Adobe uses SpiderMonkey as it's server side ActionScript VM for their
> Adobe Media Server. http://www.mozilla.org/js/spidermonkey/
>
> JagerMonkey
> ------------
>  This is a brand new evolved version of SpiderMonkey, and not ready for
> prime time, but is interesting. It's enhancements may be more suitable
> for a web browser than a flash player though.
> http://en.wikipedia.org/wiki/J%C3%A4gerMonkey
>
>  There is a nice list on Wikipedia of other choices,but I don't believe
> any of the others are open source:
> http://en.wikipedia.org/wiki/List_of_ECMAScript_engines
>
>  I guess the only other choice would be to use the AVM2 specs, now that
> they are available, and write our own based on that. Considering I tried
> funding two attempts at that which both failed and have had their code
> removed, make me not really sure that's a good option.
>
>  As I'd like to see Gnash gain AVM2 compatibility, I wanted to research
> and discuss this and make an implementation plan, or just give up if
> there are no sensible solutions. Course not having AVM2 support would
> likely lead to the death of Gnash as a viable project, which is
> something I'd prefer to avoid.
>
>        - rob -
>
> _______________________________________________
> Gnash-dev mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/gnash-dev
>
_______________________________________________
Gnash-dev mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/gnash-dev

Reply via email to