<div dir="ltr"><div><Blush><br><br></div>tp_ stands for "type". I wrote all that in 1990 and indeed made up the term slot -- it's like an entry in a C++ vtable, where apparently they are also called slots by some folks. I also did a major update to the machinery here in the early 2000s (when typeobject.c grew from 50 lines to 5000) but didn't update the terminology.<br><br>I feel a bit offended that Armin calls it "the stupid slot system" -- this architecture an important part of what makes C extensions so flexible. I will happily see it replaced by something better, if it can be found, but I don't think it's fair to call it "stupid". However I no longer am interested in maintaining that code myself, and I can't bear to read those blog posts (they're rambling and sound like someone's research notes).<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 29, 2017 at 7:47 PM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, May 29, 2017 at 07:27:05PM -0700, Guido van Rossum wrote:<br>
<br>
</span><span class="">> > <a href="https://www.corsix.org/content/why-are-slots-so-slow" rel="noreferrer" target="_blank">https://www.corsix.org/<wbr>content/why-are-slots-so-slow</a><br>
> ><br>
><br>
> Is the author of that article using non-standard terminology? The article<br>
> doesn't appear to be about __slots__ at all.<br>
<br>
</span>Quoting Armin Ronacher:<br>
<br>
    By far my biggest problem with the language is the stupid slot<br>
    system. I do not mean the __slots__ but the internal type slots<br>
    for special methods.<br>
<br>
<a href="http://lucumr.pocoo.org/2014/8/16/the-python-i-would-like-to-see/" rel="noreferrer" target="_blank">http://lucumr.pocoo.org/2014/<wbr>8/16/the-python-i-would-like-<wbr>to-see/</a><br>
<br>
Armin shows the history of these "slots" (or however they're called)<br>
back to Python in 1990!<br>
<br>
static number_methods int_as_number = {<br>
    intadd, /*tp_add*/<br>
    intsub, /*tp_subtract*/<br>
    intmul, /*tp_multiply*/<br>
    ... etc<br>
<br>
I don't know where the name "slot" comes for from the various tp_*<br>
members (fields? attributes? slots?) but I'm pretty sure I've heard it<br>
before. I don't normally pay attention to what happens in the C<br>
implementation, but I'm fairly sure he's referring to these tp_*<br>
thingies.<br>
<br>
Oh yes, here you go:<br>
<br>
<a href="https://docs.python.org/2/extending/newtypes.html#type-methods" rel="noreferrer" target="_blank">https://docs.python.org/2/<wbr>extending/newtypes.html#type-<wbr>methods</a><br>
<br>
refers to "tp_* slot" regularly. What does "tp" stand for? Type<br>
something, I guess.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
Steve<br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/guido%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/<wbr>guido%40python.org</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>