-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moving tp_class access, and consistent fully-qualified naming for PyPy, to detail::get_tp_name #2520
Conversation
110b168
to
b4dc8e3
Compare
…y, to detail::get_tp_name
b4dc8e3
to
587ba52
Compare
@@ -155,7 +155,7 @@ def test_internal_locals_differ(): | |||
assert m.local_cpp_types_addr() != cm.local_cpp_types_addr() | |||
|
|||
|
|||
@pytest.mark.xfail("env.PYPY") | |||
@pytest.mark.xfail("env.PYPY and sys.pypy_version_info < (7, 3, 2)") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Expect this to fail on PyPy < 7.3.2"
Didn't we decide to drop older versions already?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
7.3.2 is not out, yet. And it still fails on 7.3.1 :-)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If 7.3.2 is out before this gets merged, yes, let's remove it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(unrelated change, btw, but something I bumped into, when testing locally)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I probably wouldn't drop it right away; approximately supporting 7.3.0+ would probably be ideal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's probably best.
@@ -24,6 +24,14 @@ PYBIND11_NAMESPACE_BEGIN(detail) | |||
# define PYBIND11_SET_OLDPY_QUALNAME(obj, nameobj) setattr((PyObject *) obj, "__qualname__", nameobj) | |||
#endif | |||
|
|||
inline std::string get_tp_name(PyTypeObject *type) { | |||
#if !defined(PYPY_VERSION) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens in 7.3.2? Does the line below start working?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think so, no. I believe the @pytest.mark.xfail("env.PYPY and sys.pypy_version_info < (7, 3, 2)")
is unrelated (but I just came across it because I tested with 7.3.2.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh .. I'd written this yesterday, but it was still a "pending review" ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a great step in the right direction.
Are there existing unit tests for built-in types and nested classes? (If not it would be OK with me to add them later.)
I think so, yes. Do the tests that I had to change (because PyPy is now consistent with CPython) count? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Yannick! I think this is good to merge, to help you finishing up #2349. I didn't have a chance to look into existing unit test coverage beyond the changes in test_class.py
here, but we can look into that separately, later, or as the need arises.
3756f01
to
a22f2d7
Compare
OK, sounds good to me. Thanks, @rwgk! |
This seems safe to put in; would like to slowly keep a little momentum heading into 2.6.0. |
Increasing consistency, cfr. #2349 (comment)