1. 15 Nis, 2006 1 kayıt (commit)
    • Thomas Wouters's avatar
      Use Py_VISIT in all tp_traverse methods, instead of traversing manually or · c6e55068
      Thomas Wouters yazdı
      using a custom, nearly-identical macro. This probably changes how some of
      these functions are compiled, which may result in fractionally slower (or
      faster) execution. Considering the nature of traversal, visiting much of the
      address space in unpredictable patterns, I'd argue the code readability and
      maintainability is well worth it ;P
      c6e55068
  2. 30 Mar, 2006 1 kayıt (commit)
  3. 16 Şub, 2006 1 kayıt (commit)
  4. 15 Şub, 2006 1 kayıt (commit)
  5. 11 Şub, 2006 1 kayıt (commit)
  6. 24 Eyl, 2005 1 kayıt (commit)
  7. 01 Eyl, 2004 1 kayıt (commit)
  8. 12 Nis, 2004 1 kayıt (commit)
  9. 18 Mar, 2004 1 kayıt (commit)
  10. 25 Haz, 2003 1 kayıt (commit)
  11. 17 Mar, 2003 2 kayıt (commit)
  12. 16 Agu, 2002 1 kayıt (commit)
  13. 09 Agu, 2002 1 kayıt (commit)
  14. 16 Tem, 2002 1 kayıt (commit)
    • Guido van Rossum's avatar
      Make StopIteration a sink state. This is done by clearing out the · 613bed37
      Guido van Rossum yazdı
      object references (it_seq for seqiterobject, it_callable and
      it_sentinel for calliterobject) when the end of the list is reached.
      
      Also remove the next() methods -- one is supplied automatically by
      PyType_Ready() because the tp_iternext slot is set.  That's a good
      thing, because the implementation given here was buggy (it never
      raised StopIteration).
      613bed37
  15. 31 May, 2002 1 kayıt (commit)
  16. 08 May, 2002 1 kayıt (commit)
  17. 18 Mar, 2002 1 kayıt (commit)
  18. 16 Agu, 2001 1 kayıt (commit)
  19. 02 Agu, 2001 1 kayıt (commit)
  20. 12 Tem, 2001 1 kayıt (commit)
  21. 01 May, 2001 1 kayıt (commit)
  22. 23 Nis, 2001 1 kayıt (commit)
    • Guido van Rossum's avatar
      Mondo changes to the iterator stuff, without changing how Python code · 213c7a6a
      Guido van Rossum yazdı
      sees it (test_iter.py is unchanged).
      
      - Added a tp_iternext slot, which calls the iterator's next() method;
        this is much faster for built-in iterators over built-in types
        such as lists and dicts, speeding up pybench's ForLoop with about
        25% compared to Python 2.1.  (Now there's a good argument for
        iterators. ;-)
      
      - Renamed the built-in sequence iterator SeqIter, affecting the C API
        functions for it.  (This frees up the PyIter prefix for generic
        iterator operations.)
      
      - Added PyIter_Check(obj), which checks that obj's type has a
        tp_iternext slot and that the proper feature flag is set.
      
      - Added PyIter_Next(obj) which calls the tp_iternext slot.  It has a
        somewhat complex return condition due to the need for speed: when it
        returns NULL, it may not have set an exception condition, meaning
        the iterator is exhausted; when the exception StopIteration is set
        (or a derived exception class), it means the same thing; any other
        exception means some other error occurred.
      213c7a6a
  23. 20 Nis, 2001 1 kayıt (commit)