1. 11 Eyl, 2016 1 kayıt (commit)
  2. 10 Eyl, 2016 1 kayıt (commit)
  3. 02 May, 2014 1 kayıt (commit)
  4. 15 Mar, 2014 1 kayıt (commit)
  5. 27 Agu, 2013 1 kayıt (commit)
  6. 30 Tem, 2013 1 kayıt (commit)
  7. 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
  8. 15 Haz, 2013 1 kayıt (commit)
  9. 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
  10. 18 May, 2013 1 kayıt (commit)
  11. 11 Ara, 2012 1 kayıt (commit)
    • Gregory P. Smith's avatar
      Using 'long double' to force this structure to be worst case aligned is no · e348c8d1
      Gregory P. Smith yazdı
      longer required as of Python 2.5+ when the gc_refs changed from an int (4
      bytes) to a Py_ssize_t (8 bytes) as the minimum size is 16 bytes.
      
      The use of a 'long double' triggered a warning by Clang trunk's
      Undefined-Behavior Sanitizer as on many platforms a long double requires
      16-byte alignment but the Python memory allocator only guarantees 8 byte
      alignment.
      
      So our code would allocate and use these structures with technically improper
      alignment.  Though it didn't matter since the 'dummy' field is never used.
      This silences that warning.
      
      Spelunking into code history, the double was added in 2001 to force better
      alignment on some platforms and changed to a long double in 2002 to appease
      Tru64.  That issue should no loner be present since the upgrade from int to
      Py_ssize_t where the minimum structure size increased to 16 (unless anyone
      knows of a platform where ssize_t is 4 bytes?) or 24 bytes depending on if the
      build uses 4 or 8 byte pointers.
      
      We can probably get rid of the double and this union hack all together today.
      That is a slightly more invasive change that can be left for later.
      
      A more correct non-hacky alternative if any alignment issues are still found
      would be to use a compiler specific alignment declaration on the structure and
      determine which value to use at configure time.
      e348c8d1
  12. 09 Ara, 2012 1 kayıt (commit)
  13. 20 Eyl, 2012 1 kayıt (commit)
  14. 22 Haz, 2012 1 kayıt (commit)
  15. 04 Ock, 2011 1 kayıt (commit)
  16. 03 Ara, 2010 1 kayıt (commit)
  17. 09 May, 2010 4 kayıt (commit)
  18. 28 Eyl, 2009 2 kayıt (commit)
  19. 23 Mar, 2009 2 kayıt (commit)
    • Antoine Pitrou's avatar
      Merged revisions 70546 via svnmerge from · 3a652b1d
      Antoine Pitrou yazdı
      svn+ssh://pythondev@svn.python.org/python/trunk
      
      ........
        r70546 | antoine.pitrou | 2009-03-23 19:41:45 +0100 (lun., 23 mars 2009) | 9 lines
      
        Issue #4688: Add a heuristic so that tuples and dicts containing only
        untrackable objects are not tracked by the garbage collector. This can
        reduce the size of collections and therefore the garbage collection overhead
        on long-running programs, depending on their particular use of datatypes.
      
        (trivia: this makes the "binary_trees" benchmark from the Computer Language
        Shootout 40% faster)
      ........
      3a652b1d
    • Antoine Pitrou's avatar
      Issue #4688: Add a heuristic so that tuples and dicts containing only · f8387af2
      Antoine Pitrou yazdı
      untrackable objects are not tracked by the garbage collector. This can
      reduce the size of collections and therefore the garbage collection overhead
      on long-running programs, depending on their particular use of datatypes.
      
      (trivia: this makes the "binary_trees" benchmark from the Computer Language
      Shootout 40% faster)
      f8387af2
  20. 19 Ara, 2007 2 kayıt (commit)
  21. 19 Agu, 2007 1 kayıt (commit)
  22. 21 Tem, 2007 2 kayıt (commit)
    • Martin v. Löwis's avatar
      Merged revisions 56467-56482 via svnmerge from · 9f2e3469
      Martin v. Löwis yazdı
      svn+ssh://pythondev@svn.python.org/python/branches/p3yk
      
      ................
        r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines
      
        Merged revisions 56466-56476 via svnmerge from
        svn+ssh://pythondev@svn.python.org/python/trunk
      
        ........
          r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines
      
          PEP 3123: Provide forward compatibility with Python 3.0, while keeping
          backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
          PyVarObject_HEAD_INIT.
        ........
      ................
        r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines
      
        PEP 3123: Use proper C inheritance for PyObject.
      ................
        r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines
      
        Add longintrepr.h to Python.h, so that the compiler can
        see that PyFalse is really some kind of PyObject*.
      ................
        r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines
      
        Qualify SHIFT, MASK, BASE.
      ................
        r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines
      
        Correctly refer to _ob_next.
      ................
      9f2e3469
    • Martin v. Löwis's avatar
      PEP 3123: Provide forward compatibility with Python 3.0, while keeping · 6819210b
      Martin v. Löwis yazdı
      backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and
      PyVarObject_HEAD_INIT.
      6819210b
  23. 27 Tem, 2006 1 kayıt (commit)
  24. 21 Nis, 2006 1 kayıt (commit)
  25. 15 Nis, 2006 1 kayıt (commit)
    • Tim Peters's avatar
      frame_traverse(): Use the standard Py_VISIT macro. · de2acf65
      Tim Peters yazdı
      Py_VISIT:  cast the `op` argument to PyObject* when calling
      `visit()`.  Else the caller has to pay too much attention to
      this silly detail (e.g., frame_traverse needs to traverse
      `struct _frame *` and `PyCodeObject *` pointers too).
      de2acf65
  26. 26 Mar, 2006 1 kayıt (commit)
    • Tim Peters's avatar
      Years in the making. · c9d78aa4
      Tim Peters yazdı
      objimpl.h, pymem.h:  Stop mapping PyMem_{Del, DEL} and PyMem_{Free, FREE}
      to PyObject_{Free, FREE} in a release build.  They're aliases for the
      system free() now.
      
      _subprocess.c/sp_handle_dealloc():  Since the memory was originally
      obtained via PyObject_NEW, it must be released via PyObject_FREE (or
      _DEL).
      
      pythonrun.c, tokenizer.c, parsermodule.c:  I lost count of the number of
      PyObject vs PyMem mismatches in these -- it's like the specific
      function called at each site was picked at random, sometimes even with
      memory obtained via PyMem getting released via PyObject.  Changed most
      to use PyObject uniformly, since the blobs allocated are predictably
      small in most cases, and obmalloc is generally faster than system
      mallocs then.
      
      If extension modules in real life prove as sloppy as Python's front
      end, we'll have to revert the objimpl.h + pymem.h part of this patch.
      Note that no problems will show up in a debug build (all calls still go
      thru obmalloc then). Problems will show up only in a release build, most
      likely segfaults.
      c9d78aa4
  27. 04 Mar, 2006 1 kayıt (commit)
  28. 01 Mar, 2006 1 kayıt (commit)
  29. 16 Şub, 2006 1 kayıt (commit)
  30. 15 Şub, 2006 1 kayıt (commit)
  31. 26 Ock, 2006 1 kayıt (commit)
  32. 22 Tem, 2005 1 kayıt (commit)
  33. 15 Tem, 2004 1 kayıt (commit)