cpython/Objects
Tim Peters e05f65a0c6 1. Combined the base and length arrays into a single array of structs.
This is friendlier for caches.

2. Cut MIN_GALLOP to 7, but added a per-sort min_gallop vrbl that adapts
   the "get into galloping mode" threshold higher when galloping isn't
   paying, and lower when it is.  There's no known case where this hurts.
   It's (of course) neutral for /sort, \sort and =sort.  It also happens
   to be neutral for !sort.  It cuts a tiny # of compares in 3sort and +sort.
   For *sort, it reduces the # of compares to better than what this used to
   do when MIN_GALLOP was hardcoded to 10 (it did about 0.1% more *sort
   compares before, but given how close we are to the limit, this is "a
   lot"!).  %sort used to do about 1.5% more compares, and ~sort about
   3.6% more.  Here are exact counts:

 i    *sort    3sort    +sort    %sort    ~sort    !sort
15   449235    33019    33016    51328   188720    65534  before
     448885    33016    33007    50426   182083    65534  after
      0.08%    0.01%    0.03%    1.79%    3.65%    0.00%  %ch from after

16   963714    65824    65809   103409   377634   131070
     962991    65821    65808   101667   364341   131070
      0.08%    0.00%    0.00%    1.71%    3.65%    0.00%

17  2059092   131413   131362   209130   755476   262142
    2057533   131410   131361   206193   728871   262142
      0.08%    0.00%    0.00%    1.42%    3.65%    0.00%

18  4380687   262440   262460   421998  1511174   524286
    4377402   262437   262459   416347  1457945   524286
      0.08%    0.00%    0.00%    1.36%    3.65%    0.00%

19  9285709   524581   524634   848590  3022584  1048574
    9278734   524580   524633   837947  2916107  1048574
      0.08%    0.00%    0.00%    1.27%    3.65%    0.00%

20 19621118  1048960  1048942  1715806  6045418  2097150
   19606028  1048958  1048941  1694896  5832445  2097150
      0.08%    0.00%    0.00%    1.23%    3.65%    0.00%

3. Added some key asserts I overlooked before.

4. Updated the doc file.
2002-08-10 05:21:15 +00:00
..
.cvsignore Ignore a bunch of generated files. 2000-05-02 18:34:30 +00:00
abstract.c Patch #554716: Use __va_copy where available. 2002-07-28 10:23:27 +00:00
boolobject.c Make more functions static 2002-08-06 22:12:52 +00:00
bufferobject.c Fix SF bug 546434 -- buffer slice type inconsistent. 2002-06-25 00:25:30 +00:00
cellobject.c Use new GC API. 2001-08-29 23:54:21 +00:00
classobject.c object.h special-build macro minefield: renamed all the new lexical 2002-07-11 06:23:50 +00:00
cobject.c Patch #568124: Add doc string macros. 2002-06-13 20:33:02 +00:00
complexobject.c Patch #568124: Add doc string macros. 2002-06-13 20:33:02 +00:00
descrobject.c SF patch 568629 by Oren Tirosh: types made callable. 2002-06-14 20:41:17 +00:00
dictobject.c staticforward bites the dust. 2002-07-17 16:30:39 +00:00
enumobject.c Remove the next() method -- one is supplied automatically by 2002-07-16 21:02:42 +00:00
fileobject.c Make readahead functions static 2002-08-06 21:50:54 +00:00
floatobject.c staticforward bites the dust. 2002-07-17 16:30:39 +00:00
frameobject.c Tim found that once test_longexp has run, test_sort takes very much 2002-08-01 18:50:33 +00:00
funcobject.c Extend function() to support an optional closure argument. 2002-07-11 18:30:27 +00:00
intobject.c Only call sq_repeat if the object does not have a nb_multiply slot. One 2002-08-09 15:20:48 +00:00
iterobject.c Moved special case for tuples from iterobject.c to 2002-08-09 01:30:17 +00:00
listobject.c 1. Combined the base and length arrays into a single array of structs. 2002-08-10 05:21:15 +00:00
listsort.txt 1. Combined the base and length arrays into a single array of structs. 2002-08-10 05:21:15 +00:00
longobject.c staticforward bites the dust. 2002-07-17 16:30:39 +00:00
methodobject.c Introduce two new flag bits that can be set in a PyMethodDef method 2002-03-28 05:33:33 +00:00
moduleobject.c Patch #568124: Add doc string macros. 2002-06-13 20:33:02 +00:00
object.c Replace abort with Py_FatalError. 2002-08-07 16:21:51 +00:00
obmalloc.c Remove extraneous semicolon. 2002-07-18 18:49:52 +00:00
rangeobject.c staticforward bites the dust. 2002-07-17 16:30:39 +00:00
sliceobject.c Silly typo. Not sure how that got in. 2002-07-19 15:52:38 +00:00
stringobject.c Committing patch #591250 which provides "str1 in str2" when str1 is a 2002-08-06 16:58:21 +00:00
structseq.c Remove PyMalloc_New and PyMalloc_Del. 2002-04-12 03:05:37 +00:00
tupleobject.c Moved special case for tuples from iterobject.c to 2002-08-09 01:30:17 +00:00
typeobject.c Major speedup for new-style class creation. Turns out there was some 2002-08-09 02:14:34 +00:00
unicodectype.c removed "register const" from scalar arguments to the unicode 2001-06-27 22:08:26 +00:00
unicodeobject.c Unicode replace() method with empty pattern argument should fail, like 2002-08-09 15:36:48 +00:00
unicodetype_db.h forgot to check in the new makeunicodedata.py script 2001-01-21 17:01:31 +00:00
weakrefobject.c Add support for the iterator protocol to weakref proxy objects. 2002-08-09 18:34:16 +00:00
xxobject.c staticforward bites the dust. 2002-07-17 16:30:39 +00:00