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

