Melvin Smith <[EMAIL PROTECTED]> wrote:
> Basically all metadata has to be collected before any code can be emitted. > I was thinking of generating an _init routine that creates the classes, > so we have several possibilities.
Why? A class definition should AFAIK end up in the constant table as a class PMC specifying the inheritance and attributes. So a .class directive is from parsing POV a constant definition, like a string constant.
True, but something has to change. Either the loader has to know how to load a class (long term solution) or I have to write an _init routine.
I was aiming for a short term kludge to get classes working. Freeze/thaw can break my kludge whenever it is done. (Unless you have a secret patch ready)
We have to rearange all imcc globals anyway - there can't be globals or multi-threading will break horribly.
Well, Bison C++ parsers are reentrant by default *pokes Dan*.... :)
-Melvin