We need more vtables.
* INTVAL hash()
To properly support Python, we need:
- a hash PMC that isn't restricted to STRING* keys - low level hash code has AFAIK already all the necessary stuff, or mostly. I don't know, how much Python specific it really is, but Perl5's "hashing objects as strings" isn't really what we want AFAIK.
Anyway, every hashable PMC should have such a vtable slot to produce a unique and reproducable hash value according to the - well value - of that PMC. UT python SL.
Works for me. We probably need to make sure that everything's in place for keys to tag the individual key elements properly too.
* void finalize()
We should separate finalize() from the destroy() vtable.
Currently only closing PIOs and shutting down timer PMCs is concerned. but these are good examples of already existing code to investigate some of the implications, which are no fun - thanks Dan for the blog.
Any reason that the destroy entry's insufficient? That's what I'd intended it to do, at least.
I can see thinking about changing the scheme we use to destroy things, certainly (like, say, putting the pmcs that need destruction in a queue, tagging them as having been queued, run the queue and trigger the destroy method, tag them as having been destroyed, then if they come up as dead in the next round of DOD assume they're garbage), but I'm not sure we need to split finalization and destruction. Not that I mind, certainly, if there's something I'm missing. :)
--
Dan
--------------------------------------it's like this------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk