We've gone back and forth on this before, and it's time to go for yet another round.

Right now, we can create new PMCs by calling the class init method. It takes no parameters which somewhat limits the utility of the thing as a true initializer. There's an init vtable method that takes a property PMC, but that's kind of awkward.

Now, we've three real options here. We can:

1) Treat the init method as an allocator, and leave initialization to an explicit sub/method call
2) Have one single vtable method that has a different set of calling conventions from every other method and sub available from bytecode
3) Make new use the registers and obey the calling conventions


Now, I don't really like #3, as it's damned inconvenient. #2 has this nasty inconsistency to it that I'm not thrilled with either, though I can definitely live with it. #1 leaves us with the possibility of split allocation and initialization and I've been warned about that as a Bad Idea. (OTOH we're at a low-enough level that it's arguably OK)

I'm up for discussion on this, as well as other options, so... have at it.
--
                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to