1. 29 May, 2001 18 commits
  2. 28 May, 2001 2 commits
  3. 27 May, 2001 1 commit
    • Tim Peters's avatar
      Implement an old idea of Christian Tismer's: use polynomial division · 15d4929a
      Tim Peters authored
      instead of multiplication to generate the probe sequence.  The idea is
      recorded in Python-Dev for Dec 2000, but that version is prone to rare
      infinite loops.
      
      The value is in getting *all* the bits of the hash code to participate;
      and, e.g., this speeds up querying every key in a dict with keys
       [i << 16 for i in range(20000)] by a factor of 500.  Should be equally
      valuable in any bad case where the high-order hash bits were getting
      ignored.
      
      Also wrote up some of the motivations behind Python's ever-more-subtle
      hash table strategy.
      15d4929a
  4. 26 May, 2001 4 commits
    • Jack Jansen's avatar
      When reading from stdin (with the dialog box) use any partial line on · dac238bd
      Jack Jansen authored
      stdout as the prompt. This makes raw_input() and print "xxx", ; sys.stdin.readline() work a bit more palatable.
      dac238bd
    • Tim Peters's avatar
      Change list.extend() error msgs and NEWS to reflect that list.extend() · 1af03e98
      Tim Peters authored
      now takes any iterable argument, not only sequences.
      
      NEEDS DOC CHANGES -- but I don't think we settled on a concise way to
      say this stuff.
      1af03e98
    • Tim Peters's avatar
      Cruft cleanup: removed the #ifdef'ery in support of compiling to allow · 442914d2
      Tim Peters authored
      multi-argument list.append(1, 2, 3) (as opposed to .append((1,2,3))).
      442914d2
    • Tim Peters's avatar
      roundupsize() and friends: fiddle over-allocation strategy for list · 65b8b848
      Tim Peters authored
      resizing.
      
      Accurate timings are impossible on my Win98SE box, but this is obviously
      faster even on this box for reasonable list.append() cases.  I give
      credit for this not to the resizing strategy but to getting rid of integer
      multiplication and divsion (in favor of shifting) when computing the
      rounded-up size.
      
      For unreasonable list.append() cases, Win98SE now displays linear behavior
      for one-at-time appends up to a list with about 35 million elements.  Then
      it dies with a MemoryError, due to fatally fragmented *address space*
      (there's plenty of VM available, but by this point Win9X has broken user
      space into many distinct heaps none of which has enough contiguous space
      left to resize the list, and for whatever reason Win9x isn't coalescing
      the dead heaps).  Before the patch it got a MemoryError for the same
      reason, but once the list reached about 2 million elements.
      
      Haven't yet tried on Win2K but have high hopes extreme list.append()
      will be much better behaved now (NT & Win2K didn't fragment address space,
      but suffered obvious quadratic-time behavior before as lists got large).
      
      For other systems I'm relying on common sense:  replacing integer * and /
      by << and >> can't plausibly hurt, the number of function calls hasn't
      changed, and the total operation count for reasonably small lists is about
      the same (while the operations are cheaper now).
      65b8b848
  5. 25 May, 2001 2 commits
  6. 24 May, 2001 3 commits
  7. 23 May, 2001 9 commits
  8. 22 May, 2001 1 commit