Status Update - current work..

160 views
Skip to first unread message

Ben Cooley

unread,
Jun 8, 2013, 2:36:37 PM6/8/13
to plays...@googlegroups.com
Just an FYI.. if you've been following our commits, we've been concentrating pretty heavily on compatibility issues with ActionScript lately.

We are throwing quite a bit of our own code at the compiler these days, and we're prioritizing work based on the biggest issues we're encountering in building our own games in both the runtime libraries and the compiler itself. 

Some notable improvements:

- We now allow methods/properties to have static and instance versions of the same name (fixes issues compiling the standard version of Starling, and many instances found in our own code).
- Many bugs fixed in local variable hoisting.  There still seems to be an issue with try/catch blocks, but for the most part variable hoisting seems to be finished.
- Many bugs fixed in handling implicit casts.  Implicit casts appear to be complete at this point.
- Many bugs fixed in anonymous method support, including a major bug with hoisting where locals in the anonymous methods were being hoisted to the outer scope.  Anonymous method support appears to be complete.
- Support for "dynamic" classes appears to be mostly complete.   There are still existing problems with "for in" and "for each in" however.
- Fixed several crash bugs in the compiler related to a variety of issues we introduced.
- Reduced the number of dynamic calls by coercing most "Object" parameters to .NET object.

Major work left:

- Encountering issues with our choice of using Class an an alias to .NET "Type" (many semantics of class are not supported).  We will likely switch to using "Class" intead of Type, and optimize simple expressions to use Type where we can.
- E4X support is still missing query expressions, and namespace expression support.  This is still blocking Away3D collada support, and some code in our own games.
- Package and class level statements are still not supported.  This requires most code to be grouped and packaged in static init() functions presently, which is somewhat tedious.  We will be looking into this very shortly.
- Local constants are still not handled well.  ActionScript's constants are actually "readonly" normal variables, where as .NET has real constants.  We have fixed this at the class level, but not at the local function body level.  This issue makes compiling Feathers code more difficult (as they use local constants extensively).

alex...@digikama.com

unread,
Jun 10, 2013, 4:21:35 PM6/10/13
to plays...@googlegroups.com
Hello, Ben!

Is there a chance you'll publish a video of your Adobe MAX presentation? It's still missing on Adobe MAX site.

Kevin Newman

unread,
Jun 10, 2013, 5:52:21 PM6/10/13
to plays...@googlegroups.com
What's the word on integration upstream with the Mono Project? Is that something that must wait for a completion milestone?

Ben Cooley

unread,
Jun 11, 2013, 2:28:36 PM6/11/13
to plays...@googlegroups.com
That is being handled by Xamarin right now, so you'd have to talk to them.   We are in regular touch at this point, though our branch is independent.
Reply all
Reply to author
Forward
0 new messages