1. 17 Aug, 2005 1 commit
    • Raymond Hettinger's avatar
      Results of a line-by-line comparison back to dictobject.c. · f408ddf4
      Raymond Hettinger authored
      * set_merge() cannot assume that the table doesn't resize during iteration.
      
      * convert some unnecessary tests to asserts -- they were necessary in
        dictobject.c because PyDict_Next() is a public function.  The same is
        not true for set_next().
      
      * re-arrange the order of functions to more closely match the order
        in dictobject.c.  This makes it must easier to compare the two
        and ought to simplify any issues of maintaining both.
      f408ddf4
  2. 16 Aug, 2005 3 commits
  3. 15 Aug, 2005 1 commit
  4. 14 Aug, 2005 1 commit
  5. 13 Aug, 2005 5 commits
  6. 12 Aug, 2005 4 commits
  7. 11 Aug, 2005 1 commit
    • Raymond Hettinger's avatar
      * Add short-circuit code for in-place operations with self (such as · c991db24
      Raymond Hettinger authored
        s|=s, s&=s, s-=s, or s^=s).  Add related tests.
      
      * Improve names for several variables and functions.
      
      * Provide alternate table access functions (next, contains, add, and discard)
        that work with an entry argument instead of just a key.  This improves
        set-vs-set operations because we already have a hash value for each key
        and can avoid unnecessary calls to PyObject_Hash().  Provides a 5% to 20%
        speed-up for quick hashing elements like strings and integers.  Provides
        much more substantial improvements for slow hashing elements like tuples
        or objects defining a custom __hash__() function.
      
      * Have difference operations resize() when 1/5 of the elements are dummies.
        Formerly, it was 1/6.  The new ratio triggers less frequently and only
        in cases that it can resize quicker and with greater benefit.  The right
        answer is probably either 1/4, 1/5, or 1/6.  Picked the middle value for
        an even trade-off between resize time and the space/time costs of dummy
        entries.
      c991db24
  8. 09 Aug, 2005 2 commits
  9. 07 Aug, 2005 6 commits
  10. 06 Aug, 2005 3 commits
  11. 05 Aug, 2005 3 commits
  12. 03 Aug, 2005 4 commits
  13. 02 Aug, 2005 6 commits