[Python-Dev] What is the precise problem? [was: Reference cycles in Exception.__traceback__]

Maciej Fijalkowski fijall at gmail.com
Mon Mar 10 13:11:40 CET 2014


On Mon, Mar 10, 2014 at 12:10 PM, Victor Stinner
<victor.stinner at gmail.com> wrote:
> 2014-03-08 16:30 GMT+01:00 Maciej Fijalkowski <fijall at gmail.com>:
>> How about fixing cyclic gc to deal with __del__ instead? That sounds
>> like an awful change to the semantics.
>
> Hum? That's the purpose of the PEP 442 which is implemented in Python 3.4.
>
> As I wrote, it's not enough to fix all issues.
>
> Usually, I see an explicit call to gc.collect() as a workaround to a
> deeper issue. I prefer to modify my program to run smoothly without
> explict garbage collection.
>
> That's why I would prefer to avoid creating reference cycles from the beginning.
>
> Victor

It was agreed long time ago that the immediate finalization is an
implementation specific detail and it's not guaranteed. You should not
rely on __del__s being called timely one way or another. Why would you
require this for the program to work correctly in the particular
example of __traceback__?

Cheers,
fijal


More information about the Python-Dev mailing list