<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/</link>
    <language>en-us</language>

    <title>cpython-lru_cache-weakref: Include/objimpl.h history</title>
    <description>Include/objimpl.h revision history</description>
    <item>
    <title>Issue #18783: Removed existing mentions of Python long type in docstrings,</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/0872257752c2/Include/objimpl.h</link>
    <description><![CDATA[Issue #18783: Removed existing mentions of Python long type in docstrings,<br/>
error messages and comments.]]></description>
    <author>&#83;&#101;&#114;&#104;&#105;&#121;&#32;&#83;&#116;&#111;&#114;&#99;&#104;&#97;&#107;&#97;&#32;&#60;&#115;&#116;&#111;&#114;&#99;&#104;&#97;&#107;&#97;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 27 Aug 2013 20:17:03 +0300</pubDate>
</item>
<item>
    <title>Issue #18112: PEP 442 implementation (safe object finalization).</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/3f994367a979/Include/objimpl.h</link>
    <description><![CDATA[Issue #18112: PEP 442 implementation (safe object finalization).]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Tue, 30 Jul 2013 19:59:21 +0200</pubDate>
</item>
<item>
    <title>Issue #3329: Implement the PEP 445</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/ca78c974e938/Include/objimpl.h</link>
    <description><![CDATA[Issue #3329: Implement the PEP 445<br/>
<br/>
Add new enum:<br/>
<br/>
* PyMemAllocatorDomain<br/>
<br/>
Add new structures:<br/>
<br/>
* PyMemAllocator<br/>
* PyObjectArenaAllocator<br/>
<br/>
Add new functions:<br/>
<br/>
* PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()<br/>
* PyMem_GetAllocator(), PyMem_SetAllocator()<br/>
* PyObject_GetArenaAllocator(), PyObject_SetArenaAllocator()<br/>
* PyMem_SetupDebugHooks()<br/>
<br/>
Changes:<br/>
<br/>
* PyMem_Malloc()/PyObject_Realloc() now always call malloc()/realloc(), instead<br/>
  of calling PyObject_Malloc()/PyObject_Realloc() in debug mode.<br/>
* PyObject_Malloc()/PyObject_Realloc() now falls back to<br/>
  PyMem_Malloc()/PyMem_Realloc() for allocations larger than 512 bytes.<br/>
* Redesign debug checks on memory block allocators as hooks, instead of using C<br/>
  macros]]></description>
    <author>&#86;&#105;&#99;&#116;&#111;&#114;&#32;&#83;&#116;&#105;&#110;&#110;&#101;&#114;&#32;&#60;&#118;&#105;&#99;&#116;&#111;&#114;&#46;&#115;&#116;&#105;&#110;&#110;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 07 Jul 2013 02:05:46 +0200</pubDate>
</item>
<item>
    <title>Revert changeset 6661a8154eb3: Issue #3329: Add new APIs to customize memory allocators</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b1455dd08000/Include/objimpl.h</link>
    <description><![CDATA[Revert changeset 6661a8154eb3: Issue #3329: Add new APIs to customize memory allocators<br/>
<br/>
The new API require more discussion.]]></description>
    <author>&#86;&#105;&#99;&#116;&#111;&#114;&#32;&#83;&#116;&#105;&#110;&#110;&#101;&#114;&#32;&#60;&#118;&#105;&#99;&#116;&#111;&#114;&#46;&#115;&#116;&#105;&#110;&#110;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 15 Jun 2013 03:37:01 +0200</pubDate>
</item>
<item>
    <title>Issue #3329: Add new APIs to customize memory allocators</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/6661a8154eb3/Include/objimpl.h</link>
    <description><![CDATA[Issue #3329: Add new APIs to customize memory allocators<br/>
<br/>
* Add a new PyMemAllocators structure<br/>
* New functions:<br/>
<br/>
  - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree(): GIL-free memory<br/>
    allocator functions<br/>
  - PyMem_GetRawAllocators(), PyMem_SetRawAllocators()<br/>
  - PyMem_GetAllocators(), PyMem_SetAllocators()<br/>
  - PyMem_SetupDebugHooks()<br/>
  - _PyObject_GetArenaAllocators(), _PyObject_SetArenaAllocators()<br/>
<br/>
* Add unit test for PyMem_Malloc(0) and PyObject_Malloc(0)<br/>
* Add unit test for new get/set allocators functions<br/>
* PyObject_Malloc() now falls back on PyMem_Malloc() instead of malloc() if<br/>
  size is bigger than SMALL_REQUEST_THRESHOLD, and PyObject_Realloc() falls<br/>
  back on PyMem_Realloc() instead of realloc()<br/>
* PyMem_Malloc() and PyMem_Realloc() now always call malloc() and realloc(),<br/>
  instead of calling PyObject_Malloc() and PyObject_Realloc() in debug mode]]></description>
    <author>&#86;&#105;&#99;&#116;&#111;&#114;&#32;&#83;&#116;&#105;&#110;&#110;&#101;&#114;&#32;&#60;&#118;&#105;&#99;&#116;&#111;&#114;&#46;&#115;&#116;&#105;&#110;&#110;&#101;&#114;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 15 Jun 2013 00:37:46 +0200</pubDate>
</item>
<item>
    <title>Issue #17937: Try harder to collect cyclic garbage at shutdown.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/5abe85aefe29/Include/objimpl.h</link>
    <description><![CDATA[Issue #17937: Try harder to collect cyclic garbage at shutdown.]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 19 May 2013 01:11:58 +0200</pubDate>
</item>
<item>
    <title>Using 'long double' to force this structure to be worst case aligned is no</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/d61a1be9f5c5/Include/objimpl.h</link>
    <description><![CDATA[Using 'long double' to force this structure to be worst case aligned is no<br/>
longer required as of Python 2.5+ when the gc_refs changed from an int (4<br/>
bytes) to a Py_ssize_t (8 bytes) as the minimum size is 16 bytes.<br/>
<br/>
The use of a 'long double' triggered a warning by Clang trunk's<br/>
Undefined-Behavior Sanitizer as on many platforms a long double requires<br/>
16-byte alignment but the Python memory allocator only guarantees 8 byte<br/>
alignment.<br/>
<br/>
So our code would allocate and use these structures with technically improper<br/>
alignment.  Though it didn't matter since the 'dummy' field is never used.<br/>
This silences that warning.<br/>
<br/>
Spelunking into code history, the double was added in 2001 to force better<br/>
alignment on some platforms and changed to a long double in 2002 to appease<br/>
Tru64.  That issue should no loner be present since the upgrade from int to<br/>
Py_ssize_t where the minimum structure size increased to 16 (unless anyone<br/>
knows of a platform where ssize_t is 4 bytes?) or 24 bytes depending on if the<br/>
build uses 4 or 8 byte pointers.<br/>
<br/>
We can probably get rid of the double and this union hack all together today.<br/>
That is a slightly more invasive change that can be left for later.<br/>
<br/>
A more correct non-hacky alternative if any alignment issues are still found<br/>
would be to use a compiler specific alignment declaration on the structure and<br/>
determine which value to use at configure time.]]></description>
    <author>&#71;&#114;&#101;&#103;&#111;&#114;&#121;&#32;&#80;&#46;&#32;&#83;&#109;&#105;&#116;&#104;&#32;&#60;&#103;&#114;&#101;&#103;&#64;&#107;&#114;&#121;&#112;&#116;&#111;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Mon, 10 Dec 2012 18:05:05 -0800</pubDate>
</item>
<item>
    <title>Issue #13390: New function :func:`sys.getallocatedblocks()` returns the number of memory blocks currently allocated.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/c40f4c19d20b/Include/objimpl.h</link>
    <description><![CDATA[Issue #13390: New function :func:`sys.getallocatedblocks()` returns the number of memory blocks currently allocated.<br/>
Also, the ``-R`` option to regrtest uses this function to guard against memory allocation leaks.]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 09 Dec 2012 14:28:26 +0100</pubDate>
</item>
<item>
    <title>Issue #18783: Removed existing mentions of Python long type in docstrings,</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/4d62a62ba44d/Include/objimpl.h</link>
    <description><![CDATA[Issue #18783: Removed existing mentions of Python long type in docstrings,<br/>
error messages and comments.]]></description>
    <author>&#83;&#101;&#114;&#104;&#105;&#121;&#32;&#83;&#116;&#111;&#114;&#99;&#104;&#97;&#107;&#97;&#32;&#60;&#115;&#116;&#111;&#114;&#99;&#104;&#97;&#107;&#97;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 27 Aug 2013 19:40:23 +0300</pubDate>
</item>
<item>
    <title>Issue #15144: Fix possible integer overflow when handling pointers as integer values, by using Py_uintptr_t instead of size_t.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/99112b851b25/Include/objimpl.h</link>
    <description><![CDATA[Issue #15144: Fix possible integer overflow when handling pointers as integer values, by using Py_uintptr_t instead of size_t.<br/>
Patch by Serhiy Storchaka.]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Thu, 20 Sep 2012 20:56:47 +0200</pubDate>
</item>
<item>
    <title>Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/d63a80abfbec/Include/objimpl.h</link>
    <description><![CDATA[Issue #14785: Add sys._debugmallocstats() to help debug low-level memory allocation issues]]></description>
    <author>&#68;&#97;&#118;&#105;&#100;&#32;&#77;&#97;&#108;&#99;&#111;&#108;&#109;&#32;&#60;&#100;&#109;&#97;&#108;&#99;&#111;&#108;&#109;&#64;&#114;&#101;&#100;&#104;&#97;&#116;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 22 Jun 2012 14:55:41 -0400</pubDate>
</item>
<item>
    <title>Dummy-merge 3.1 branch into 3.2 branch.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/3c9232a684ae/Include/objimpl.h</link>
    <description><![CDATA[Dummy-merge 3.1 branch into 3.2 branch.]]></description>
    <author>&#71;&#101;&#111;&#114;&#103;&#32;&#66;&#114;&#97;&#110;&#100;&#108;&#32;&#60;&#103;&#101;&#111;&#114;&#103;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Sat, 05 Mar 2011 15:15:55 +0100</pubDate>
</item>
<item>
    <title>Issue #10333: Remove ancient GC API, which has been deprecated since</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/8b848d3c6ad0/Include/objimpl.h</link>
    <description><![CDATA[Issue #10333: Remove ancient GC API, which has been deprecated since<br/>
Python 2.2.]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Tue, 04 Jan 2011 00:00:31 +0000</pubDate>
</item>
<item>
    <title>Merge branches/pep-0384.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/62b61abd02b8/Include/objimpl.h</link>
    <description><![CDATA[Merge branches/pep-0384.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Fri, 03 Dec 2010 20:14:31 +0000</pubDate>
</item>
<item>
    <title>Recorded merge of revisions 81029 via svnmerge from</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/cab14be0ada1/Include/objimpl.h</link>
    <description><![CDATA[Recorded merge of revisions 81029 via svnmerge from<br/>
svn+ssh://pythondev@svn.python.org/python/trunk<br/>
<br/>
........<br/>
  r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines<br/>
<br/>
  Untabify C files. Will watch buildbots.<br/>
........]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 09 May 2010 15:52:27 +0000</pubDate>
</item>
<item>
    <title>http://bugs.python.org/issue6836</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b6aff7a59803/Include/objimpl.h</link>
    <description><![CDATA[http://bugs.python.org/issue6836<br/>
Merging revisions 75103,75104 from trunk to py3k]]></description>
    <author>&#75;&#114;&#105;&#115;&#116;&#106;&#225;&#110;&#32;&#86;&#97;&#108;&#117;&#114;&#32;&#74;&#243;&#110;&#115;&#115;&#111;&#110;&#32;&#60;&#107;&#114;&#105;&#115;&#116;&#106;&#97;&#110;&#64;&#99;&#99;&#112;&#103;&#97;&#109;&#101;&#115;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 28 Sep 2009 13:45:02 +0000</pubDate>
</item>
<item>
    <title>Recorded merge of revisions 81032 via svnmerge from</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/f197407bdba2/Include/objimpl.h</link>
    <description><![CDATA[Recorded merge of revisions 81032 via svnmerge from<br/>
svn+ssh://pythondev@svn.python.org/python/branches/py3k<br/>
<br/>
................<br/>
  r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines<br/>
<br/>
  Recorded merge of revisions 81029 via svnmerge from<br/>
  svn+ssh://pythondev@svn.python.org/python/trunk<br/>
<br/>
  ........<br/>
    r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines<br/>
<br/>
    Untabify C files. Will watch buildbots.<br/>
  ........<br/>
................]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 09 May 2010 16:14:21 +0000</pubDate>
</item>
<item>
    <title>Merged revisions 70546 via svnmerge from</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/94bd0666ffa7/Include/objimpl.h</link>
    <description><![CDATA[Merged revisions 70546 via svnmerge from<br/>
svn+ssh://pythondev@svn.python.org/python/trunk<br/>
<br/>
........<br/>
  r70546 | antoine.pitrou | 2009-03-23 19:41:45 +0100 (lun., 23 mars 2009) | 9 lines<br/>
<br/>
  Issue #4688: Add a heuristic so that tuples and dicts containing only<br/>
  untrackable objects are not tracked by the garbage collector. This can<br/>
  reduce the size of collections and therefore the garbage collection overhead<br/>
  on long-running programs, depending on their particular use of datatypes.<br/>
<br/>
  (trivia: this makes the &quot;binary_trees&quot; benchmark from the Computer Language<br/>
  Shootout 40% faster)<br/>
........]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Mon, 23 Mar 2009 18:52:06 +0000</pubDate>
</item>
<item>
    <title>#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/86a2679dca46/Include/objimpl.h</link>
    <description><![CDATA[#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT.]]></description>
    <author>&#67;&#104;&#114;&#105;&#115;&#116;&#105;&#97;&#110;&#32;&#72;&#101;&#105;&#109;&#101;&#115;&#32;&#60;&#99;&#104;&#114;&#105;&#115;&#116;&#105;&#97;&#110;&#64;&#99;&#104;&#101;&#105;&#109;&#101;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Wed, 19 Dec 2007 02:45:37 +0000</pubDate>
</item>
<item>
    <title>Remove _PyObject_Del</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/692f57a5dc76/Include/objimpl.h</link>
    <description><![CDATA[Remove _PyObject_Del]]></description>
    <author>&#78;&#101;&#97;&#108;&#32;&#78;&#111;&#114;&#119;&#105;&#116;&#122;&#32;&#60;&#110;&#110;&#111;&#114;&#119;&#105;&#116;&#122;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 19 Aug 2007 22:48:23 +0000</pubDate>
</item>
<item>
    <title>Merged revisions 56467-56482 via svnmerge from</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/e70cdce0e8b2/Include/objimpl.h</link>
    <description><![CDATA[Merged revisions 56467-56482 via svnmerge from<br/>
svn+ssh://pythondev@svn.python.org/python/branches/p3yk<br/>
<br/>
................<br/>
  r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines<br/>
<br/>
  Merged revisions 56466-56476 via svnmerge from<br/>
  svn+ssh://pythondev@svn.python.org/python/trunk<br/>
<br/>
  ........<br/>
    r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines<br/>
<br/>
    PEP 3123: Provide forward compatibility with Python 3.0, while keeping<br/>
    backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and<br/>
    PyVarObject_HEAD_INIT.<br/>
  ........<br/>
................<br/>
  r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines<br/>
<br/>
  PEP 3123: Use proper C inheritance for PyObject.<br/>
................<br/>
  r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines<br/>
<br/>
  Add longintrepr.h to Python.h, so that the compiler can<br/>
  see that PyFalse is really some kind of PyObject*.<br/>
................<br/>
  r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines<br/>
<br/>
  Qualify SHIFT, MASK, BASE.<br/>
................<br/>
  r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines<br/>
<br/>
  Correctly refer to _ob_next.<br/>
................]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Sat, 21 Jul 2007 17:22:18 +0000</pubDate>
</item>
<item>
    <title>Get rid of most of the flags (in tp_flags) that keep track of various</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b0cdcbcc5f45/Include/objimpl.h</link>
    <description><![CDATA[Get rid of most of the flags (in tp_flags) that keep track of various<br/>
variations of the type struct and its attachments.  In Py3k, all type<br/>
structs have to have all fields -- no binary backwards compatibility.<br/>
Had to change the complex object to a new-style number!]]></description>
    <author>&#71;&#117;&#105;&#100;&#111;&#32;&#118;&#97;&#110;&#32;&#82;&#111;&#115;&#115;&#117;&#109;&#32;&#60;&#103;&#117;&#105;&#100;&#111;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Thu, 27 Jul 2006 21:53:35 +0000</pubDate>
</item>
<item>
    <title>Merge p3yk branch with the trunk up to revision 45595. This breaks a fair</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/f731859e9b3b/Include/objimpl.h</link>
    <description><![CDATA[Merge p3yk branch with the trunk up to revision 45595. This breaks a fair<br/>
number of tests, all because of the codecs/_multibytecodecs issue described<br/>
here (it's not a Py3K issue, just something Py3K discovers):<br/>
http://mail.python.org/pipermail/python-dev/2006-April/064051.html<br/>
<br/>
Hye-Shik Chang promised to look for a fix, so no need to fix it here. The<br/>
tests that are expected to break are:<br/>
<br/>
test_codecencodings_cn<br/>
test_codecencodings_hk<br/>
test_codecencodings_jp<br/>
test_codecencodings_kr<br/>
test_codecencodings_tw<br/>
test_codecs<br/>
test_multibytecodec<br/>
<br/>
This merge fixes an actual test failure (test_weakref) in this branch,<br/>
though, so I believe merging is the right thing to do anyway.]]></description>
    <author>&#84;&#104;&#111;&#109;&#97;&#115;&#32;&#87;&#111;&#117;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#104;&#111;&#109;&#97;&#115;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Fri, 21 Apr 2006 10:40:58 +0000</pubDate>
</item>
<item>
    <title>Dummy-merge 2.6 branch into 2.7 branch.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b36cb4602e21/Include/objimpl.h</link>
    <description><![CDATA[Dummy-merge 2.6 branch into 2.7 branch.]]></description>
    <author>&#71;&#101;&#111;&#114;&#103;&#32;&#66;&#114;&#97;&#110;&#100;&#108;&#32;&#60;&#103;&#101;&#111;&#114;&#103;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Sat, 05 Mar 2011 15:15:07 +0100</pubDate>
</item>
<item>
    <title>Untabify C files. Will watch buildbots.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/fd25030223b0/Include/objimpl.h</link>
    <description><![CDATA[Untabify C files. Will watch buildbots.]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 09 May 2010 14:46:46 +0000</pubDate>
</item>
<item>
    <title>http://bugs.python.org/issue6836</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/ab49e0ac8c8f/Include/objimpl.h</link>
    <description><![CDATA[http://bugs.python.org/issue6836<br/>
The debug memory api now keeps track of which external API (PyMem_* or PyObject_*) was used to allocate each block and treats any API violation as an error.  Added separate _PyMem_DebugMalloc functions for the Py_Mem API instead of having it use the _PyObject_DebugMalloc functions.]]></description>
    <author>&#75;&#114;&#105;&#115;&#116;&#106;&#225;&#110;&#32;&#86;&#97;&#108;&#117;&#114;&#32;&#74;&#243;&#110;&#115;&#115;&#111;&#110;&#32;&#60;&#107;&#114;&#105;&#115;&#116;&#106;&#97;&#110;&#64;&#99;&#99;&#112;&#103;&#97;&#109;&#101;&#115;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 28 Sep 2009 13:12:38 +0000</pubDate>
</item>
<item>
    <title>Issue #4688: Add a heuristic so that tuples and dicts containing only</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/0e498a9fde3c/Include/objimpl.h</link>
    <description><![CDATA[Issue #4688: Add a heuristic so that tuples and dicts containing only<br/>
untrackable objects are not tracked by the garbage collector. This can<br/>
reduce the size of collections and therefore the garbage collection overhead<br/>
on long-running programs, depending on their particular use of datatypes.<br/>
<br/>
(trivia: this makes the &quot;binary_trees&quot; benchmark from the Computer Language<br/>
Shootout 40% faster)]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Mon, 23 Mar 2009 18:41:45 +0000</pubDate>
</item>
<item>
    <title>Recorded merge of revisions 81029 via svnmerge from</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/e38335d4df91/Include/objimpl.h</link>
    <description><![CDATA[Recorded merge of revisions 81029 via svnmerge from<br/>
svn+ssh://pythondev@svn.python.org/python/trunk<br/>
<br/>
........<br/>
  r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines<br/>
<br/>
  Untabify C files. Will watch buildbots.<br/>
........]]></description>
    <author>&#65;&#110;&#116;&#111;&#105;&#110;&#101;&#32;&#80;&#105;&#116;&#114;&#111;&#117;&#32;&#60;&#115;&#111;&#108;&#105;&#112;&#115;&#105;&#115;&#64;&#112;&#105;&#116;&#114;&#111;&#117;&#46;&#110;&#101;&#116;&#62;</author>
    <pubDate>Sun, 09 May 2010 15:15:40 +0000</pubDate>
</item>
<item>
    <title>#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/26384b8180c7/Include/objimpl.h</link>
    <description><![CDATA[#1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and Py_REFCNT. Macros for b/w compatibility are available.]]></description>
    <author>&#67;&#104;&#114;&#105;&#115;&#116;&#105;&#97;&#110;&#32;&#72;&#101;&#105;&#109;&#101;&#115;&#32;&#60;&#99;&#104;&#114;&#105;&#115;&#116;&#105;&#97;&#110;&#64;&#99;&#104;&#101;&#105;&#109;&#101;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Wed, 19 Dec 2007 02:37:44 +0000</pubDate>
</item>
<item>
    <title>PEP 3123: Provide forward compatibility with Python 3.0, while keeping</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/6620a510e9a9/Include/objimpl.h</link>
    <description><![CDATA[PEP 3123: Provide forward compatibility with Python 3.0, while keeping<br/>
backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and<br/>
PyVarObject_HEAD_INIT.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Sat, 21 Jul 2007 06:55:02 +0000</pubDate>
</item>
<item>
    <title>frame_traverse():  Use the standard Py_VISIT macro.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/588f97b24bf9/Include/objimpl.h</link>
    <description><![CDATA[frame_traverse():  Use the standard Py_VISIT macro.<br/>
<br/>
Py_VISIT:  cast the `op` argument to PyObject* when calling<br/>
`visit()`.  Else the caller has to pay too much attention to<br/>
this silly detail (e.g., frame_traverse needs to traverse<br/>
`struct _frame *` and `PyCodeObject *` pointers too).]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 15 Apr 2006 03:22:46 +0000</pubDate>
</item>
<item>
    <title>Years in the making.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/6e1a899cac8e/Include/objimpl.h</link>
    <description><![CDATA[Years in the making.<br/>
<br/>
objimpl.h, pymem.h:  Stop mapping PyMem_{Del, DEL} and PyMem_{Free, FREE}<br/>
to PyObject_{Free, FREE} in a release build.  They're aliases for the<br/>
system free() now.<br/>
<br/>
_subprocess.c/sp_handle_dealloc():  Since the memory was originally<br/>
obtained via PyObject_NEW, it must be released via PyObject_FREE (or<br/>
_DEL).<br/>
<br/>
pythonrun.c, tokenizer.c, parsermodule.c:  I lost count of the number of<br/>
PyObject vs PyMem mismatches in these -- it's like the specific<br/>
function called at each site was picked at random, sometimes even with<br/>
memory obtained via PyMem getting released via PyObject.  Changed most<br/>
to use PyObject uniformly, since the blobs allocated are predictably<br/>
small in most cases, and obmalloc is generally faster than system<br/>
mallocs then.<br/>
<br/>
If extension modules in real life prove as sloppy as Python's front<br/>
end, we'll have to revert the objimpl.h + pymem.h part of this patch.<br/>
Note that no problems will show up in a debug build (all calls still go<br/>
thru obmalloc then). Problems will show up only in a release build, most<br/>
likely segfaults.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 26 Mar 2006 23:27:58 +0000</pubDate>
</item>
<item>
    <title>Make PyGC_Collect() use Py_ssize_t.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/7c1aca8e3d7d/Include/objimpl.h</link>
    <description><![CDATA[Make PyGC_Collect() use Py_ssize_t.]]></description>
    <author>&#78;&#101;&#97;&#108;&#32;&#78;&#111;&#114;&#119;&#105;&#116;&#122;&#32;&#60;&#110;&#110;&#111;&#114;&#119;&#105;&#116;&#122;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 04 Mar 2006 20:01:53 +0000</pubDate>
</item>
<item>
    <title>Change GC refcount to Py_ssize_t.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/ab1b53d54901/Include/objimpl.h</link>
    <description><![CDATA[Change GC refcount to Py_ssize_t.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Wed, 01 Mar 2006 16:56:25 +0000</pubDate>
</item>
<item>
    <title>Change _PyObject_GC_Resize to expect Py_ssize_t.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/4c8606191c0c/Include/objimpl.h</link>
    <description><![CDATA[Change _PyObject_GC_Resize to expect Py_ssize_t.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Thu, 16 Feb 2006 14:56:14 +0000</pubDate>
</item>
<item>
    <title>Merge ssize_t branch.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/7fdc639bc5b4/Include/objimpl.h</link>
    <description><![CDATA[Merge ssize_t branch.]]></description>
    <author>&#77;&#97;&#114;&#116;&#105;&#110;&#32;&#118;&#46;&#32;&#76;&#246;&#119;&#105;&#115;&#32;&#60;&#109;&#97;&#114;&#116;&#105;&#110;&#64;&#118;&#46;&#108;&#111;&#101;&#119;&#105;&#115;&#46;&#100;&#101;&#62;</author>
    <pubDate>Wed, 15 Feb 2006 17:27:45 +0000</pubDate>
</item>
<item>
    <title>Fix PyGC_Collect() to be exported from the built DLL on Windows.  (Fix given</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/cde6ea091aaa/Include/objimpl.h</link>
    <description><![CDATA[Fix PyGC_Collect() to be exported from the built DLL on Windows.  (Fix given<br/>
by Matt Messier).]]></description>
    <author>&#66;&#97;&#114;&#114;&#121;&#32;&#87;&#97;&#114;&#115;&#97;&#119;&#32;&#60;&#98;&#97;&#114;&#114;&#121;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Thu, 26 Jan 2006 18:59:06 +0000</pubDate>
</item>
<item>
    <title>[ 1243081 ] repair typos</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/9d838dd967b2/Include/objimpl.h</link>
    <description><![CDATA[[ 1243081 ] repair typos]]></description>
    <author>&#71;&#101;&#111;&#114;&#103;&#32;&#66;&#114;&#97;&#110;&#100;&#108;&#32;&#60;&#103;&#101;&#111;&#114;&#103;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Fri, 22 Jul 2005 18:40:02 +0000</pubDate>
</item>
<item>
    <title>Formalize that the Py_VISIT macro requires that the tp_traverse</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/cada2e9b685c/Include/objimpl.h</link>
    <description><![CDATA[Formalize that the Py_VISIT macro requires that the tp_traverse<br/>
implementation it's used in must give its arguments specific names.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 15 Jul 2004 04:05:59 +0000</pubDate>
</item>
<item>
    <title>Documented the new Py_VISIT macro to simplify implementation of</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/52beafd936c8/Include/objimpl.h</link>
    <description><![CDATA[Documented the new Py_VISIT macro to simplify implementation of<br/>
tp_traverse handlers. (Tim made me do it. ;)]]></description>
    <author>&#74;&#105;&#109;&#32;&#70;&#117;&#108;&#116;&#111;&#110;&#32;&#60;&#106;&#105;&#109;&#64;&#122;&#111;&#112;&#101;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 14 Jul 2004 19:08:17 +0000</pubDate>
</item>
<item>
    <title>- New C API PyGC_Collect(), same as calling gc.collect().</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/7fda09f751ad/Include/objimpl.h</link>
    <description><![CDATA[- New C API PyGC_Collect(), same as calling gc.collect().<br/>
- Call this in Py_Finalize().<br/>
- Expand the Misc/NEWS text on PY_LONG_LONG.]]></description>
    <author>&#71;&#117;&#105;&#100;&#111;&#32;&#118;&#97;&#110;&#32;&#82;&#111;&#115;&#115;&#117;&#109;&#32;&#60;&#103;&#117;&#105;&#100;&#111;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Thu, 17 Apr 2003 17:29:22 +0000</pubDate>
</item>
<item>
    <title>Excise DL_EXPORT from Include.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/c1eb668525e1/Include/objimpl.h</link>
    <description><![CDATA[Excise DL_EXPORT from Include.<br/>
<br/>
Thanks to Skip Montanaro and Kalle Svensson for the patches.]]></description>
    <author>&#77;&#97;&#114;&#107;&#32;&#72;&#97;&#109;&#109;&#111;&#110;&#100;&#32;&#60;&#109;&#104;&#97;&#109;&#109;&#111;&#110;&#100;&#64;&#115;&#107;&#105;&#112;&#112;&#105;&#110;&#101;&#116;&#46;&#99;&#111;&#109;&#46;&#97;&#117;&#62;</author>
    <pubDate>Mon, 12 Aug 2002 07:21:58 +0000</pubDate>
</item>
<item>
    <title>Removed WITH_CYCLE_GC #ifdef-ery.  Holes:</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/bf3421a28744/Include/objimpl.h</link>
    <description><![CDATA[Removed WITH_CYCLE_GC #ifdef-ery.  Holes:<br/>
<br/>
+ I'm not sure what to do about configure.in.  Left it alone.<br/>
<br/>
+ Ditto pyexpat.c.  Fred or Martin will know what to do.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 07 Jul 2002 03:59:34 +0000</pubDate>
</item>
<item>
    <title>Finished transitioning to using gc_refs to track gc objects' states.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/22d2f037af9d/Include/objimpl.h</link>
    <description><![CDATA[Finished transitioning to using gc_refs to track gc objects' states.<br/>
This was mostly a matter of adding comments and light code rearrangement.<br/>
Upon untracking, gc_next is still set to NULL.  It's a cheap way to<br/>
provoke memory faults if calling code is insane.  It's also used in some<br/>
way by the trashcan mechanism.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 02 Jul 2002 18:12:35 +0000</pubDate>
</item>
<item>
    <title>Reserved another gc_refs value for untracked objects.  Every live gc</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/a5162fd65c3d/Include/objimpl.h</link>
    <description><![CDATA[Reserved another gc_refs value for untracked objects.  Every live gc<br/>
object should now have a well-defined gc_refs value, with clear transitions<br/>
among gc_refs states.  As a result, none of the visit_XYZ traversal<br/>
callbacks need to check IS_TRACKED() anymore, and those tests were removed.<br/>
(They were already looking for objects with specific gc_refs states, and<br/>
the gc_refs state of an untracked object can no longer match any other<br/>
gc_refs state by accident.)<br/>
Added more asserts.<br/>
I expect that the gc_next == NULL indicator for an untracked object is<br/>
now redundant and can also be removed, but I ran out of time for this.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 02 Jul 2002 00:52:30 +0000</pubDate>
</item>
<item>
    <title>_PyGC_generation0 is now a pointer</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/4d6beab766e2/Include/objimpl.h</link>
    <description><![CDATA[_PyGC_generation0 is now a pointer]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Sat, 04 May 2002 05:36:06 +0000</pubDate>
</item>
<item>
    <title>Moving pymalloc along.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/08e6f94f3ab0/Include/objimpl.h</link>
    <description><![CDATA[Moving pymalloc along.<br/>
<br/>
As threatened, PyMem_{Free, FREE} also invoke the object deallocator now<br/>
when pymalloc is enabled (well, it does when pymalloc isn't enabled too,<br/>
but in that case &quot;the object deallocator&quot; is plain free()).<br/>
<br/>
This is maximally backward-compatible, but it leaves a bitter aftertaste.<br/>
<br/>
Also massive reworking of comments.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 28 Apr 2002 04:11:46 +0000</pubDate>
</item>
<item>
    <title>_PyObject_DebugDumpStats:  renamed to _PyObject_DebugMallocStats.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/e2848618bd19/Include/objimpl.h</link>
    <description><![CDATA[_PyObject_DebugDumpStats:  renamed to _PyObject_DebugMallocStats.<br/>
Added code to call this when PYMALLOC_DEBUG is enabled, and envar<br/>
PYTHONMALLOCSTATS is set, whenever a new arena is obtained and once<br/>
late in the Python shutdown process.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 13 Apr 2002 08:29:14 +0000</pubDate>
</item>
<item>
    <title>First cut at repairing out-of-date comments; make alignment of macro defs</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/c5a67f50532e/Include/objimpl.h</link>
    <description><![CDATA[First cut at repairing out-of-date comments; make alignment of macro defs<br/>
all the same within the #ifdef WITH_PYMALLOC block.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 12 Apr 2002 05:21:34 +0000</pubDate>
</item>
<item>
    <title>Remove PyMalloc_* symbols.  PyObject_Malloc now uses pymalloc if</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/f93a26d1bfa0/Include/objimpl.h</link>
    <description><![CDATA[Remove PyMalloc_* symbols.  PyObject_Malloc now uses pymalloc if<br/>
it's enabled.<br/>
<br/>
Allow PyObject_Del, PyObject_Free, and PyObject_GC_Del to be used as<br/>
function designators.  Provide source compatibility macros.<br/>
<br/>
Make PyObject_GC_Track and PyObject_GC_UnTrack functions instead of<br/>
trivial macros wrapping functions.]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Fri, 12 Apr 2002 02:38:45 +0000</pubDate>
</item>
<item>
    <title>Add _Py_AS_GC macro.  It will be used by the trashcan code on object.c.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/349404426faa/Include/objimpl.h</link>
    <description><![CDATA[Add _Py_AS_GC macro.  It will be used by the trashcan code on object.c.]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Thu, 28 Mar 2002 21:06:16 +0000</pubDate>
</item>
<item>
    <title>Make PyObject_{NEW,New,Del,DEL} always use the standard malloc (PyMem_*)</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/72fd8416984b/Include/objimpl.h</link>
    <description><![CDATA[Make PyObject_{NEW,New,Del,DEL} always use the standard malloc (PyMem_*)<br/>
and not pymalloc.  Add the functions PyMalloc_New, PyMalloc_NewVar, and<br/>
PyMalloc_Del that will use pymalloc if it's enabled.   If pymalloc is<br/>
not enabled then they use the standard malloc (PyMem_*).]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Fri, 22 Mar 2002 15:25:18 +0000</pubDate>
</item>
<item>
    <title>Drop the PyCore_* memory API.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/984eb995fb9e/Include/objimpl.h</link>
    <description><![CDATA[Drop the PyCore_* memory API.]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Mon, 18 Mar 2002 21:06:21 +0000</pubDate>
</item>
<item>
    <title>Simpilify PyCore_* macros by assuming the function prototypes for</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/e88d5e2687ee/Include/objimpl.h</link>
    <description><![CDATA[Simpilify PyCore_* macros by assuming the function prototypes for<br/>
malloc() and free() don't change.]]></description>
    <author>&#78;&#101;&#105;&#108;&#32;&#83;&#99;&#104;&#101;&#109;&#101;&#110;&#97;&#117;&#101;&#114;&#32;&#60;&#110;&#97;&#115;&#99;&#104;&#101;&#109;&#101;&#64;&#101;&#110;&#109;&#101;&#46;&#117;&#99;&#97;&#108;&#103;&#97;&#114;&#121;&#46;&#99;&#97;&#62;</author>
    <pubDate>Mon, 18 Mar 2002 18:13:41 +0000</pubDate>
</item>
<item>
    <title>PyGC_Head:  Use &quot;long double&quot; instead of &quot;double&quot; as the worst-case</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/7065135f9202/Include/objimpl.h</link>
    <description><![CDATA[PyGC_Head:  Use &quot;long double&quot; instead of &quot;double&quot; as the worst-case<br/>
alignment gimmick.  David Abrahams notes that the standard &quot;long double&quot;<br/>
actually requires stricter alignment than &quot;double&quot; on some Tru64 box.<br/>
On my box and yours &lt;wink&gt;, it's the same, so no harm done on most<br/>
boxes.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 28 Feb 2002 19:38:51 +0000</pubDate>
</item>
<item>
    <title>SF bug [#467145] Python 2.2a4 build problem on HPUX 11.0.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b4f829941f3d/Include/objimpl.h</link>
    <description><![CDATA[SF bug [#467145] Python 2.2a4 build problem on HPUX 11.0.<br/>
The platform requires 8-byte alignment for doubles, but the GC header<br/>
was 12 bytes and that threw off the natural alignment of the double<br/>
members of a subtype of complex.  The fix puts the GC header into a<br/>
union with a double as the other member, to force no-looser-than<br/>
double alignment of GC headers.  On boxes that require 8-byte alignment<br/>
for doubles, this may add pad bytes to the GC header accordingly; ditto<br/>
for platforms that *prefer* 8-byte alignment for doubles.  On platforms<br/>
that don't care, it shouldn't change the memory layout (because the<br/>
size of the old GC header is certainly greater than the size of a double<br/>
on all platforms, so unioning with a double shouldn't change size or<br/>
alignment on such boxes).]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 11 Oct 2001 18:31:31 +0000</pubDate>
</item>
<item>
    <title>Guido suggests, and I agree, to insist that SIZEOF_VOID_P be a power of 2.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/6cc0b48049ec/Include/objimpl.h</link>
    <description><![CDATA[Guido suggests, and I agree, to insist that SIZEOF_VOID_P be a power of 2.<br/>
This simplifies the rounding in _PyObject_VAR_SIZE, allows to restore the<br/>
pre-rounding calling sequence, and allows some nice little simplifications<br/>
in its callers.  I'm still making it return a size_t, though.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 07 Oct 2001 03:54:51 +0000</pubDate>
</item>
<item>
    <title>_PyObject_VAR_SIZE:  always round up to a multiple-of-pointer-size value.</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/426b379a138b/Include/objimpl.h</link>
    <description><![CDATA[_PyObject_VAR_SIZE:  always round up to a multiple-of-pointer-size value.<br/>
As Guido suggested, this makes the new subclassing code substantially<br/>
simpler.  But the mechanics of doing it w/ C macro semantics are a mess,<br/>
and _PyObject_VAR_SIZE has a new calling sequence now.<br/>
<br/>
Question:  The PyObject_NEW_VAR macro appears to be part of the public API.<br/>
Regardless of what it expands to, the notion that it has to round up the<br/>
memory it allocates is new, and extensions containing the old<br/>
PyObject_NEW_VAR macro expansion (which was embedded in the<br/>
PyObject_NEW_VAR expansion) won't do this rounding.  But the rounding<br/>
isn't actually *needed* except for new-style instances with dict pointers<br/>
after a variable-length blob of embedded data.  So my guess is that we do<br/>
not need to bump the API version for this (as the rounding isn't needed<br/>
for anything an extension can do unless it's recompiled anyway).  What's<br/>
your guess?]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 06 Oct 2001 21:27:34 +0000</pubDate>
</item>
<item>
    <title>Repaired the debug Windows deaths in test_descr, by allocating enough</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/b285decf0421/Include/objimpl.h</link>
    <description><![CDATA[Repaired the debug Windows deaths in test_descr, by allocating enough<br/>
pad memory to properly align the __dict__ pointer in all cases.<br/>
<br/>
gcmodule.c/objimpl.h, _PyObject_GC_Malloc:<br/>
+ Added a &quot;padding&quot; argument so that this flavor of malloc can allocate<br/>
  enough bytes for alignment padding (it can't know this is needed, but<br/>
  its callers do).<br/>
<br/>
typeobject.c, PyType_GenericAlloc:<br/>
+ Allocated enough bytes to align the __dict__ pointer.<br/>
+ Sped and simplified the round-up-to-PTRSIZE logic.<br/>
+ Added blank lines so I could parse the if/else blocks &lt;0.7 wink&gt;.]]></description>
    <author>&#84;&#105;&#109;&#32;&#80;&#101;&#116;&#101;&#114;&#115;&#32;&#60;&#116;&#105;&#109;&#46;&#112;&#101;&#116;&#101;&#114;&#115;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 06 Oct 2001 19:04:01 +0000</pubDate>
</item>
<item>
    <title>Add Garbage Collection support to new-style classes (not yet to their</title>
    <link>https://hg.dopieralski.pl/cpython-lru_cache-weakref/log/0b99174d6b17/Include/objimpl.h</link>
    <description><![CDATA[Add Garbage Collection support to new-style classes (not yet to their<br/>
instances).<br/>
<br/>
Also added GC support to various auxiliary types: super, property,<br/>
descriptors, wrappers, dictproxy.  (Only type objects have a tp_clear<br/>
field; the other types are.)<br/>
<br/>
One change was necessary to the GC infrastructure.  We have statically<br/>
allocated type objects that don't have a GC header (and can't easily<br/>
be given one) and heap-allocated type objects that do have a GC<br/>
header.  Giving these different metatypes would be really ugly: I<br/>
tried, and I had to modify pickle.py, cPickle.c, copy.py, add a new<br/>
invent a new name for the new metatype and make it a built-in, change<br/>
affected tests...  In short, a mess.  So instead, we add a new type<br/>
slot tp_is_gc, which is a simple Boolean function that determines<br/>
whether a particular instance has GC headers or not.  This slot is<br/>
only relevant for types that have the (new) GC flag bit set.  If the<br/>
tp_is_gc slot is NULL (by far the most common case), all instances of<br/>
the type are deemed to have GC headers.  This slot is called by the<br/>
PyObject_IS_GC() macro (which is only used twice, both times in<br/>
gcmodule.c).<br/>
<br/>
I also changed the extern declarations for a bunch of GC-related<br/>
functions (_PyObject_GC_Del etc.): these always exist but objimpl.h<br/>
only declared them when WITH_CYCLE_GC was defined, but I needed to be<br/>
able to reference them without #ifdefs.  (When WITH_CYCLE_GC is not<br/>
defined, they do the same as their non-GC counterparts anyway.)]]></description>
    <author>&#71;&#117;&#105;&#100;&#111;&#32;&#118;&#97;&#110;&#32;&#82;&#111;&#115;&#115;&#117;&#109;&#32;&#60;&#103;&#117;&#105;&#100;&#111;&#64;&#112;&#121;&#116;&#104;&#111;&#110;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Tue, 02 Oct 2001 21:24:57 +0000</pubDate>
</item>

  </channel>
</rss>
