From 65a333219f1bc5ee0b0850cd211628a5eaced714 Mon Sep 17 00:00:00 2001
From: "Andrew M. Kuchling" <amk@amk.ca>
Date: Wed, 21 Jul 2004 12:41:38 +0000
Subject: Add PEP 331; add constancy of None; minor edits

---
 Doc/whatsnew/whatsnew24.tex | 50 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 45 insertions(+), 5 deletions(-)

diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex
index 3b33d8a..8dcde06 100644
--- a/Doc/whatsnew/whatsnew24.tex
+++ b/Doc/whatsnew/whatsnew24.tex
@@ -1,4 +1,3 @@
-
 \documentclass{howto}
 \usepackage{distutils}
 % $Id$
@@ -444,6 +443,44 @@ Rexx language.}
 
 
 %======================================================================
+\section{PEP 331: Locale-Independent Float/String Conversions}
+
+The \module{locale} modules lets Python software select various
+conversions and display conventions that are localized to a particular
+country or language.  However, the module was careful to not change
+the numeric locale because various functions in Python's
+implementation required that the numeric locale remain set to the
+\code{'C'} locale.  Often this was because the code was using the C library's
+\cfunction{atof()} function.  
+
+Not setting the numeric locale caused trouble for extensions that used
+third-party C libraries, however, because they wouldn't have the
+correct locale set.  The motivating example was GTK+, whose user
+interface widgets weren't displaying numbers in the current locale.
+
+The solution described in the PEP is to add three new functions to the
+Python API that perform ASCII-only conversions, ignoring the locale
+setting:
+
+\begin{itemize}
+ \item \cfunction{PyOS_ascii_strtod(\var{str}, \var{ptr})} 
+and \cfunction{PyOS_ascii_atof(\var{str}, \var{ptr})} 
+both convert a string to a C \ctype{double}.
+ \item \cfunction{PyOS_ascii_formatd(\var{buffer}, \var{buf_len}, \var{format}, \var{d})} converts a \ctype{double} to an ASCII string.
+\end{itemize}
+
+The code for these functions came from the GLib library
+(\url{http://developer.gnome.org/arch/gtk/glib.html}), whose
+developers kindly relicensed the relevant functions and donated them
+to the Python Software Foundation.  The \module{locale} module 
+can now change the numeric locale, letting extensions such as GTK+ 
+produce the correct results.
+
+\begin{seealso}
+\seepep{331}{Locale-Independent Float/String Conversions}{Written by Christian R. Reis, and implemented by Gustavo Carneiro.}
+\end{seealso}      
+
+%======================================================================
 \section{Other Language Changes}
 
 Here are all of the changes that Python 2.4 makes to the core Python
@@ -578,6 +615,9 @@ Previously this had to be a regular Python dictionary.
 []
 \end{verbatim}
 
+\item \constant{None} is now a constant; code that binds a new value to 
+the name \samp{None} is now a syntax error.
+
 \end{itemize}
 
 
@@ -587,10 +627,10 @@ Previously this had to be a regular Python dictionary.
 \begin{itemize}
 
 \item The inner loops for list and tuple slicing
- were optimized and now run about one-third faster.  The inner
- loops were also optimized for dictionaries with performance
- boosts to \method{keys()}, \method{values()}, \method{items()},
-\method{iterkeys()}, \method{itervalues()}, and \method{iteritems()}.
+ were optimized and now run about one-third faster.  The inner loops
+ were also optimized for dictionaries, resulting in performance boosts for
+ \method{keys()}, \method{values()}, \method{items()},
+ \method{iterkeys()}, \method{itervalues()}, and \method{iteritems()}.
 
 \item The machinery for growing and shrinking lists was optimized for
  speed and for space efficiency.  Appending and popping from lists now
-- 
cgit v0.12

