GeezerVison is showing github.com — bpo-2897: Make PyMemberDef part of stable ABI; deprecate structmember.h by MatzeB · Pull Request #20462 · python/cpython
Conversation
MatzeB
commented
May 27, 2020
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Move PyMemberDef and related flags from structmember.h to descrobject.h.
Rename READONLY to PY_READONLY and READ_RESTRICTED to
PY_READ_RESTRICTED. This makes the structure part of the stable ABI.
Move PyMember_GetOne and PyMemberSetOne as well but do not make them
part of the stable ABI yet.
Document that structmember.h is deprecated, change examples and
documentation and add definitions for READONLY, READ_RESTRICTED,
PY_WRITE_RESTRICTED and RESTRICTED to it for backwards compatibility.
Add check for stddef.h to configure.ac because we need to include it for
offsetof and Python.h does not pass the HAVE_STDDEF_H check without it.
https://bugs.python.org/issue2897
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Move PyMemberDef and related flags from structmember.h to descrobject.h.
Rename READONLY to PY_READONLY and READ_RESTRICTED to
PY_READ_RESTRICTED. This makes the structure part of the stable ABI.
Move PyMember_GetOne and PyMemberSetOne as well but do not make them
part of the stable ABI yet.
Document that structmember.h is deprecated, change examples and
documentation and add definitions for READONLY, READ_RESTRICTED,
PY_WRITE_RESTRICTED and RESTRICTED to it for backwards compatibility.
Add check for stddef.h to configure.ac because we need to include it for
offsetof and Python.h does not pass the HAVE_STDDEF_H check without it.
|
Hello. Sorry for the delay -- I just found this PR (I noticed the bug and wanted to file an issue myself).
Are you still interested in the PR, after 2 years?
If not, I'd be happy to take over.
- Changing all the uses of
READONLY to PY_READONLY (and removing the #include) isn't really necessary. The PR would be much easier to review without that, and there'd be fewer conflicts.
- Everything included from
Python.h should have the Py_ prefix, so T_* macros should be renamed to PY_T_*. The old header should continue to provide the old names.
- The new constants should be documented and added to
Misc/stable_abi.toml, but let's do that in a separate PR.
- We should ensure we don't reuse
PY_WRITE_RESTRICTED's value for something else in the future. So, in descrobject.h, I would #define _PY_WRITE_RESTRICTED 4 with an appropriate comment. (Note the leading underscore.)
- The
configure*, Python.h and HAVE_STDDEF_H stuff shouldn't change here. structmember.h should include stddef.h for backward compatibility, but the other stuff can be left to other PRs/issues, if necessary.
- This needs an entry in What's New.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Hey, I am currently not working with python so I don't know when I would find the time to push this further. If you or someone else wants to take over, by all means!
|
encukou reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|