[Python-Dev] Pymalloc and backward compatibility
Neil Schemenauer
nas@python.ca
Thu, 4 Apr 2002 07:20:50 -0800
Moore, Paul wrote:
> I've been watching the pymalloc discussions going on recently, and I'm
> concerned that there may be some fairly major compatibility changes
> coming.
We are trying to avoid that.
> The code has survived essentially unchanged through [Python 1.4] to
> Python 2.2, and still works fine.
This is a great test case. Can you provide a URL to the code?
> It seems to me that there are two options open for me:
>
> 1. The Python API from 1.4 is still guaranteed to work unchanged (even given
> the liberties mentioned above). In that case, do nothing.
> 2. There are changes required. In that case, make them, protected by python
> API checks (annoying ifdef fun).
As long as you don't use free() to deallocate objects then you are safe.
Python 1.4 has PyMem_DEL. You can use a macro like this:
#if PY_VERSION_HEX < 0x01060000
#define PyObject_New PyObject_NEW
#define PyObject_Del PyMem_DEL
#endif
and use PyObject_New and PyObject_Del to manage object memory.
Neil