Guido van Rossum wrote:
> Some comments:
>
> - Fredrik's solution makes one call per registered method. (I don't
> know if the patch he refers to follows that model.) That seems a fair
> amount of code for an average type -- I'm wondering if it's too early
> to worry about code bloat (I don't think the speed is going to
> matter).
One other thought: The special constants could themselves be nothing
more than the offset into the PyTypeObject struct, i.e.:
#define SPECMETHOD_NEW ((const char*)offsetof(PyTypeObject,tp_new))
In the PyType_Ready code, you would see if the method name had a value
of less than sizeof(PyTypeObject); If so, then it's a special method
name, and you fill in the struct at the specified offset.
So the interpretation of the table could be very simple and fast. It has
a slight disadvantage from the approach of using actual string names for
special methods, in that it doesn't allow the VM to silently
promote/demote methods to 'special' status.
-- Talin
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com