-
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
Undo attr.h, detail/class.h changes made under PR #3923 #4142
Conversation
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.
Looks good to me. These issues the original behavior/legacy API was restored in the 3.11 release candidate.
Thanks @Skylion007! Leaving this in draft mode for the minute, waiting for feedback here: python/cpython#96046 (comment) |
I was worried GC was not implemented properly with our use of the new API (see #4092), but it sounds like that the upstream CPython has been updated so it is fine now? |
Who could give us authoritative advice what to do here? A: Merge this PR (because the old way of doing things evidently works again with Python 3.11, thanks to @markshannon), wait for the Python 3.11.0 final release, but then soon after start testing against 3.12 (maybe brining back what this PR removes, as a starting point)? B: Drop this PR because all required changes were made in Python 3.11 in the meantime? C: Change this PR to make more/different adjustments for 3.11? @Fidget-Spinner (b/o #4092) |
I suggest you waiting until python/cpython#96047 is merged, and then test pybind11 again on a Python containing this change. |
Looks like it's working! @vstinner should I just close this PR? I tested with this https://github.com/python/cpython commit:
Dockerfile
In the running docker container:
|
FWIW, I ran a super-simple leak check: This adds to my belief that we can keep using
|
What's the status of this? |
I believe we don't need this, I just kept it around because it's not clear to me. From memory, it was initially needed because of a change A in Python, but then it triggered a bug B in Python, then there was a rollback of change A so it is no longer needed, but also the triggered bug B is fixed, so we can keep it anyway. That's all I know. It may be an oversimplification or even misrepresentation. I don't have time to dig into Python 3.11 and 3.12 to truly understand the situation and how it evolved. Last activity here was 2 months ago: Closing, I figure we're fine. |
Description
See python/cpython#92678 for background.
Suggested changelog entry: