[Patches] [Patch #103203] PEP 205: weak references implementation

noreply@sourceforge.net noreply@sourceforge.net
Fri, 12 Jan 2001 14:36:50 -0800


Patch #103203 has been updated. 

Project: python
Category: core (C code)
Status: Open
Submitted by: fdrake
Assigned to : loewis
Summary: PEP 205: weak references implementation

Follow-Ups:

Date: 2001-Jan-12 14:36
By: loewis

Comment:
The weak dictionary data type needs more clarification in documentation and
implementation. In java.util.WeakHashMap, they keys are weak, not the
values (i.e. once the key is forgotten, the entry is cleared).  In
http://www.handshake.de/~dieter/weakdict.html, the values are weak, but it
raises KeyErrors for entries that are collected.

The initializer of a weak dict does not check the invariant (all values are
weak). 

get() of a weakdict does not support an optional second parameter.

weakref and friends need to participate in garbage collection, as the
reference to the callback can create a cycle.

-------------------------------------------------------

Date: 2001-Jan-12 11:27
By: fdrake

Comment:
Updated patch to also support proxy semantics using the same invalidation
machinery as the basic weak reference type.  The additional code is
*heavily* borrowed from Neil Schemenauer.
-------------------------------------------------------

Date: 2001-Jan-12 01:00
By: nobody

Comment:
Neil,

you may want to have a look at mxProxy. This is a proxy implementation
which already provides weak references (among other things) and has
the advantages you talked about in your reply.

--
Marc-Andre
-------------------------------------------------------

Date: 2001-Jan-11 15:27
By: nascheme

Comment:
Hmm, I think this can be done more cleanly with a proxy now the
the coercion stuff has been cleaned up.  I will probably give it a go
tonight.  The advantage of using a proxy is that you can have a weak
reference to any object and you only pay memory for weak references
if you use them.
-------------------------------------------------------

Date: 2001-Jan-11 14:05
By: fdrake

Comment:
Assigned to Martin, since he's indicated he intends to go over this very
carefully!
-------------------------------------------------------

-------------------------------------------------------
For more info, visit:

http://sourceforge.net/patch/?func=detailpatch&patch_id=103203&group_id=5470