(original) (raw)



On Wed, Jun 4, 2008 at 7:32 PM, Andrew MacIntyre <andymac@bullseye.apana.org.au> wrote:

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