[Python-Dev] Reference cycles in Exception.__traceback__

Antoine Pitrou solipsis at pitrou.net
Thu Mar 6 16:52:56 CET 2014


Le 06/03/2014 16:03, Yury Selivanov a écrit :
>
> On 2014-03-06, 8:42 AM, Antoine Pitrou wrote:
>> Le 05/03/2014 23:53, Nick Coghlan a écrit :
>>>
>>> __traceback__ wouldn't change [...]
>>
>> Uh, really? If you want to suppress all reference cycles, you *have*
>> to remove __traceback__.
>>
>> The problem is to make computation of the traceback summary
>> lightweight enough that it doesn't degrade performance in the common
>> case where you don't have to print the traceback later.
>
> So why can't we allow instantiation of types.TracebackType &
> types.FrameType?

IMO it is absolutely out of question to allow creation of arbitrary 
frames from Python code, because the structure and initialization of 
frames embody too many low-level implementation details.

We might allow the creation of traceback objects, but without any custom 
frame objects it is unclear how useful that would be.

Regards

Antoine.




More information about the Python-Dev mailing list