1. 17 Feb, 2004 3 commits
  2. 16 Feb, 2004 2 commits
  3. 15 Feb, 2004 7 commits
  4. 14 Feb, 2004 4 commits
  5. 13 Feb, 2004 6 commits
    • Raymond Hettinger's avatar
      238b267b
    • Fred Drake's avatar
      further testing indicates that the simplified version of the test · 55cf4347
      Fred Drake authored
      (re-using an existing test object class) no longer triggered the
      original segfault when the fix was backed out; restoring the local
      test object class to make the test effective
      
      the assignment of the ref created at the end does not affect the test,
      since the segfault happended before weakref.ref() returned; removing
      the assignment
      55cf4347
    • Raymond Hettinger's avatar
      * Note list optimizations · 7a6d297b
      Raymond Hettinger authored
      * Move an example out of a comment.
      7a6d297b
    • Raymond Hettinger's avatar
      Optimize list.pop() for the common special case of popping off the end. · cb3e580e
      Raymond Hettinger authored
      More than doubles its speed.
      cb3e580e
    • Raymond Hettinger's avatar
      * Optimized list appends and pops by making fewer calls the underlying system · 4bb9540d
      Raymond Hettinger authored
        realloc().  This is achieved by tracking the overallocation size in a new
        field and using that information to skip calls to realloc() whenever
        possible.
      
      * Simplified and tightened the amount of overallocation.  For larger lists,
        this overallocates by 1/8th (compared to the previous scheme which ranged
        between 1/4th to 1/32nd over-allocation).  For smaller lists (n<6), the
        maximum overallocation is one byte (formerly it could be upto eight bytes).
        This saves memory in applications with large numbers of small lists.
      
      * Eliminated the NRESIZE macro in favor of a new, static list_resize function
        that encapsulates the resizing logic.  Coverting this back to macro would
        give a small (under 1%) speed-up.  This was too small to warrant the loss
        of readability, maintainability, and de-coupling.
      
      * Some functions using NRESIZE had grown unnecessarily complex in their
        efforts to bend to the macro's calling pattern.  With the new list_resize
        function in place, those other functions could be simplified.  That is
        being saved for a separate patch.
      
      * The ob_item==NULL check could be eliminated from the new list_resize
        function.  This would entail finding each piece of code that sets ob_item
        to NULL and adding a new line to invalidate the overallocation tracking
        field.  Rather than impose a new requirement on other pieces of list code,
        it was preferred to leave the NULL check in place and retain the benefits
        of decoupling, maintainability and information hiding (only PyList_New()
        and list_sort() need to know about the new field).  This approach also
        reduces the odds of breaking an extension module.
      
      (Collaborative effort by Raymond Hettinger, Hye-Shik Chang, Tim Peters,
       and Armin Rigo.)
      4bb9540d
    • Hye-Shik Chang's avatar
      We have cp932 support in standard distribution now. And there's now · 4a8d42f7
      Hye-Shik Chang authored
      no major codepages unsupported by Python, so remove the eg. case.
      4a8d42f7
  6. 12 Feb, 2004 6 commits
  7. 10 Feb, 2004 7 commits
  8. 09 Feb, 2004 4 commits
  9. 08 Feb, 2004 1 commit