diff options
Diffstat (limited to 'Doc/whatsnew/whatsnew23.tex')
-rw-r--r-- | Doc/whatsnew/whatsnew23.tex | 79 |
1 files changed, 64 insertions, 15 deletions
diff --git a/Doc/whatsnew/whatsnew23.tex b/Doc/whatsnew/whatsnew23.tex index 66db581..5c3a1de 100644 --- a/Doc/whatsnew/whatsnew23.tex +++ b/Doc/whatsnew/whatsnew23.tex @@ -5,7 +5,7 @@ % Go through and get the contributor's name for all the various changes \title{What's New in Python 2.3} -\release{0.02} +\release{0.03} \author{A.M. Kuchling} \authoraddress{\email{akuchlin@mems-exchange.org}} @@ -13,26 +13,23 @@ \maketitle \tableofcontents -% Types now callable; `new' module replaced -% -% Timeout sockets: -% Executive summary: after sock.settimeout(T), all methods of sock will -% block for at most T floating seconds and fail if they can't complete -% within that time. sock.settimeout(None) restores full blocking mode. -% % 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}} {\large This article is a draft, and is currently up to date for some -random version of the CVS tree around May 26 2002. Please send any +random version of the CVS tree around mid-July 2002. Please send any additions, comments or errata to the author.} This article explains the new features in Python 2.3. The tentative -release date of Python 2.3 is currently scheduled for August 30 2002. +release date of Python 2.3 is currently scheduled for some undefined +time before the end of 2002. This article doesn't attempt to provide a complete specification of the new features, but instead provides a convenient overview. For @@ -462,9 +459,32 @@ than \method{zfill()}. '0goofy' \end{verbatim} +\item A new type object, \class{basestring}, has been added. + Both 8-bit strings and Unicode strings inherit from this type, so + \code{isinstance(obj, basestring)} will return \constant{True} for + either kind of string. It's a completely abstract type, so you + can't create \class{basestring} instances. + +\item Most type objects are now callable, so you can use them +to create new objects such as functions, classes, and modules. (This +means that the \module{new} module can be deprecated in a future +Python version, because you can now use the type objects available +in the \module{types} module.) +% XXX should new.py use PendingDeprecationWarning? +For example, you can create a new module object with the following code: + +\begin{verbatim} +>>> import types +>>> m = types.ModuleType('abc','docstring') +>>> m +<module 'abc' (built-in)> +>>> m.__doc__ +'docstring' +\end{verbatim} + \item A new warning, \exception{PendingDeprecationWarning} was added to -provide direction on features which are in the process of being +indicate features which are in the process of being deprecated. The warning will \emph{not} be printed by default. To check for use of features that will be deprecated in the future, supply \programopt{-Walways::PendingDeprecationWarning::} on the @@ -582,7 +602,7 @@ in the source tree, or the CVS logs, for a more complete list. \begin{itemize} -\item The \module{textwrap} module contains functions for wrapping +\item The new \module{textwrap} module contains functions for wrapping strings containing paragraphs of text. The \function{wrap(\var{text}, \var{width})} function takes a string and returns a list containing the text split into lines of no more than the chosen width. The @@ -629,6 +649,18 @@ and \function{mknod()}, were added to the \module{posix} module that underlies the \module{os} module. (Contributed by Gustavo Niemeyer and Geert Jansen.) +\item The \module{socket} module now supports timeouts. You +can call the \method{settimeout(\var{t})} method on a socket object to +set a timeout of \var{t} seconds. Subsequent socket operations that +take longer than \var{t} seconds to complete will abort and raise a +\exception{socket.error} exception. + +(The original timeout implementation was by Tim O'Malley. Michael +Gilfix integrated it into the Python \module{socket} module, after the +patch had undergone a lengthy review. After it was checked in, Guido +van~Rossum rewrote parts of it. This is a good example of the free +software development process.) + \item The \module{getopt} module gained a new function, \function{gnu_getopt()}, that supports the same arguments as the existing \function{getopt()} function but uses GNU-style scanning mode. @@ -649,7 +681,11 @@ example: \item Two new binary packagers were added to the Distutils. \code{bdist_pkgtool} builds \file{.pkg} files to use with Solaris \program{pkgtool}, and \code{bdist_sdux} builds \program{swinstall} -packages for use on HP-UX. (Contributed by Mark Alexander.) +packages for use on HP-UX. +An abstract binary packager class, +\module{distutils.command.bdist_packager}, was added; this may make it +easier to write binary packaging commands. (Contributed by Mark +Alexander.) \item The \module{array} module now supports arrays of Unicode characters using the \samp{u} format character. Arrays also @@ -657,7 +693,8 @@ 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.) -\item The \module{grp} module now returns enhanced tuples: +\item The \module{grp}, \module{pwd}, and \module{resource} modules +now return enhanced tuples: \begin{verbatim} >>> import grp @@ -676,6 +713,11 @@ to the \module{signal} module by adding the \function{sigpending}, by the platform. These functions make it possible to avoid some previously unavoidable race conditions. +\item The DOM implementation +in \module{xml.dom.minidom} can now generate XML output in a +particular encoding, by specifying an optional encoding argument to +the \method{toxml()} and \method{toprettyxml()} methods of DOM nodes. + \end{itemize} @@ -693,11 +735,16 @@ Palkovsky.) \item The interpreter can be compiled without any docstrings for the built-in functions and modules by supplying -\longprogramopt{--without-doc-strings} to the \file{configure} script. +\longprogramopt{without-doc-strings} to the \file{configure} script. This makes the Python executable about 10\% smaller, but will also mean that you can't get help for Python's built-ins. (Contributed by Gustavo Niemeyer.) +\item The cycle detection implementation used by the garbage collection +has proven to be stable, so it's now being made mandatory; you can no +longer compile Python without it, and the +\longprogramopt{with-cycle-gc} switch to \file{configure} has been removed. + \item The \cfunction{PyArg_NoArgs()} macro is now deprecated, and code that uses it should be changed. For Python 2.2 and later, the method definition table can specify the @@ -751,6 +798,8 @@ The RPM spec files, found in the \file{Misc/RPM/} directory in the Python source distribution, were updated for 2.3. (Contributed by Sean Reifschneider.) +Python now supports AtheOS (\url{www.atheos.cx}) and GNU/Hurd. + %====================================================================== \section{Other Changes and Fixes} |