Deprecate (and eventually remove) `tp_is_gc`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Feature or enhancement
Proposal:
The existence of tp_is_gc slows down and complicates allocation, deallocation and garbage collection.
But there is no need for it, as statically allocated objects can be marked as immortal as will be ignored by the GC.
I doubt there is much third-party code that uses it, if any.
We should deprecate it, and then remove it.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the definition and all uses of tp_is_gc in CPython, then inspect how statically allocated objects are marked immortal and handled by the garbage collector. Determine the deprecation and eventual removal scope, including compatibility impact for third-party extensions. Done means the proposed replacement is validated and the deprecation or removal is implemented consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100