summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/whatsnew/whatsnew22.tex100
1 files changed, 64 insertions, 36 deletions
diff --git a/Doc/whatsnew/whatsnew22.tex b/Doc/whatsnew/whatsnew22.tex
index 17b6d9a..8783549 100644
--- a/Doc/whatsnew/whatsnew22.tex
+++ b/Doc/whatsnew/whatsnew22.tex
@@ -574,35 +574,31 @@ See \url{http://www.xmlrpc.com/} for more information about XML-RPC.
now compliant with \rfc{2822}, an update to \rfc{822}. The module's
name is \emph{not} going to be changed to \samp{rfc2822}.
(Contributed by Barry Warsaw.)
-
+
+ \item New constants \constant{ascii_letters},
+ \constant{ascii_lowercase}, and \constant{ascii_uppercase} were
+ added to the \module{string} module. There were several modules in
+ the standard library that used \constant{string.letters} to mean the
+ ranges A-Za-z, but that assumption is incorrect when locales are in
+ use, because \constant{string.letters} varies depending on the set
+ of legal characters defined by the current locale. The buggy
+ modules have all been fixed to use \constant{ascii_letters} instead.
+ (Reported by an unknown person; fixed by Fred L. Drake, Jr.)
+
\end{itemize}
%======================================================================
-\section{Other Changes and Fixes}
+\section{Interpreter Changes and Fixes}
-% XXX update the patch and bug figures as we go
-As usual there were a bunch of other improvements and bugfixes
-scattered throughout the source tree. A search through the CVS change
-logs finds there were 43 patches applied, and 77 bugs fixed; both
-figures are likely to be underestimates. Some of the more notable
-changes are:
+Some of the changes only affect people who deal with the Python
+interpreter at the C level, writing Python extension modules,
+embedding the interpreter, or just hacking on the interpreter itself.
+If you only write Python code, none of the changes described here will
+affect you very much.
\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 Mac OS 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
@@ -623,11 +619,52 @@ changes are:
\cfunction{PyThreadState_Next()} allow looping over all the thread
states for a given interpreter. (Contributed by David Beazley.)
- % XXX is this explanation correct?
- \item When presented with a Unicode filename on Windows, Python will
- now correctly convert it to a string using the MBCS encoding.
- Filenames on Windows are a case where Python's choice of ASCII as
- the default encoding turns out to be an annoyance.
+ \item A new \samp{et} format sequence was added to
+ \cfunction{PyArg_ParseTuple}; \samp{et} takes both a parameter and
+ an encoding name, and converts the parameter to the given encoding
+ if the parameter turns out to be a Unicode string, or leaves it
+ alone if it's an 8-bit string, assuming it to already be in the
+ desired encoding. This differs from the \samp{es} format character,
+ which assumes that 8-bit strings are in Python's default ASCII
+ encoding and converts them to the specified new encoding.
+ (Contributed by M.-A. Lemburg, and used for the MBCS support on
+ Windows described in the previous section.)
+
+ \item Two new wrapper functions, \cfunction{PyOS_snprintf()} and
+ \cfunction{PyOS_vsnprintf()} were added. which provide a cross-platform
+ implementations for the relatively new snprintf()/vsnprintf() C lib
+ APIs. In contrast to the standard sprintf() and vsprintf() C lib
+ APIs, these versions apply bounds checking on the used buffer which
+ enhances protection against buffer overruns.
+ (Contributed by M.-A. Lemburg.)
+
+\end{itemize}
+
+
+%======================================================================
+\section{Other Changes and Fixes}
+
+% XXX update the patch and bug figures as we go
+As usual there were a bunch of other improvements and bugfixes
+scattered throughout the source tree. A search through the CVS change
+logs finds there were 43 patches applied, and 77 bugs fixed; both
+figures are likely to be underestimates. Some of the more notable
+changes are:
+
+\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 Mac OS 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 When presented with a Unicode filename on Windows, Python will
now convert it to an MBCS encoded string, as used by the Microsoft
@@ -635,15 +672,6 @@ changes are:
choice of ASCII as the default encoding turns out to be an
annoyance.
- This patch also adds \samp{et} as a format sequence to
- \cfunction{PyArg_ParseTuple}; \samp{et} takes both a parameter and
- an encoding name, and converts it to the given encoding if the
- parameter turns out to be a Unicode string, or leaves it alone if
- it's an 8-bit string, assuming it to already be in the desired
- encoding. (This differs from the \samp{es} format character, which
- assumes that 8-bit strings are in Python's default ASCII encoding
- and converts them to the specified new encoding.)
-
(Contributed by Mark Hammond with assistance from Marc-Andr\'e
Lemburg.)
@@ -683,7 +711,7 @@ changes are:
to load extension modules, it's now possible to set the flags used
by \cfunction{dlopen()} using the \function{sys.getdlopenflags()} and
\function{sys.setdlopenflags()} functions. (Contributed by Bram Stolk.)
-
+
\end{itemize}