Kaydet (Commit) 77707673 authored tarafından Andrew M. Kuchling's avatar Andrew M. Kuchling

Move C-level changes into a section of their own

Add string.ascii_letters
Remove duplicate MBCS paragraph
üst d627791c
...@@ -574,35 +574,31 @@ See \url{http://www.xmlrpc.com/} for more information about XML-RPC. ...@@ -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 now compliant with \rfc{2822}, an update to \rfc{822}. The module's
name is \emph{not} going to be changed to \samp{rfc2822}. name is \emph{not} going to be changed to \samp{rfc2822}.
(Contributed by Barry Warsaw.) (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} \end{itemize}
%====================================================================== %======================================================================
\section{Other Changes and Fixes} \section{Interpreter Changes and Fixes}
% XXX update the patch and bug figures as we go Some of the changes only affect people who deal with the Python
As usual there were a bunch of other improvements and bugfixes interpreter at the C level, writing Python extension modules,
scattered throughout the source tree. A search through the CVS change embedding the interpreter, or just hacking on the interpreter itself.
logs finds there were 43 patches applied, and 77 bugs fixed; both If you only write Python code, none of the changes described here will
figures are likely to be underestimates. Some of the more notable affect you very much.
changes are:
\begin{itemize} \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, \item Profiling and tracing functions can now be implemented in C,
which can operate at much higher speeds than Python-based functions which can operate at much higher speeds than Python-based functions
and should reduce the overhead of enabling profiling and tracing, so and should reduce the overhead of enabling profiling and tracing, so
...@@ -623,11 +619,52 @@ changes are: ...@@ -623,11 +619,52 @@ changes are:
\cfunction{PyThreadState_Next()} allow looping over all the thread \cfunction{PyThreadState_Next()} allow looping over all the thread
states for a given interpreter. (Contributed by David Beazley.) states for a given interpreter. (Contributed by David Beazley.)
% XXX is this explanation correct? \item A new \samp{et} format sequence was added to
\item When presented with a Unicode filename on Windows, Python will \cfunction{PyArg_ParseTuple}; \samp{et} takes both a parameter and
now correctly convert it to a string using the MBCS encoding. an encoding name, and converts the parameter to the given encoding
Filenames on Windows are a case where Python's choice of ASCII as if the parameter turns out to be a Unicode string, or leaves it
the default encoding turns out to be an annoyance. 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 \item When presented with a Unicode filename on Windows, Python will
now convert it to an MBCS encoded string, as used by the Microsoft now convert it to an MBCS encoded string, as used by the Microsoft
...@@ -635,15 +672,6 @@ changes are: ...@@ -635,15 +672,6 @@ changes are:
choice of ASCII as the default encoding turns out to be an choice of ASCII as the default encoding turns out to be an
annoyance. 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 (Contributed by Mark Hammond with assistance from Marc-Andr\'e
Lemburg.) Lemburg.)
...@@ -683,7 +711,7 @@ changes are: ...@@ -683,7 +711,7 @@ changes are:
to load extension modules, it's now possible to set the flags used to load extension modules, it's now possible to set the flags used
by \cfunction{dlopen()} using the \function{sys.getdlopenflags()} and by \cfunction{dlopen()} using the \function{sys.getdlopenflags()} and
\function{sys.setdlopenflags()} functions. (Contributed by Bram Stolk.) \function{sys.setdlopenflags()} functions. (Contributed by Bram Stolk.)
\end{itemize} \end{itemize}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment