This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author erlendaasland
Recipients Guido.van.Rossum, Mark.Shannon, christian.heimes, corona10, erlendaasland, gvanrossum, miss-islington, pablogsal, serhiy.storchaka, shihai1991, shreyanavigyan, vstinner
Date 2021-07-01.21:40:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1625175621.25.0.852301604904.issue43908@roundup.psfhosted.org>
In-reply-to
Content
In inherit_slots() in Objects/typeobject.c, Py_TPFLAGS_HAVE_VECTORCALL inheritance depends on if the base type is a heap type or not. This aligns with PEP 590[1]:

  Heap types never inherit the vectorcall protocol because that
  would not be safe (heap types can be changed dynamically).

AFAICS, inherit_slots() should now use Py_TPFLAGS_IMMUTABLETYPE to decide if Py_TPFLAGS_HAVE_VECTORCALL can be inherited, and the PEP should be updated.


- [1] https://www.python.org/dev/peps/pep-0590/#subclassing
History
Date User Action Args
2021-07-01 21:40:21erlendaaslandsetrecipients: + erlendaasland, gvanrossum, vstinner, christian.heimes, Mark.Shannon, serhiy.storchaka, Guido.van.Rossum, corona10, pablogsal, miss-islington, shihai1991, shreyanavigyan
2021-07-01 21:40:21erlendaaslandsetmessageid: <1625175621.25.0.852301604904.issue43908@roundup.psfhosted.org>
2021-07-01 21:40:21erlendaaslandlinkissue43908 messages
2021-07-01 21:40:21erlendaaslandcreate