|
From: A.M. K. <aku...@us...> - 2001-07-16 13:39:13
|
Update of /cvsroot/py-howto/pyhowto
In directory usw-pr-cvs1:/tmp/cvs-serv27284
Modified Files:
python-22.tex
Log Message:
Write some entries in the "Other changes" section
Write description of .encode()/.decode for the Unicode section
Bump version number
Index: python-22.tex
===================================================================
RCS file: /cvsroot/py-howto/pyhowto/python-22.tex,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** python-22.tex 2001/07/16 02:17:14 1.5
--- python-22.tex 2001/07/16 13:39:08 1.6
***************
*** 4,8 ****
\title{What's New in Python 2.2}
! \release{0.01}
\author{A.M. Kuchling}
\authoraddress{\email{aku...@me...}}
--- 4,8 ----
\title{What's New in Python 2.2}
! \release{0.02}
\author{A.M. Kuchling}
\authoraddress{\email{aku...@me...}}
***************
*** 318,323 ****
\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
--- 318,357 ----
\section{Unicode Changes}
! Python's Unicode support has been enhanced a bit in 2.2. Unicode
! strings are usually stored as UCS-2, as 16-bit unsigned integers.
! Python 2.2 can also be compiled to use UCS-4, 32-bit unsigned integers
! by supplying \code{--enable-unicode=ucs4} to the configure script.
!
! XXX explain surrogates? I have to figure out what the changes mean to users.
!
! Since their introduction, Unicode strings (XXX and regular strings in
! 2.1?) have supported an \method{encode()} method to convert the
! string to a selected encoding such as UTF-8 or Latin-1. A symmetric
! \method{decode(\optional{\var{encoding}})} method has been added to
! both 8-bit and Unicode strings in 2.2, which assumes that the string
! is in the specified encoding and decodes it. This means that
! \method{encode()} and \method{decode()} can be called on both types of
! strings, and can be used for tasks not directly related to Unicode.
! For example, codecs have been added for UUencoding, MIME's base-64
! encoding, and compression with the \module{zlib} module.
!
! \begin{verbatim}
! >>> s = """Here is a lengthy piece of redundant, overly verbose,
! ... and repetitive text.
! ... """
! >>> data = s.encode('zlib')
! >>> data
! 'x\x9c\r\xc9\xc1\r\x80 \x10\x04\xc0?Ul...'
! >>> data.decode('zlib')
! 'Here is a lengthy piece of redundant, overly verbose,\nand repetitive text.\n'
! >>> print s.encode('uu')
! begin 666 <data>
! M2&5R92!I<R!A(&QE;F=T:'D@<&EE8V4@;V8@<F5D=6YD86YT+"!O=F5R;'D@
! >=F5R8F]S92P*86YD(')E<&5T:71I=F4@=&5X="X*
!
! end
! >>> "sheesh".encode('rot-13')
! 'furrfu'
! \end{verbatim}
References: http://mail.python.org/pipermail/i18n-sig/2001-June/001107.html
***************
*** 510,567 ****
\begin{itemize}
-
- \item XXX C API: Reorganization of object calling
-
- \item XXX .encode(), .decode() string methods. Interesting new codecs such
- as zlib.
-
- \item MacOS code now in main CVS tree.
-
- \item SF patch \#418147 Fixes to allow compiling w/ Borland, from Stephen Hansen.
-
- \item Add support for Windows using "mbcs" as the default Unicode encoding when dealing with the file system. As discussed on python-dev and in patch 410465.
-
- \item Lots of patches to dictionaries; measure performance improvement, if any.
-
- \item Patch \#430754: Makes ftpmirror.py .netrc aware
-
- \item Fix bug reported by Tim Peters on python-dev:
! Keyword arguments passed to builtin functions that don't take them are
! ignored.
! >>> {}.clear(x=2)
! >>>
!
! instead of
!
! >>> {}.clear(x=2)
! Traceback (most recent call last):
! File "<stdin>", line 1, in ?
! TypeError: clear() takes no keyword arguments
! \item Make the license GPL-compatible.
- \item This change adds two new C-level APIs: PyEval_SetProfile() and
- PyEval_SetTrace(). These can be used to install profile and trace
- functions implemented in C, which can operate at much higher speeds
- than Python-based functions. The overhead for calling a C-based
- profile function is a very small fraction of a percent of the overhead
- involved in calling a Python-based function.
-
- The machinery required to call a Python-based profile or trace
- function been moved to sysmodule.c, where sys.setprofile() and
- sys.setprofile() simply become users of the new interface.
-
- \item 'Advanced' xrange() features now deprecated: repeat, slice,
- contains, tolist(), and the start/stop/step attributes. This includes
- removing the 4th ('repeat') argument to PyRange_New().
-
-
- \item 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
--- 544,596 ----
\begin{itemize}
! \item Keyword arguments passed to builtin functions that don't take them
! now cause a \exception{TypeError} exception to be raised, with the
! message "\var{function} takes no keyword arguments".
!
! \item The code for the MacOS port for Python, maintained by Jack
! Jansen, is now kept in the main Python CVS tree.
!
! \item The new license introduced with Python 1.6 wasn't
! GPL-compatible. This is fixed by some minor textual changes to the
! 2.2 license, so Python can now be embedded inside a GPLed program
! again. The license changes were also applied to the Python 2.0.1
! and 2.1.1 releases.
!
! \item Profiling and tracing functions can now be implemented in C,
! which can operate at much higher speeds than Python-based functions
! and should reduce the overhead of enabling profiling and tracing, so
! it will be of interest to authors of development environments for
! Python. Two new C functions were added to Python's API,
! \cfunction{PyEval_SetProfile()} and \cfunction{PyEval_SetTrace()}.
! The existing \function{sys.setprofile()} and \function{sys.settrace()}
! functions still exist, and have simply been changed to use the new
! C-level interface.
!
!
! \item The \file{Tools/scripts/ftpmirror.py} script
! now parses a \file{.netrc} file, if you have one.
! (Contributed by XXX.) Patch \#430754: Makes ftpmirror.py .netrc aware
!
! \item Some features of the object returned by the \function{xrange()}
! function are now deprecated, and trigger warnings when they're
! accessed; they'll disappear in Python 2.3. \class{xrange} objects
! tried to pretend they were full sequence types by supporting slicing,
! sequence multiplication, and the \keyword{in} operator, but these
! features were rarely used and therefore buggy. (The implementation of
! the \keyword{in} operator had an off-by-one error introduced in Python
! XXX that no one noticed until XXX, XXX years later. The
! \method{tolist()} method and the \member{start}, \member{stop}, and
! \member{step} attributes are also being deprecated. At the C level,
! the fourth argument to the \cfunction{PyRange_New()} function,
! \samp{repeat}, has also been deprecated.
! \item XXX C API: Reorganization of object calling
! 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
***************
*** 576,579 ****
--- 605,614 ----
%PyEval_GetFuncDesc(), PyEval_EvalCodeEx() (formerly get_func_name(),
%get_func_desc(), and eval_code2().
+
+ \item XXX SF patch \#418147 Fixes to allow compiling w/ Borland, from Stephen Hansen.
+
+ \item XXX Add support for Windows using "mbcs" as the default Unicode encoding when dealing with the file system. As discussed on python-dev and in patch 410465.
+
+ \item XXX Lots of patches to dictionaries; measure performance improvement, if any.
\end{itemize}
|