[Python-checkins] python/dist/src/Doc/whatsnew whatsnew23.tex,1.34,1.35

akuchling@users.sourceforge.net akuchling@users.sourceforge.net
Fri, 12 Jul 2002 13:24:44 -0700


Update of /cvsroot/python/python/dist/src/Doc/whatsnew
In directory usw-pr-cvs1:/tmp/cvs-serv3149

Modified Files:
	whatsnew23.tex 
Log Message:
Add more items
Use \cfunction instead of \function in various places
Add contributor names


Index: whatsnew23.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew23.tex,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** whatsnew23.tex	11 Jul 2002 20:50:34 -0000	1.34
--- whatsnew23.tex	12 Jul 2002 20:24:42 -0000	1.35
***************
*** 16,24 ****
  % Optik (or whatever it gets called)
  %
! % New dependency argument to distutils.Extension
! %
! % The assert statement no longer tests __debug__ at runtime. 
  %
- % 
  
  %\section{Introduction \label{intro}}
--- 16,21 ----
  % Optik (or whatever it gets called)
  %
! % Bug #580462: changes to GC API
  %
  
  %\section{Introduction \label{intro}}
***************
*** 441,444 ****
--- 438,443 ----
  \end{verbatim}
  
+ (Contributed by Simon Brunning.)
+ 
  \item The \method{startswith()} and \method{endswith()}
  string methods now accept negative numbers for the start and end
***************
*** 460,463 ****
--- 459,469 ----
  \end{verbatim}
  
+ (Contributed by Walter D\"orwald.)
+ 
+ \item The \keyword{assert} statement no longer  checks the \code{__debug__}
+ flag, so you can no longer disable assertions by assigning to \code{__debug__}.
+ Running Python with the \programopt{-O} switch will still generate 
+ code that doesn't execute any assertions.
+ 
  \item A new type object, \class{basestring}, has been added.  
     Both 8-bit strings and Unicode strings inherit from this type, so
***************
*** 517,523 ****
  An experimental feature added to Python 2.1 was a specialized object
  allocator called pymalloc, written by Vladimir Marangozov.  Pymalloc
! was intended to be faster than the system \function{malloc()} and have
  less memory overhead for typical allocation patterns of Python
! programs.  The allocator uses C's \function{malloc()} function to get
  large pools of memory, and then fulfills smaller memory requests from
  these pools.
--- 523,529 ----
  An experimental feature added to Python 2.1 was a specialized object
  allocator called pymalloc, written by Vladimir Marangozov.  Pymalloc
! was intended to be faster than the system \cfunction{malloc()} and have
  less memory overhead for typical allocation patterns of Python
! programs.  The allocator uses C's \cfunction{malloc()} function to get
  large pools of memory, and then fulfills smaller memory requests from
  these pools.
***************
*** 535,546 ****
  because some incorrect code may cause 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 may get you a core dump.  For example,
! if memory was allocated using \function{PyObject_Malloc()}, it has to
! be freed using \function{PyObject_Free()}, 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
--- 541,552 ----
  because some incorrect code may cause 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 \cfunction{malloc()}
! and \cfunction{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
! \cfunction{malloc()} and \cfunction{free()} any more, and calling the
  wrong function to free memory may get you a core dump.  For example,
! if memory was allocated using \cfunction{PyObject_Malloc()}, it has to
! be freed using \cfunction{PyObject_Free()}, not \cfunction{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
***************
*** 688,694 ****
  Alexander.)
  
  \item The \module{array} module now supports arrays of Unicode
! characters using the \samp{u} format character.  Arrays also 
! now support using the \code{+=} assignment operator to add another array's
  contents, and the \code{*=} assignment operator to repeat an array.
  (Contributed by Jason Orendorff.)
--- 694,717 ----
  Alexander.)
  
+ \item The Distutils \class{Extension} class now supports 
+ an extra constructor argument named \samp{depends} for listing
+ additional source files that an extension depends on.  This lets
+ Distutils recompile the module if any of the dependency files are
+ modified.  For example, if \samp{sampmodule.c} includes the header
+ file \file{sample.h}, you would create the \class{Extension} object like
+ this:
+ 
+ \begin{verbatim}
+ ext = Extension("samp",
+                 sources=["sampmodule.c"],
+                 depends=["sample.h"])
+ \end{verbatim}
+ 
+ Modifying \file{sample.h} would then cause the module to be recompiled.
+ (Contributed by Jeremy Hylton.)
+ 
  \item The \module{array} module now supports arrays of Unicode
! characters using the \samp{u} format character.  Arrays also now
! support using the \code{+=} assignment operator to add another array's
  contents, and the \code{*=} assignment operator to repeat an array.
  (Contributed by Jason Orendorff.)
***************
*** 719,722 ****
--- 742,751 ----
  the \method{toxml()} and \method{toprettyxml()} methods of DOM nodes.
  
+ \item The parser objects provided by the \module{pyexpat} module 
+ can now optionally buffer character data, resulting in fewer calls to
+ your character data handler and therefore faster performance.  Setting
+ the parser object's \member{buffer_text} attribute to \constant{True} 
+ will enable buffering.
+ 
  \end{itemize}
  
***************
*** 774,777 ****
--- 803,810 ----
  \constant{METH_STATIC} flags in a method's \ctype{PyMethodDef}
  structure.
+ 
+ \item Python now includes a copy of the Expat XML parser's source code,
+ removing any dependence on a system version or local installation of
+ Expat.  
  
  \end{itemize}