These are both good suggestions --- support for inline assembly, and an ABI.

The platform currently supports inline assembly (inside the #pragma), but I don't know whether this will survive the compiler port to Java. If it doesn't, I'll add a description to the wiki of how to find the old implementation and the documentation for it, so that an interested party can revive it.

Are your experiences with inline assembly for swf5, or with (later versions of) swf6 and higher? Our experience with inline assembly was that it was useful for swf5, but that replacing it with JavaScript improved the performance once we targeted swf6, since there were so many registers to allocate to.

Do you want to take a stab at documenting the ABI? Even a framework for describing it, with unanswered questions, would be helpful. If you want to make a new page for it on the wiki, http:// wiki.openlaszlo.org/Flash_ABI would make sense as a page name, and the platform developers can fill in material where they know it.

On Nov 30, 2005, at 8:16 AM, Asger Alstrup wrote:
[Proposal for how access Flash specific APIs]

Having access to the raw Flash API is really a must-have to create the best applications possible, so this proposal is very much welcomed. We are already reliying on the #pragma hack, so an "official" way to do this would be great - especially since the #pragma hack is fragile: if it is not followed by some dead code, it seems that instructions might be "optimised" away. The proposal itself looks fine as long as it is open-ended and allows access to the full underlying API.

However, I'd like to ask for even more (or some else): The ability to include inline flash assembly. The performance of the Flash engine is so poor that the loss in performance due to translation from JavaScript to the flash bytecodes is costing too much: Especially the difficult choice of whether to put a variable in a register or use the top stack element as "register" costs a great deal of performance. For maximum performance, you really need to decide this yourself, so flash assembly is the way to go.

So some mechanism to include assembly would very much be welcomed, whether it is based on flasm, or in the worst case, maybe even just hex-codes. (Neoswiff supports inline assembly, and flasm allows ActionScript to contain assembly as well.)

Another thing is documenting the ABI so that interoperability with other Flash technologies becomes possible. There are lots of different Flash technologies these days: Flex, Neoswiff, Xamlon, Mtasc, haXe, flasm, and so on. And for each of these, there are lots of libraries: actionstep, flex components, and what not. If it was technically possible to mix & match different technologies, that would really open the door for making nice stuff quickly. This shouldn't be technically hard, since the Flash canvas & runtime is the common building block, but it does require the ABI to be documented to allow bridging conventions: The ability to access variables and functions, and interact with the "GUI" loop.

Laszlo is great for dynamic user interfaces that are quickly put together, and to some extend XML based stuff. However, it is not so great for user interfaces with lots and lots of dynamic visual elements or performance critical data processing - the overhead is simply bringing things to a crawl, making it unworkable for really complex stuff.

The other main problem I see with Laszlo is programming in the large: Without static type checking, it is difficult to manage a large project with many different programmers. Simple refactoring is difficult, because you get no help from the compiler to make sure all instances are caught.

Regards,
Asger Ottar Alstrup
_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to