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 Skylion007
Recipients Skylion007
Date 2021-12-23.19:33:30
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1640288010.25.0.698839040509.issue46166@roundup.psfhosted.org>
In-reply-to
Content
Hello, I am a maintainer with the PyBind11 project. We have been following the 3.11 development branch and have noticed an issue we are encountering with changes to the C-API. 

Particularly, we have an edge case in our overloading dispatch mechanism that we used to solve by inspecting the "self" argument in the co_varnames member of the python frame object: (https://github.com/pybind/pybind11/blob/a224d0cca5f1752acfcdad8e37369e4cda42259e/include/pybind11/pybind11.h#L2380). However, in the new struct, the co_varnames object can now be null. There also doesn't appear to be any public API to populate it on the C-API side. Accessing it via the "inspect" module still works, but that requires us to run a Python code snippit in a potentially very hot code path: (https://github.com/pybind/pybind11/blob/a224d0cca5f1752acfcdad8e37369e4cda42259e/include/pybind11/pybind11.h#L2408).

As such, we were hoping that either there is some new API change we have missed, or if there is some way other modern (and hopefully somewhat  stable way to access the API) so we can emulate the old behavior with the C-API.
History
Date User Action Args
2021-12-23 19:33:30Skylion007setrecipients: + Skylion007
2021-12-23 19:33:30Skylion007setmessageid: <1640288010.25.0.698839040509.issue46166@roundup.psfhosted.org>
2021-12-23 19:33:30Skylion007linkissue46166 messages
2021-12-23 19:33:30Skylion007create