[Python-Dev] Removing tp_compare?

Mark Dickinson dickinsm at gmail.com
Sat Jan 31 22:07:37 CET 2009

Here's a question (actually, three questions) for python-dev that
came up in the issue 1717 (removing cmp) discussion.

Once the cmp removal is complete, the type object's tp_compare
slot will no longer be used.  The current plan is to rename it to
tp_reserved, change its type to (void *), and raise TypeError when
initializing any type that attempts to put something nonzero into
that slot.  But another possibility would be to remove it entirely.


(1) Is it desirable to remove tp_compare entirely, instead of
just renaming it?

(2) If so, for which Python version should that removal take place?
3.0.1?  3.1.0?  4.0?

and the all-important bikeshed question:

(3) In the meantime, what should the renamed slot be called?
tp_reserved?  In the issue 1717 discussion, Raymond suggested

Any thoughts?  My own opinion is that it really doesn't matter
that much if the slot is left in;  it's just a little annoying to have
such backwards-compatibility baggage already present in
the shiny new 3.0 series.  A little like finding a big scratch
on your brand-new bright yellow Hummer H3.  Or not.

N.B. The same questions apply to nb_reserved (which used
to be nb_long) in the PyNumberMethods structure.


More information about the Python-Dev mailing list