Skip to content

Convert get/set/size to PEP-384 style#324

Open
jcpunk wants to merge 1 commit into
boostorg:developfrom
jcpunk:pep-384
Open

Convert get/set/size to PEP-384 style#324
jcpunk wants to merge 1 commit into
boostorg:developfrom
jcpunk:pep-384

Conversation

@jcpunk

@jcpunk jcpunk commented Oct 16, 2020

Copy link
Copy Markdown
Contributor

Ultimately, for PEP-384 (CPython 3.2+) someone who understands the output needs to run abitype.py[1] against src/object/enum.cpp and src/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

@knoepfel

Copy link
Copy Markdown

@jcpunk, do you have reason to suspect the output of abitype.py on those files is wrong?

@jcpunk

jcpunk commented Oct 22, 2020

Copy link
Copy Markdown
Contributor Author

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.

@stefanseefeld

Copy link
Copy Markdown
Member

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 ?

@jcpunk

jcpunk commented Jan 7, 2021

Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants