137 lines
4.0 KiB
TeX
137 lines
4.0 KiB
TeX
\documentclass{howto}
|
|
|
|
% $Id$
|
|
|
|
\title{What's New in Python 2.2}
|
|
\release{0.01}
|
|
\author{A.M. Kuchling}
|
|
\authoraddress{\email{akuchlin@mems-exchange.org}}
|
|
\begin{document}
|
|
\maketitle\tableofcontents
|
|
|
|
\section{Introduction}
|
|
|
|
{\large This document is a draft, and is subject to change until the
|
|
final version of Python 2.2 is released. Currently it's not up to
|
|
date at all. Please send any comments, bug reports, or questions, no
|
|
matter how minor, to \email{akuchlin@mems-exchange.org}. }
|
|
|
|
This article explains the new features in Python 2.2. Python 2.2
|
|
includes some significant changes that go far toward cleaning up the
|
|
language's darkest corners, and some exciting new features.
|
|
|
|
This article doesn't attempt to provide a complete specification for
|
|
the new features, but instead provides a convenient overview of the
|
|
new features. For full details, you should refer to 2.2 documentation
|
|
such as the Library Reference and the Reference Guide, or to the PEP
|
|
for a particular new feature.
|
|
|
|
The final release of Python 2.2 is planned for October 2001.
|
|
|
|
%======================================================================
|
|
\section{PEP 234: Iterators}
|
|
|
|
XXX
|
|
|
|
\begin{seealso}
|
|
|
|
\seepep{234}{Iterators}{Written by Ka-Ping Yee and GvR; implemented
|
|
by the Python Labs crew, mostly by GvR and Tim Peters.}
|
|
|
|
\end{seealso}
|
|
|
|
%======================================================================
|
|
\section{PEP 255: Simple Generators}
|
|
|
|
XXX
|
|
|
|
\begin{seealso}
|
|
|
|
\seepep{255}{Simple Generators}{Written by Neil Schemenauer,
|
|
Tim Peters, Magnus Lie Hetland. Implemented mostly by Neil
|
|
Schemenauer, with fixes from the Python Labs crew, mostly by GvR and
|
|
Tim Peters.}
|
|
|
|
\end{seealso}
|
|
|
|
%======================================================================
|
|
% It looks like this set of changes isn't going to be getting into 2.2,
|
|
% unless someone plans to merge the descr-branch back into the mainstream
|
|
% very quickly.
|
|
%\section{PEP 252: Type and Class Changes}
|
|
|
|
%XXX
|
|
|
|
%\begin{seealso}
|
|
|
|
%\seepep{252}{Making Types Look More Like Classes}{Written and implemented
|
|
%by GvR.}
|
|
|
|
%\end{seealso}
|
|
|
|
%======================================================================
|
|
\section{Unicode Changes}
|
|
|
|
XXX I have to figure out what the changes mean to users.
|
|
(--enable-unicode configure switch)
|
|
|
|
References: http://mail.python.org/pipermail/i18n-sig/2001-June/001107.html
|
|
and following thread.
|
|
|
|
|
|
%======================================================================
|
|
\section{New and Improved Modules}
|
|
|
|
\begin{itemize}
|
|
|
|
\item xmlrpclib added to standard library.
|
|
|
|
\end{itemize}
|
|
|
|
|
|
%======================================================================
|
|
\section{Other Changes and Fixes}
|
|
|
|
XXX
|
|
|
|
\begin{itemize}
|
|
|
|
\item XXX Nested scoping enabled by default
|
|
|
|
\item XXX C API: Reorganization of object calling
|
|
|
|
\item XXX .encode(), .decode() string methods. Interesting new codecs such
|
|
as zlib.
|
|
|
|
%Original log message:
|
|
|
|
%The call_object() function, originally in ceval.c, begins a new life
|
|
%as the official API PyObject_Call(). It is also much simplified: all
|
|
%it does is call the tp_call slot, or raise an exception if that's
|
|
%NULL.
|
|
|
|
%The subsidiary functions (call_eval_code2(), call_cfunction(),
|
|
%call_instance(), and call_method()) have all been moved to the file
|
|
%implementing their particular object type, renamed according to the
|
|
%local convention, and added to the type's tp_call slot. Note that
|
|
%call_eval_code2() became function_call(); the tp_slot for class
|
|
%objects now simply points to PyInstance_New(), which already has the
|
|
%correct signature.
|
|
|
|
%Because of these moves, there are some more new APIs that expose
|
|
%helpers in ceval.c that are now needed outside: PyEval_GetFuncName(),
|
|
%PyEval_GetFuncDesc(), PyEval_EvalCodeEx() (formerly get_func_name(),
|
|
%get_func_desc(), and eval_code2().
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
%======================================================================
|
|
\section{Acknowledgements}
|
|
|
|
The author would like to thank the following people for offering
|
|
suggestions on various drafts of this article: No one yet.
|
|
|
|
\end{document}
|