Vladimir Marangozov's long-awaited malloc restructuring.
For more comments, read the patches@python.org archives.
For documentation read the comments in mymalloc.h and objimpl.h.

(This is not exactly what Vladimir posted to the patches list; I've
made a few changes, and Vladimir sent me a fix in private email for a
problem that only occurs in debug mode.  I'm also holding back on his
change to main.c, which seems unnecessary to me.)
diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c
index a232296..eb4972b 100644
--- a/Objects/sliceobject.c
+++ b/Objects/sliceobject.c
@@ -57,8 +57,7 @@
 	PyObject *stop;
 	PyObject *step;
 {
-	PySliceObject *obj =
-		(PySliceObject *) PyObject_NEW(PySliceObject, &PySlice_Type);
+	PySliceObject *obj = PyObject_NEW(PySliceObject, &PySlice_Type);
 
 	if (step == NULL) step = Py_None;
 	Py_INCREF(step);
@@ -115,7 +114,7 @@
 	Py_DECREF(r->step);
 	Py_DECREF(r->start);
 	Py_DECREF(r->stop);
-	PyMem_DEL(r);
+	PyObject_DEL(r);
 }
 
 static PyObject *