1. 29 May, 2016 1 kayıt (commit)
  2. 17 Nis, 2016 1 kayıt (commit)
  3. 05 Ock, 2016 1 kayıt (commit)
  4. 25 Ara, 2015 1 kayıt (commit)
  5. 14 Eki, 2015 1 kayıt (commit)
  6. 07 Eki, 2015 1 kayıt (commit)
  7. 22 Haz, 2015 1 kayıt (commit)
    • Yury Selivanov's avatar
      Issue #24400: Introduce a distinct type for 'async def' coroutines. · 5376ba96
      Yury Selivanov yazdı
      Summary of changes:
      
      1. Coroutines now have a distinct, separate from generators
         type at the C level: PyGen_Type, and a new typedef PyCoroObject.
         PyCoroObject shares the initial segment of struct layout with
         PyGenObject, making it possible to reuse existing generators
         machinery.  The new type is exposed as 'types.CoroutineType'.
      
         As a consequence of having a new type, CO_GENERATOR flag is
         no longer applied to coroutines.
      
      2. Having a separate type for coroutines made it possible to add
         an __await__ method to the type.  Although it is not used by the
         interpreter (see details on that below), it makes coroutines
         naturally (without using __instancecheck__) conform to
         collections.abc.Coroutine and collections.abc.Awaitable ABCs.
      
         [The __instancecheck__ is still used for generator-based
         coroutines, as we don't want to add __await__ for generators.]
      
      3. Add new opcode: GET_YIELD_FROM_ITER.  The opcode is needed to
         allow passing native coroutines to the YIELD_FROM opcode.
      
         Before this change, 'yield from o' expression was compiled to:
      
            (o)
            GET_ITER
            LOAD_CONST
            YIELD_FROM
      
         Now, we use GET_YIELD_FROM_ITER instead of GET_ITER.
      
         The reason for adding a new opcode is that GET_ITER is used
         in some contexts (such as 'for .. in' loops) where passing
         a coroutine object is invalid.
      
      4. Add two new introspection functions to the inspec module:
         getcoroutinestate(c) and getcoroutinelocals(c).
      
      5. inspect.iscoroutine(o) is updated to test if 'o' is a native
         coroutine object.  Before this commit it used abc.Coroutine,
         and it was requested to update inspect.isgenerator(o) to use
         abc.Generator; it was decided, however, that inspect functions
         should really be tailored for checking for native types.
      
      6. sys.set_coroutine_wrapper(w) API is updated to work with only
         native coroutines.  Since types.coroutine decorator supports
         any type of callables now, it would be confusing that it does
         not work for all types of coroutines.
      
      7. Exceptions logic in generators C implementation was updated
         to raise clearer messages for coroutines:
      
         Before: TypeError("generator raised StopIteration")
         After: TypeError("coroutine raised StopIteration")
      5376ba96
  8. 30 May, 2015 2 kayıt (commit)
  9. 02 Mar, 2015 1 kayıt (commit)
  10. 20 Kas, 2014 1 kayıt (commit)
  11. 02 Haz, 2014 1 kayıt (commit)
  12. 31 Mar, 2014 1 kayıt (commit)
  13. 09 Şub, 2014 1 kayıt (commit)
  14. 01 Ara, 2013 2 kayıt (commit)
  15. 24 Kas, 2013 1 kayıt (commit)
  16. 20 Kas, 2013 1 kayıt (commit)
  17. 07 Kas, 2013 1 kayıt (commit)
  18. 06 Kas, 2013 2 kayıt (commit)
  19. 29 Eki, 2013 1 kayıt (commit)
  20. 08 Eyl, 2013 1 kayıt (commit)
    • Raymond Hettinger's avatar
      Remove the freelist scheme for setobjects. · 8f8839e1
      Raymond Hettinger yazdı
      The setobject freelist was consuming memory but not providing much value.
      Even when a freelisted setobject was available, most of the setobject
      fields still needed to be initialized and the small table still required
      a memset().  This meant that the custom freelisting scheme for sets was
      providing almost no incremental benefit over the default Python freelist
      scheme used by _PyObject_Malloc() in Objects/obmalloc.c.
      8f8839e1
  21. 26 Agu, 2013 2 kayıt (commit)
  22. 24 Agu, 2013 1 kayıt (commit)
  23. 23 Agu, 2013 1 kayıt (commit)
  24. 13 Agu, 2013 1 kayıt (commit)
  25. 30 Tem, 2013 1 kayıt (commit)
  26. 17 Tem, 2013 2 kayıt (commit)
  27. 16 Tem, 2013 1 kayıt (commit)
  28. 07 Tem, 2013 1 kayıt (commit)
    • Victor Stinner's avatar
      Issue #3329: Implement the PEP 445 · 0507bf56
      Victor Stinner yazdı
      Add new enum:
      
      * PyMemAllocatorDomain
      
      Add new structures:
      
      * PyMemAllocator
      * PyObjectArenaAllocator
      
      Add new functions:
      
      * PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()
      * PyMem_GetAllocator(), PyMem_SetAllocator()
      * PyObject_GetArenaAllocator(), PyObject_SetArenaAllocator()
      * PyMem_SetupDebugHooks()
      
      Changes:
      
      * PyMem_Malloc()/PyObject_Realloc() now always call malloc()/realloc(), instead
        of calling PyObject_Malloc()/PyObject_Realloc() in debug mode.
      * PyObject_Malloc()/PyObject_Realloc() now falls back to
        PyMem_Malloc()/PyMem_Realloc() for allocations larger than 512 bytes.
      * Redesign debug checks on memory block allocators as hooks, instead of using C
        macros
      0507bf56
  29. 15 Haz, 2013 1 kayıt (commit)
  30. 14 Haz, 2013 1 kayıt (commit)
    • Victor Stinner's avatar
      Issue #3329: Add new APIs to customize memory allocators · 4d705625
      Victor Stinner yazdı
      * Add a new PyMemAllocators structure
      * New functions:
      
        - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree(): GIL-free memory
          allocator functions
        - PyMem_GetRawAllocators(), PyMem_SetRawAllocators()
        - PyMem_GetAllocators(), PyMem_SetAllocators()
        - PyMem_SetupDebugHooks()
        - _PyObject_GetArenaAllocators(), _PyObject_SetArenaAllocators()
      
      * Add unit test for PyMem_Malloc(0) and PyObject_Malloc(0)
      * Add unit test for new get/set allocators functions
      * PyObject_Malloc() now falls back on PyMem_Malloc() instead of malloc() if
        size is bigger than SMALL_REQUEST_THRESHOLD, and PyObject_Realloc() falls
        back on PyMem_Realloc() instead of realloc()
      * PyMem_Malloc() and PyMem_Realloc() now always call malloc() and realloc(),
        instead of calling PyObject_Malloc() and PyObject_Realloc() in debug mode
      4d705625
  31. 14 Nis, 2013 1 kayıt (commit)
  32. 02 Ock, 2013 1 kayıt (commit)
  33. 31 Eki, 2012 3 kayıt (commit)