Essentially just that.. Your class gets an index, all properties and methods
of it get an index, link to parent etc gets an index. You give overrides the
same indexes, then overloading works automatically. You have to treat static
members a little bit specially, basically separate them, so you need to know
the maximum reasonable number of members of each type there will be. You
then put the table pointers in registers, and it gets pretty fast : ).

Then to run code, it looks 'something like':

locals[3] = new types[98][2](arg[0], locals[2]); // [2] is overloaded ctor
locals[3][12]();

Etc.

The big relevation to be in the prototype can be thought of 'exactly' as the
type. I don't know how I missed that in the years before, but once you have
that everything falls into place and makes perfect sense. The confusion is
you say "new Button()" and think the Button function is the type, but really
it is just a constructor method on the button prototype. The prototype isn't
given a name in JS, but if it is all indexes, then it very naturally reveals
itself as the type and nothing else : ). Ctors and fucntions are the same
thing then, and only differentiated in how they are used.

The only really hard (near impossilbe) problem was the timing of running of
the static ctors. They need to run just before first access in .Net, which
requires a lot of keeping track of things at runtime. That is pretty minor,
but is a problem when you initialize things there...

This kind of thing allows Xamlon running .net on v6 to be much faster than
the latest running on flash 8 with all the bytecode optimizations/registers
there.

Anyhow, flashback to a previous life over ; ).

Cheers,
Robin


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Samuel Agesilas
Sent: Thursday, September 13, 2007 10:02 AM
To: Open Source Flash Mailing List
Subject: Re: [osflash] Anybody interest in developing a new compiler?

Hi Robin,

Interesting points. I too use integers for function names as opposed to
their string values. I find it much faster as well.  I use a customized
post-processor I wrote in Java. It's amazing how fast it speeds things up.
I'm curious when you mentioned storing everything in tables(arrays), what
exactly did you mean? Can you provide and example. Thanks!

Cheers,
Sam


_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to