GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

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

@MatzeB MatzeB commented May 27, 2020 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

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.

All reactions
@MatzeB
MatzeB requested review from a team, 1st1, abalkin, berkerpeksag, pganssle, rhettinger and tiran as code owners May 27, 2020 19:52
@the-knights-who-say-ni the-knights-who-say-ni added the CLA signed label May 27, 2020
@bedevere-bot bedevere-bot added the awaiting review label May 27, 2020
@MatzeB
MatzeB force-pushed the fix-issue-2897 branch from 721850a to 258e394 Compare May 27, 2020 20:06
@MatzeB
bpo-2897: Make PyMemberDef part of stable ABI; deprecate structmember.h
56276cd
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.
@MatzeB
MatzeB force-pushed the fix-issue-2897 branch from 258e394 to 56276cd Compare May 27, 2020 20:50
@erlend-aasland erlend-aasland mentioned this pull request Oct 6, 2020
bpo-41861: Clean up sqlite3 header files wrt. PEP 384 #22419
Closed
@tiran
tiran removed their request for review April 17, 2021 21:23
@rhettinger
rhettinger removed their request for review May 3, 2022 06:07
@ezio-melotti ezio-melotti removed the CLA signed label Jul 13, 2022
@encukou

encukou commented Oct 10, 2022

Copy link
Copy Markdown
Member

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.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@MatzeB

MatzeB commented Oct 11, 2022

Copy link
Copy Markdown
Contributor Author

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
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@benjaminp benjaminp mentioned this pull request Apr 10, 2022
PyMemberDef missing in limited API / Deprecate structmember.h #47146
Closed
@encukou

encukou commented Nov 2, 2022

Copy link
Copy Markdown
Member

Taking over in #99014

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@encukou encukou closed this Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@1st1 1st1 Awaiting requested review from 1st1 1st1 is a code owner
@abalkin abalkin Awaiting requested review from abalkin
@berkerpeksag berkerpeksag Awaiting requested review from berkerpeksag
@pganssle pganssle Awaiting requested review from pganssle pganssle is a code owner

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting review

Projects

None yet

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.

5 participants

@MatzeB @encukou @the-knights-who-say-ni @ezio-melotti @bedevere-bot
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.