On Mon, 18 Sep 2017 20:07:42 +1000
Nick Coghlan <ncogh...@gmail.com> wrote:

> On 18 September 2017 at 19:48, Antoine Pitrou <solip...@pitrou.net> wrote:
> > On Mon, 18 Sep 2017 11:31:12 +0200
> > Victor Stinner <victor.stin...@gmail.com> wrote:  
> >>
> >> Ideally, CPython 3.x should never create reference cycles. Removing
> >> Exception.__traceback__ is the obvious "fix" for the issue. But I
> >> expect that slowly, a lot of code started to rely on the attribute,
> >> maybe even for good reasons :-)  
> >
> > The real issue is not reference cycles, but the fact that a traceback
> > frame keeps all locals alive.  When the frame's execution is finished,
> > that information is practically almost always useless, but is kept for
> > the rare cases of debugging (and perhaps dubious features such as
> > some of py.test's magic).  
> 
> As another use case, IPython tracebacks will include details of
> referenced local variables, and
> https://docs.python.org/3/library/traceback.html#tracebackexception-objects
> offers the ability to readily capture the repr() of locals referenced
> from a traceback for the same reason.

True... but interactive use has different concerns than production
use (hence my proposition of a setting to change frame cleanup
behaviour). Besides, IPython also stores the history of displayed
values, which is another cause of keeping objects alive :-)

Regards

Antoine.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to