[Python-Dev] Reference cycles in Exception.__traceback__

Nick Coghlan ncoghlan at gmail.com
Wed Mar 5 22:54:42 CET 2014


On 6 Mar 2014 02:43, "Antoine Pitrou" <solipsis at pitrou.net> wrote:
>
> Le 05/03/2014 17:37, Victor Stinner a écrit :
>
>>
>> Python 3.4 introduced frame.clear(), but frame.clear() raises an
>> RuntimeError if the frame is still running. And it doesn't break all
>> reference cycles.
>>
>> An obvious workaround is to store the traceback as text, but this
>> operation is "expensive" especially if the traceback is only needed in
>> rare cases.
>
>
> Another "obvious" workaround is to call frame.clear() from the parent
function (i.e. have a dedicated wrapping layer).

Guido had a fix in mind - splitting traceback formatting into two pieces.
The first would convert a traceback to a sequence of named tuples, the
second would do the actual string formatting.

There's an RFE for it on the tracker, but I don't have a link handy.

Cheers,
Nick.

>
> Regards
>
> Antoine.
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20140306/a55390f5/attachment.html>


More information about the Python-Dev mailing list