Hi there! By the time pep 442 was introduced, I wasn't very active in python core stuff anymore, and still am not.
The intent of this patch, which is explained (IMHO) quite clearly in the first few comments was to
- Formalize a way for custom objects to tell GC "No, please don't delete my references _at this time_ because if you do, I will have to run non-trivial code that may wreak havoc". This is different from just having a __del__ method. Sometimes deleting is okay. Sometimes not.
- Make this way available to all objects, not just Generator objects. We already identified a separate such instance in stackless python and it seemed prudent to "give back" the generalization that we made there for the benefit of python at large.
- Not introduce new slots for this purpose.
Now, with pep 442, I have no idea how Generators can postpone being garbage collection since I'm honestly not familiar with how things work now.
I have no particular skin in this game anymore, I'm no longer actively working on Stackless or Python integrations and I stopped trying to push stuff thought the bugtracker to preserve my sanity.
So, lets just close this until the day in the future when needs arise once more :) |