\documentclass{howto} % $Id$ \title{What's New in Python 2.2} \release{0.01} \author{A.M. Kuchling} \authoraddress{\email{amk1@bigfoot.com}} \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{amk1@bigfoot.com}. } 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. 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 252: Type and Class Changes} XXX \begin{seealso} \seepep{252}{Making Types Look More Like Classes}{Written and implemented by GvR.} \end{seealso} %====================================================================== \section{New and Improved Modules} \begin{itemize} \item XXX \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}