From: A.M. K. <aku...@us...> - 2001-03-23 03:52:49
|
Update of /cvsroot/py-howto/pyhowto In directory usw-pr-cvs1:/tmp/cvs-serv14496 Modified Files: python-21.tex Log Message: Add a paragraph about obmalloc turning up bugs in extension modules Mention the new ports Index: python-21.tex =================================================================== RCS file: /cvsroot/py-howto/pyhowto/python-21.tex,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** python-21.tex 2001/03/23 03:29:08 1.20 --- python-21.tex 2001/03/23 03:52:46 1.21 *************** *** 752,758 **** requests from these pools. It can be enabled by providing the \longprogramopt{with-pymalloc} option to the \program{configure} script; see ! \file{Objects/obmalloc.c} for the implementation details. ! Contributed by Vladimir Marangozov. \item The speed of line-oriented file I/O has been improved because people often complain about its lack of speed, and because it's often --- 752,774 ---- requests from these pools. It can be enabled by providing the \longprogramopt{with-pymalloc} option to the \program{configure} script; see ! \file{Objects/obmalloc.c} for the implementation details. + Authors of C extension modules should test their code with the object + allocator enabled, because some incorrect code may break, causing core + dumps at runtime. There are a bunch of memory allocation functions in + Python's C API that have previously been just aliases for the C + library's \function{malloc()} and \function{free()}, meaning that if + you accidentally called mismatched functions, the error wouldn't be + noticeable. When the object allocator is enabled, these functions + aren't aliases of \function{malloc()} and \function{free()} any more, + and calling the wrong function to free memory will get you a core + dump. For example, if memory was allocated using + \function{PyMem_New()}, it has to be freed using + \function{PyMem_Del()}, not \function{free()}. A few modules included + with Python fell afoul of this and had to be fixed; doubtless there + are more third-party modules that will have the same problem. + + The object allocator was contributed by Vladimir Marangozov. + \item The speed of line-oriented file I/O has been improved because people often complain about its lack of speed, and because it's often *************** *** 827,830 **** --- 843,849 ---- \item The size of the Unicode character database was shrunk by another 340K thanks to Fredrik Lundh. + + \item Some new ports were contributed: MacOS X (by Steven Majewski), + Cygwin (by Jason Tishler); RISCOS (by Dietmar Schwertberger). \end{itemize} |