(original) (raw)
On Wed, Jun 4, 2008 at 7:32 PM, Andrew MacIntyre <andymac@bullseye.apana.org.au> wrote:
I agree with the gc.collect approach taken in your issue2862 patch. Barring any objections, I suggest we accept it and will commit it in the next couple days.
-gps
There are 2 disparate approaches to clearing/compacting free lists for
basic types:
- APIs of the form Py<type>_ClearFreeList() called from gc.collect()
[class, frame, method, tuple & unicode types];
- APIs of the form Py<type>_CompactFreeList() called from
sys._compact_freelists() [int & float types];
Both approaches are new for 2.6 & 3.0.
The patch at http://bugs.python.org/issue2862 is geared towards bring
the int/float free list management into line with the others.
The patch at http://bugs.python.org/issue3029 adds free list management
to the dict, list & set types. The value of this is probably minor,
and this patch is thus not significant in its own right other than for
consistency.
However Raymond's comment to issue 3029 that the management routines
shouldn't be public APIs is IMO important (& I happen to agree).
It would be nice to reduce the 2 approaches to one.
I would rather the gc.collect() approach, as this seems to be more
obvious to many users who have gone looking for free list management in
prior versions, however my opinion isn't particularly valuable on this.
Can this be resolved for 2.6/3.0?
I agree with the gc.collect approach taken in your issue2862 patch. Barring any objections, I suggest we accept it and will commit it in the next couple days.
-gps