[Python-Dev] Linus on garbage collection

Michael Foord fuzzyman at voidspace.org.uk
Fri May 6 19:04:53 CEST 2011


On 06/05/2011 17:32, Gregory P. Smith wrote:
> On Fri, May 6, 2011 at 9:18 AM,<skip at pobox.com>  wrote:
>>     Antoine>  Since we're sharing links, here's Matt Mackall's take:
>>     Antoine>  http://www.selenic.com/pipermail/mercurial-devel/2011-May/031055.html
>>
>> > From that note:
>>
>>     1: You can't have meaningful destructors, because when destruction
>>     happens is undefined. And going-out-of-scope destructors are extremely
>>     useful. Python is already a rather broken in this regard, so feel free
>>     to ignore this point.
> Python being "broken" in this regard is pretty much exactly why
> __enter__, __exit__ and with as context managers were added to the
> language.
>

How does that help with cycles? Sure it makes cleaning up some resources 
easier, but not at all this case. Explicit destruction is of course 
always an alternative to the runtime doing it for you, but it doesn't 
help with (for example) reclaiming memory. For long running processes 
memory leaks due to unreclaimable cycles can be a problem with CPython.

> That gives the ability to have the equivalent of well defined nested
> scopes that destroy something (exit) deterministically much as it is
> easy to do in C++ with some {}s and a ~destructor().
>
> It is not broken, just different.

+1 QOTW ;-)

Michael
> -gps
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk


-- 
http://www.voidspace.org.uk/

May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html



More information about the Python-Dev mailing list