Open jcpunk opened 4 years ago
@jcpunk, do you have reason to suspect the output of abitype.py
on those files is wrong?
I'm really unsure what the changes from abitype.py
mean for the overall usage and behaviour of the library. To be honest, I'm not much of a C++ programmer and can't meaningfully assess that output. All I know is it doesn't compile without help. I honestly don't understand that section of the code in any real way.
I'm not entirely sure I understand the purpose of this PR. As far as I can see, all it does is to replace non-checking functions by their checking counter parts, thereby making the code overall slower. (Example: PyTuple_GET_SIZE
is replaced by PyTuple_Size
, PyTuple_GET_ITEM
is replaced by PyTuple_GetItem
, etc.)
Am I missing something ?
As I understand it, this PR (switching to the checking versions) is a pre-req for the PEP-384 abitype.py
conversion to the stable C API.
Ultimately, for PEP-384 (CPython 3.2+) someone who understands the output needs to run
abitype.py
[1] againstsrc/object/enum.cpp
andsrc/object/class.cpp
. The slot/spec layouts[2] generated by that code are pretty close to right, but need someone more fluent in this than I....This PR gets the other helpers in place for staying to the stricter ABI.
[1] https://github.com/python/cpython/blob/master/Tools/scripts/abitype.py
[2] https://pythoncapi.readthedocs.io/type_object.html#pytype-fromspec