[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