DIGG IT!
Published
Tuesday, December 18, 2007
at
12:24 PM
.
Today, Adobe has checked in a new virtual machine called
QVM "tamarin-tracing" into the
Mozilla Tamarin project.
QVM "tamarin-tracing" is a VM for constrained environments (read mobile and devices) so that just about anything with a CPU and memory can execute ActionScript 3 Bytecode under low memory and low CPU conditions.



Parts of
QVM "tamarin-tracing" are written in the
Forth programming language because you are create really efficient VMs in 50K of memory runable on just about any device available today. QVM makes AS3 bytecode execute on a majority of devices that consumers already own and is a key part of the future Flash Player and AIR strategies. The open sourcing of QVM will accelerate our device strategy and allow EcmaScript to scale up and down independent of system resources.
"As mobile and other non-pc ecosystems continue to evolve, we anticipate more applications will be developed using web technologies, and we believe that delivering a high performing, standard implementation of the ECMAScript language is critical to this evolution. The contribution of our early work on adapting our virtual machine to mobile devices supports this belief and we anticipate that this work will be deployed in Flash, over time, on both PC and non-PC devices. With this submission, we are also seeking the active participation of the best minds in the industry to ensure that Tamarin remains the leading VM for web applications high performing, mobile-ready, and standards compliant regardless of target platform." - Gary Kovacs
What I find really cool is that this VM allows us to use full power of AS3 to deliver mobile applications. We no longer have to use legacy AS1/AS2 to create logic on devices and it exposes the entire Flex development model to a much larger mobile marketplace.
More to come!
Ted :)
This is MOST EXCELLENT! We've been waiting a long time for this to come. Do you know if there are any limitations as to what AS3 code can run on this (surely some AS3 classes must not be supported due to device limitations and such)? For example, bitmapdata class wasn't even supported in flash lite 3. What devices/platforms can QVM currently run on?
The subject of VMs is generally over my head so hopefully this isn't a completely dense question, but does this mean that AVM2 will essentially be replaced by/upgraded to QVM in FP10? Err, I suppose AVM sits on top of the core VM, so will be QVM become the core of AVM2? Or maybe that would make it AVM3... sorry for rambling.
Is this as huge as it sounds? Cuz if this essentially means you could run a Flex app on a mobile device today with a bit o' hacking, that strikes me as pretty huge.
Tell me you're joking! You must be kidding!!! Is this good news show ever going te stop? It's nearly christmas - give Microsoft a break :)
Woah! AS3 on the mobile is big, but did you just say Flex as well? I remember hearing the words "Mobile MXML" at the last Adobe live event, is this going to be a reality?
amazing news.
as lordy said - 'this is big'
aint you just gotta love Adobe.
I can't seem to find anything in the Mercurial repository for Tamarin regarding QVM. Could you provide a direct reference?
My understanding is that Tamarin is essentially Adobe's AVM2, and provides the additional phase of converting the compiled AS3 bytecode into native machine instructions (JIT compilation). This phase is obviously useful for Javascript VMs (such as Mozilla's SpiderMonkey), and so parts of Tamarin will be ported into SpiderMonkey where they are seen as beneficial.
But I'm still confused as to where "QVM" fits in. Tamarin (AFAIK) supports dynamic compilation to x86, PPC & ARM architectures...does QVM expand that support? Does it improve the JIT compiler? Or is it a completely separate VM based on the same principles as AVM2, but with specific attention to the restrictions of small, embedded devices?
"QVM" was a name used internally to Adobe for some of the technology that went into this. It's not an official name in any way; what Adobe released was some new technology under the Tamarin umbrella. It's not 100% ready for real-world use yet, which is why it's not in the main Tamarin branch. You can see the work in progress at http://hg.mozilla.org/tamarin-tracing
Responding to Nathan: The new Tamarin-Tracing code improves on the JIT by providing a trace-based JIT that should provide superior performance (especially for untyped code) in a smaller memory space. There are also substantial improvement in the area of memory use. It is not a completely separate VM: it still executes the same bytecode set.
Steven: Thanks for the extra information.
Fantastic News. Can't wait to start developing Flex apps. for Pocket PC's.
On another note. Well done Adobe on using Forth. I used Forth back in the early 80's on an Apple][ and I just loved using it as a "High level assembler". The language died out in the late 80's. There were many articles in BYTE magazine regarding Forth on a chip.
Well done on selecting a language best suited to the requirements!!
The new VM is mostly C++, but it does use a Forth dialect. Here are some of the technical details:
https://mail.mozilla.org/pipermail/tamarin-devel/2007-December/000180.html
So since this VM is written in the same lingo the first Macs had embeded in them, does this mean we can finally get Flash/Flex on the iPhone?
:-|
does this mean we can finally get Flash/Flex on the iPhone?
You'll have to ask Steve Jobs about that :-)
You'll have to ask Steve Jobs about that :-)
Or more accurately, you'll have to ask Adobe about that :-).
Adobe have made it clear that there are no (public) plans to release a Flash Player 9 SDK. This leaves Apple with the option to use the Flash Player 7 SDK, which funnily enough is being deprecated to make way for Flash Lite 3.
Unless you're of the opinion that Flash Lite 3 would be suitable for the iPhone (I don't), the ball seems to be in Adobe's court rather than Apple's. This recent indication that Adobe is ramping up Tamarin to provide the AS3/Flex development environment for constrained (perhaps mobile) platforms seems to show they're playing ball, which is nice to hear.
Hi all
I would really like to get in touch with someone who has done some AS3 development for mobile device using Tamarin, as I have no knowledge of this but am developing a game in AS3 which might well be suitable for mobiles. Can someone point me in the right direction? I really just need to ask a few basic questions about this.
Thanks.
-Nick