[Python-checkins] r60928 - python/trunk/Misc/HISTORY python/trunk/Misc/NEWS

guido.van.rossum python-checkins at python.org
Thu Feb 21 20:46:36 CET 2008


Author: guido.van.rossum
Date: Thu Feb 21 20:46:35 2008
New Revision: 60928

Modified:
   python/trunk/Misc/HISTORY
   python/trunk/Misc/NEWS
Log:
Fix a few typos and layout glitches (more work is needed).
Move 2.5 news to Misc/HISTORY.


Modified: python/trunk/Misc/HISTORY
==============================================================================
--- python/trunk/Misc/HISTORY	(original)
+++ python/trunk/Misc/HISTORY	Thu Feb 21 20:46:35 2008
@@ -3,11 +3,2150 @@
 
 This file contains the release messages for previous Python releases.
 As you read on you go back to the dark ages of Python's history.
+(Note: news about 2.5c2 and later 2.5 releases is in the Misc/NEWS
+file of the release25-maint branch.)
 
 
 ======================================================================
 
 
+What's New in Python 2.5 release candidate 1?
+=============================================
+
+*Release date: 17-AUG-2006*
+
+Core and builtins
+-----------------
+
+- Unicode objects will no longer raise an exception when being
+  compared equal or unequal to a string and a UnicodeDecodeError
+  exception occurs, e.g. as result of a decoding failure.
+
+  Instead, the equal (==) and unequal (!=) comparison operators will
+  now issue a UnicodeWarning and interpret the two objects as
+  unequal. The UnicodeWarning can be filtered as desired using
+  the warning framework, e.g. silenced completely, turned into an
+  exception, logged, etc.
+
+  Note that compare operators other than equal and unequal will still
+  raise UnicodeDecodeError exceptions as they've always done.
+
+- Fix segfault when doing string formatting on subclasses of long.
+
+- Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
+  with new-style classes.
+
+- Fix bug related to __len__ functions returning negative values with
+  classic classes.
+
+- Patch #1538606, Fix __index__() clipping.  There were some problems
+  discovered with the API and how integers that didn't fit into Py_ssize_t
+  were handled.  This patch attempts to provide enough alternatives
+  to effectively use __index__.
+
+- Bug #1536021: __hash__ may now return long int; the final hash
+  value is obtained by invoking hash on the long int.
+
+- Bug #1536786: buffer comparison could emit a RuntimeWarning.
+
+- Bug #1535165: fixed a segfault in input() and raw_input() when
+  sys.stdin is closed.
+
+- On Windows, the PyErr_Warn function is now exported from
+  the Python dll again.
+
+- Bug #1191458: tracing over for loops now produces a line event
+  on each iteration.  Fixing this problem required changing the .pyc
+  magic number.  This means that .pyc files generated before 2.5c1
+  will be regenerated.
+
+- Bug #1333982: string/number constants were inappropriately stored
+  in the byte code and co_consts even if they were not used, ie
+  immediately popped off the stack.
+
+- Fixed a reference-counting problem in property().
+
+
+Library
+-------
+
+- Fix a bug in the ``compiler`` package that caused invalid code to be
+  generated for generator expressions.
+
+- The distutils version has been changed to 2.5.0. The change to
+  keep it programmatically in sync with the Python version running
+  the code (introduced in 2.5b3) has been reverted. It will continue
+  to be maintained manually as static string literal.
+
+- If the Python part of a ctypes callback function returns None,
+  and this cannot be converted to the required C type, an exception is
+  printed with PyErr_WriteUnraisable.  Before this change, the C
+  callback returned arbitrary values to the calling code.
+
+- The __repr__ method of a NULL ctypes.py_object() no longer raises
+  an exception.
+
+- uuid.UUID now has a bytes_le attribute. This returns the UUID in
+  little-endian byte order for Windows. In addition, uuid.py gained some
+  workarounds for clocks with low resolution, to stop the code yielding
+  duplicate UUIDs.
+
+- Patch #1540892: site.py Quitter() class attempts to close sys.stdin
+  before raising SystemExit, allowing IDLE to honor quit() and exit().
+
+- Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
+
+- Patch #1536071: trace.py should now find the full module name of a
+  file correctly even on Windows.
+
+- logging's atexit hook now runs even if the rest of the module has
+  already been cleaned up.
+
+- Bug #1112549, fix DoS attack on cgi.FieldStorage.
+
+- Bug #1531405, format_exception no longer raises an exception if
+  str(exception) raised an exception.
+
+- Fix a bug in the ``compiler`` package that caused invalid code to be
+  generated for nested functions.
+
+
+Extension Modules
+-----------------
+
+- Patch #1511317: don't crash on invalid hostname (alias) info.
+
+- Patch #1535500: fix segfault in BZ2File.writelines and make sure it
+  raises the correct exceptions.
+
+- Patch # 1536908: enable building ctypes on OpenBSD/AMD64.  The
+  '-no-stack-protector' compiler flag for OpenBSD has been removed.
+
+- Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
+  uses the _as_parameter_ attribute when objects are passed to foreign
+  function calls.  The ctypes version number was changed to 1.0.1.
+
+- Bug #1530559, struct.pack raises TypeError where it used to convert.
+  Passing float arguments to struct.pack when integers are expected
+  now triggers a DeprecationWarning.
+
+
+Tests
+-----
+
+- test_socketserver should now work on cygwin and not fail sporadically
+  on other platforms.
+
+- test_mailbox should now work on cygwin versions 2006-08-10 and later.
+
+- Bug #1535182: really test the xreadlines() method of bz2 objects.
+
+- test_threading now skips testing alternate thread stack sizes on
+  platforms that don't support changing thread stack size.
+
+
+Documentation
+-------------
+
+- Patch #1534922: unittest docs were corrected and enhanced.
+
+
+Build
+-----
+
+- Bug #1535502, build _hashlib on Windows, and use masm assembler
+  code in OpenSSL.
+
+- Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
+
+- Bug #1530448, ctypes build failure on Solaris 10 was fixed.
+
+
+C API
+-----
+
+- New API for Unicode rich comparisons: PyUnicode_RichCompare()
+
+- Bug #1069160.  Internal correctness changes were made to
+  ``PyThreadState_SetAsyncExc()``.  A test case was added, and
+  the documentation was changed to state that the return value
+  is always 1 (normal) or 0 (if the specified thread wasn't found).
+
+
+What's New in Python 2.5 beta 3?
+================================
+
+*Release date: 03-AUG-2006*
+
+Core and builtins
+-----------------
+
+- _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
+  returned a long (see PEP 353).
+
+- Bug #1515471: string.replace() accepts character buffers again.
+
+- Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
+  This provides the proper warning for struct.pack().
+  PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
+
+- Patch #1531113: Fix augmented assignment with yield expressions.
+  Also fix a SystemError when trying to assign to yield expressions.
+
+- Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
+  with PEP 302.  This was fixed by adding an ``imp.NullImporter`` type that is
+  used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
+  excessive filesystem operations during imports.
+
+- Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
+  operations on signed longs that are formally undefined by C.
+  Unfortunately, at least one compiler now cares about that, so complicated
+  the code to make that compiler happy again.
+
+- Bug #1524310: Properly report errors from FindNextFile in os.listdir.
+
+- Patch #1232023: Stop including current directory in search
+  path on Windows.
+
+- Fix some potential crashes found with failmalloc.
+
+- Fix warnings reported by Klocwork's static analysis tool.
+
+- Bug #1512814, Fix incorrect lineno's when code within a function
+  had more than 255 blank lines.
+
+- Patch #1521179: Python now accepts the standard options ``--help`` and
+  ``--version`` as well as ``/?`` on Windows.
+
+- Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
+  again.  Fixing this problem required changing the .pyc magic number.
+  This means that .pyc files generated before 2.5b3 will be regenerated.
+
+- Bug #1524317:  Compiling Python ``--without-threads`` failed.
+  The Python core compiles again, and, in a build without threads, the
+  new ``sys._current_frames()`` returns a dictionary with one entry,
+  mapping the faux "thread id" 0 to the current frame.
+
+- Bug #1525447: build on MacOS X on a case-sensitive filesystem.
+
+
+Library
+-------
+
+- Fix #1693149.  Now you can pass several modules separated by
+  comma to trace.py in the same --ignore-module option.
+
+- Correction of patch #1455898: In the mbcs decoder, set final=False
+  for stream decoder, but final=True for the decode function.
+
+- os.urandom no longer masks unrelated exceptions like SystemExit or
+  KeyboardInterrupt.
+
+- Bug #1525866: Don't copy directory stat times in
+  shutil.copytree on Windows
+
+- Bug #1002398: The documentation for os.path.sameopenfile now correctly
+  refers to file descriptors, not file objects.
+
+- The renaming of the xml package to xmlcore, and the import hackery done
+  to make it appear at both names, has been removed.  Bug #1511497,
+  #1513611, and probably others.
+
+- Bug #1441397: The compiler module now recognizes module and function
+  docstrings correctly as it did in Python 2.4.
+
+- Bug #1529297:  The rewrite of doctest for Python 2.4 unintentionally
+  lost that tests are sorted by name before being run.  This rarely
+  matters for well-written tests, but can create baffling symptoms if
+  side effects from one test to the next affect outcomes.  ``DocTestFinder``
+  has been changed to sort the list of tests it returns.
+
+- The distutils version has been changed to 2.5.0, and is now kept
+  in sync with sys.version_info[:3].
+
+- Bug #978833: Really close underlying socket in _socketobject.close.
+
+- Bug #1459963: urllib and urllib2 now normalize HTTP header names with
+  title().
+
+- Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
+  to recursive calls and call it with the failing package name.
+
+- Bug #1525817: Don't truncate short lines in IDLE's tool tips.
+
+- Patch #1515343: Fix printing of deprecated string exceptions with a
+  value in the traceback module.
+
+- Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
+
+- Patch #1524429: Use repr() instead of backticks in Tkinter again.
+
+- Bug #1520914: Change time.strftime() to accept a zero for any position in its
+  argument tuple.  For arguments where zero is illegal, the value is forced to
+  the minimum value that is correct.  This is to support an undocumented but
+  common way people used  to fill in inconsequential information in the time
+  tuple pre-2.4.
+
+- Patch #1220874: Update the binhex module for Mach-O.
+
+- The email package has improved RFC 2231 support, specifically for
+  recognizing the difference between encoded (name*0*=<blah>) and non-encoded
+  (name*0=<blah>) parameter continuations.  This may change the types of
+  values returned from email.message.Message.get_param() and friends.
+  Specifically in some cases where non-encoded continuations were used,
+  get_param() used to return a 3-tuple of (None, None, string) whereas now it
+  will just return the string (since non-encoded continuations don't have
+  charset and language parts).
+
+  Also, whereas % values were decoded in all parameter continuations, they are
+  now only decoded in encoded parameter parts.
+
+- Bug #1517990: IDLE keybindings on MacOS X now work correctly
+
+- Bug #1517996: IDLE now longer shows the default Tk menu when a
+  path browser, class browser or debugger is the frontmost window on MacOS X
+
+- Patch #1520294: Support for getset and member descriptors in types.py,
+  inspect.py, and pydoc.py.  Specifically, this allows for querying the type
+  of an object against these built-in types and more importantly, for getting
+  their docstrings printed in the interactive interpreter's help() function.
+
+
+Extension Modules
+-----------------
+
+- Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
+  a socket operation on a socket with a timeout, the exception will be
+  caught correctly.  Previously, the exception was not caught.
+
+- Patch #1529514: The _ctypes extension is now compiled on more
+  openbsd target platforms.
+
+- The ``__reduce__()`` method of the new ``collections.defaultdict`` had
+  a memory leak, affecting pickles and deep copies.
+
+- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
+  Paul Eggert.
+
+- Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
+
+- Patch #1521817: Index range checking on ctypes arrays containing
+  exactly one element enabled again.  This allows iterating over these
+  arrays, without the need to check the array size before.
+
+- Bug #1521375: When the code in ctypes.util.find_library was
+  run with root privileges, it could overwrite or delete
+  /dev/null in certain cases; this is now fixed.
+
+- Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
+  default mode for loading shared libraries in ctypes.
+
+- Because of a misspelled preprocessor symbol, ctypes was always
+  compiled without thread support; this is now fixed.
+
+- pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
+  methods now allow their database parameter to be None as the
+  sleepycat API allows.
+
+- Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
+  bluetooth API compared with Linux and FreeBSD.
+
+Tests
+-----
+
+- Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
+  how long the test file should take to play.  Now accepts taking 2.93 secs
+  (exact time) +/- 10% instead of the hard-coded 3.1 sec.
+
+- Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
+  ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
+  run via ``regrtest.py``. Now they do.
+
+Build
+-----
+
+- Bug #1439538: Drop usage of test -e in configure as it is not portable.
+
+Mac
+---
+
+- PythonLauncher now works correctly when the path to the script contains
+  characters that are treated specially by the shell (such as quotes).
+
+- Bug #1527397: PythonLauncher now launches scripts with the working directory
+  set to the directory that contains the script instead of the user home
+  directory. That latter was an implementation accident and not what users
+  expect.
+
+
+What's New in Python 2.5 beta 2?
+================================
+
+*Release date: 11-JUL-2006*
+
+Core and builtins
+-----------------
+
+- Bug #1441486: The literal representation of -(sys.maxint - 1)
+  again evaluates to a int object, not a long.
+
+- Bug #1501934: The scope of global variables that are locally assigned
+  using augmented assignment is now correctly determined.
+
+- Bug #927248: Recursive method-wrapper objects can now safely
+  be released.
+
+- Bug #1417699: Reject locale-specific decimal point in float()
+  and atof().
+
+- Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
+  omit a default "error" argument for NULL pointer.  This allows
+  the parser to take a codec from cjkcodecs again.
+
+- Bug #1519018: 'as' is now validated properly in import statements.
+
+- On 64 bit systems, int literals that use less than 64 bits are
+  now ints rather than longs.
+
+- Bug #1512814, Fix incorrect lineno's when code at module scope
+  started after line 256.
+
+- New function ``sys._current_frames()`` returns a dict mapping thread
+  id to topmost thread stack frame.  This is for expert use, and is
+  especially useful for debugging application deadlocks.  The functionality
+  was previously available in Fazal Majid's ``threadframe`` extension
+  module, but it wasn't possible to do this in a wholly threadsafe way from
+  an extension.
+
+Library
+-------
+
+- Bug #1257728: Mention Cygwin in distutils error message about a missing
+  VS 2003.
+
+- Patch #1519566: Update turtle demo, make begin_fill idempotent.
+
+- Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
+  environment variable to be set in order to the SDK environment
+  for finding the compiler, include files, etc.
+
+- Bug #1515998: Properly generate logical ids for files in bdist_msi.
+
+- warnings.py now ignores ImportWarning by default
+
+- string.Template() now correctly handles tuple-values. Previously,
+  multi-value tuples would raise an exception and single-value tuples would
+  be treated as the value they contain, instead.
+
+- Bug #822974: Honor timeout in telnetlib.{expect,read_until}
+  even if some data are received.
+
+- Bug #1267547: Put proper recursive setup.py call into the
+  spec file generated by bdist_rpm.
+
+- Bug #1514693: Update turtle's heading when switching between
+  degrees and radians.
+
+- Reimplement turtle.circle using a polyline, to allow correct
+  filling of arcs.
+
+- Bug #1514703: Only setup canvas window in turtle when the canvas
+  is created.
+
+- Bug #1513223: .close() of a _socketobj now releases the underlying
+  socket again, which then gets closed as it becomes unreferenced.
+
+- Bug #1504333: Make sgmllib support angle brackets in quoted
+  attribute values.
+
+- Bug #853506: Fix IPv6 address parsing in unquoted attributes in
+  sgmllib ('[' and ']' were not accepted).
+
+- Fix a bug in the turtle module's end_fill function.
+
+- Bug #1510580: The 'warnings' module improperly required that a Warning
+  category be either a types.ClassType and a subclass of Warning.  The proper
+  check is just that it is a subclass with Warning as the documentation states.
+
+- The compiler module now correctly compiles the new try-except-finally
+  statement (bug #1509132).
+
+- The wsgiref package is now installed properly on Unix.
+
+- A bug was fixed in logging.config.fileConfig() which caused a crash on
+  shutdown when fileConfig() was called multiple times.
+
+- The sqlite3 module did cut off data from the SQLite database at the first
+  null character before sending it to a custom converter. This has been fixed
+  now.
+
+Extension Modules
+-----------------
+
+- #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
+  means that select() on sockets > FD_SETSIZE (typically 1024) work again.
+  The patch makes sockets use poll() internally where available.
+
+- Assigning None to pointer type fields in ctypes structures possible
+  overwrote the wrong fields, this is fixed now.
+
+- Fixed a segfault in _ctypes when ctypes.wintypes were imported
+  on non-Windows platforms.
+
+- Bug #1518190: The ctypes.c_void_p constructor now accepts any
+  integer or long, without range checking.
+
+- Patch #1517790: It is now possible to use custom objects in the ctypes
+  foreign function argtypes sequence as long as they provide a from_param
+  method, no longer is it required that the object is a ctypes type.
+
+- The '_ctypes' extension module now works when Python is configured
+  with the --without-threads option.
+
+- Bug #1513646: os.access on Windows now correctly determines write
+  access, again.
+
+- Bug #1512695: cPickle.loads could crash if it was interrupted with
+  a KeyboardInterrupt.
+
+- Bug #1296433: parsing XML with a non-default encoding and
+  a CharacterDataHandler could crash the interpreter in pyexpat.
+
+- Patch #1516912: improve Modules support for OpenVMS.
+
+Build
+-----
+
+- Automate Windows build process for the Win64 SSL module.
+
+- 'configure' now detects the zlib library the same way as distutils.
+  Previously, the slight difference could cause compilation errors of the
+  'zlib' module on systems with more than one version of zlib.
+
+- The MSI compileall step was fixed to also support a TARGETDIR
+  with spaces in it.
+
+- Bug #1517388: sqlite3.dll is now installed on Windows independent
+  of Tcl/Tk.
+
+- Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
+  trying to be installed even though it's empty.
+
+Tests
+-----
+
+- Call os.waitpid() at the end of tests that spawn child processes in order
+  to minimize resources (zombies).
+
+Documentation
+-------------
+
+- Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
+  documentation for the warnings module.
+
+- Patch #1509163: MS Toolkit Compiler no longer available.
+
+- Patch #1504046: Add documentation for xml.etree.
+
+
+What's New in Python 2.5 beta 1?
+================================
+
+*Release date: 20-JUN-2006*
+
+Core and builtins
+-----------------
+
+- Patch #1507676: Error messages returned by invalid abstract object operations
+  (such as iterating over an integer) have been improved and now include the
+  type of the offending object to help with debugging.
+
+- Bug #992017: A classic class that defined a __coerce__() method that returned
+  its arguments swapped would infinitely recurse and segfault the interpreter.
+
+- Fix the socket tests so they can be run concurrently.
+
+- Removed 5 integers from C frame objects (PyFrameObject).
+  f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
+
+- Bug #532646: object.__call__() will continue looking for the __call__
+  attribute on objects until one without one is found.  This leads to recursion
+  when you take a class and set its __call__ attribute to an instance of the
+  class.  Originally fixed for classic classes, but this fix is for new-style.
+  Removes the infinite_rec_3 crasher.
+
+- The string and unicode methods startswith() and endswith() now accept
+  a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
+
+- Buffer objects, at the C level, never used the char buffer
+  implementation even when the char buffer for the wrapped object was
+  explicitly requested (originally returned the read or write buffer).
+  Now a TypeError is raised if the char buffer is not present but is
+  requested.
+
+- Patch #1346214: Statements like "if 0: suite" are now again optimized
+  away like they were in Python 2.4.
+
+- Builtin exceptions are now full-blown new-style classes instead of
+  instances pretending to be classes, which speeds up exception handling
+  by about 80% in comparison to 2.5a2.
+
+- Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
+  Unicode 4.1.
+
+- Patch #921466: sys.path_importer_cache is now used to cache valid and
+  invalid file paths for the built-in import machinery which leads to
+  fewer open calls on startup.
+
+- Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
+  of-2 bases.  The largest speedup is for inputs with about 1000 decimal
+  digits.  Conversion from non-power-of-2 bases remains quadratic-time in
+  the number of input digits (it was and remains linear-time for bases
+  2, 4, 8, 16 and 32).
+
+- Bug #1334662: ``int(string, base)`` could deliver a wrong answer
+  when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
+  an integer close to ``sys.maxint``.  This was repaired by patch
+  #1335972, which also gives a nice speedup.
+
+- Patch #1337051: reduced size of frame objects.
+
+- PyErr_NewException now accepts a tuple of base classes as its
+  "base" parameter.
+
+- Patch #876206: function call speedup by retaining allocated frame
+  objects.
+
+- Bug #1462152: file() now checks more thoroughly for invalid mode
+  strings and removes a possible "U" before passing the mode to the
+  C library function.
+
+- Patch #1488312, Fix memory alignment problem on SPARC in unicode
+
+- Bug #1487966: Fix SystemError with conditional expression in assignment
+
+- WindowsError now has two error code attributes: errno, which carries
+  the error values from errno.h, and winerror, which carries the error
+  values from winerror.h. Previous versions put the winerror.h values
+  (from GetLastError()) into the errno attribute.
+
+- Patch #1475845: Raise IndentationError for unexpected indent.
+
+- Patch #1479181: split open() and file() from being aliases for each other.
+
+- Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
+  methods were always silently ignored by dictionaries when comparing keys.
+  They are now passed through (except when using the C API function
+  ``PyDict_GetItem()``, whose semantics did not change).
+
+- Bug #1456209: In some obscure cases it was possible for a class with a
+  custom ``__eq__()`` method to confuse dict internals when class instances
+  were used as a dict's keys and the ``__eq__()`` method mutated the dict.
+  No, you don't have any code that did this ;-)
+
+Extension Modules
+-----------------
+
+- Bug #1295808: expat symbols should be namespaced in pyexpat
+
+- Patch #1462338: Upgrade pyexpat to expat 2.0.0
+
+- Change binascii.hexlify to accept a read-only buffer instead of only a char
+  buffer and actually follow its documentation.
+
+- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
+
+- Patch #1478788 (modified version): The functional extension module has
+  been renamed to _functools and a functools Python wrapper module added.
+  This provides a home for additional function related utilities that are
+  not specifically about functional programming. See PEP 309.
+
+- Patch #1493701: performance enhancements for struct module.
+
+- Patch #1490224: time.altzone is now set correctly on Cygwin.
+
+- Patch #1435422: zlib's compress and decompress objects now have a
+  copy() method.
+
+- Patch #1454481: thread stack size is now tunable at runtime for thread
+  enabled builds on Windows and systems with Posix threads support.
+
+- On Win32, os.listdir now supports arbitrarily-long Unicode path names
+  (up to the system limit of 32K characters).
+
+- Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
+  As a result, these functions now raise WindowsError instead of OSError.
+
+- ``time.clock()`` on Win64 should use the high-performance Windows
+  ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
+  Windows platforms).
+
+- Calling Tk_Init twice is refused if the first call failed as that
+  may deadlock.
+
+- bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
+  accept it without potentially using an uninitialized pointer.
+
+- bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
+  assuming BerkeleyDB >= 4.0 and 4.4 respectively.  [pybsddb project SF
+  patch numbers 1494885 and 1494902]
+
+- bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
+  [pybsddb project SF patch number 1466734]
+
+- bsddb: fix DBCursor.pget() bug with keyword argument names when no data
+  parameter is supplied.  [SF pybsddb bug #1477863]
+
+- bsddb: the __len__ method of a DB object has been fixed to return correct
+  results.  It could previously incorrectly return 0 in some cases.
+  Fixes SF bug 1493322 (pybsddb bug 1184012).
+
+- bsddb: the bsddb.dbtables Modify method now raises the proper error and
+  aborts the db transaction safely when a modifier callback fails.
+  Fixes SF python patch/bug #1408584.
+
+- bsddb: multithreaded DB access using the simple bsddb module interface
+  now works reliably.  It has been updated to use automatic BerkeleyDB
+  deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
+  database calls that would previously deadlock. [SF python bug #775414]
+
+- Patch #1446489: add support for the ZIP64 extensions to zipfile.
+
+- Patch #1506645: add Python wrappers for the curses functions
+  is_term_resized, resize_term and resizeterm.
+
+Library
+-------
+
+- Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
+  functions.
+
+- Patch #812986: Update turtle output even if not tracing.
+
+- Patch #1494750: Destroy master after deleting children in
+  Tkinter.BaseWidget.
+
+- Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
+
+- Patch #763580: Add name and value arguments to Tkinter variable
+  classes.
+
+- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
+  mime.types file for determining MIME types.
+
+- Bug #1339007: Shelf objects now don't raise an exception in their
+  __del__ method when initialization failed.
+
+- Patch #1455898: The MBCS codec now supports the incremental mode for
+  double-byte encodings.
+
+- ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
+  guarantee that adjacent triples in the return list always describe
+  non-adjacent blocks.  Previously, a pair of matching blocks could end
+  up being described by multiple adjacent triples that formed a partition
+  of the matching pair.
+
+- Bug #1498146: fix optparse to handle Unicode strings in option help,
+  description, and epilog.
+
+- Bug #1366250: minor optparse documentation error.
+
+- Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
+  clarify docs.
+
+- The wsgiref package has been added to the standard library.
+
+- The functions update_wrapper() and wraps() have been added to the functools
+  module. These make it easier to copy relevant metadata from the original
+  function when writing wrapper functions.
+
+- The optional ``isprivate`` argument to ``doctest.testmod()``, and the
+  ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
+
+- Patch #1359618: Speed up charmap encoder by using a trie structure
+  for lookup.
+
+- The functions in the ``pprint`` module now sort dictionaries by key
+  before computing the display.  Before 2.5, ``pprint`` sorted a dictionary
+  if and only if its display required more than one line, although that
+  wasn't documented.  The new behavior increases predictability; e.g.,
+  using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
+
+- Patch #1497027: try HTTP digest auth before basic auth in urllib2
+  (thanks for J. J. Lee).
+
+- Patch #1496206: improve urllib2 handling of passwords with respect to
+  default HTTP and HTTPS ports.
+
+- Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
+
+- Patch #1281707: speed up gzip.readline.
+
+- Patch #1180296: Two new functions were added to the locale module:
+  format_string() to get the effect of  "format % items" but locale-aware,
+  and currency() to format a monetary number with currency sign.
+
+- Patch #1486962: Several bugs in the turtle Tk demo module were fixed
+  and several features added, such as speed and geometry control.
+
+- Patch #1488881: add support for external file objects in bz2 compressed
+  tarfiles.
+
+- Patch #721464: pdb.Pdb instances can now be given explicit stdin and
+  stdout arguments, making it possible to redirect input and output
+  for remote debugging.
+
+- Patch #1484695: Update the tarfile module to version 0.8. This fixes
+  a couple of issues, notably handling of long file names using the
+  GNU LONGNAME extension.
+
+- Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
+  new flag when ``name`` is already the name of an option flag.
+
+- Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
+  package.
+
+- Patch #1472854: make the rlcompleter.Completer class usable on non-
+  UNIX platforms.
+
+- Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
+
+- Bug #1472827: correctly escape newlines and tabs in attribute values in
+  the saxutils.XMLGenerator class.
+
+
+Build
+-----
+
+- Bug #1502728: Correctly link against librt library on HP-UX.
+
+- OpenBSD 3.9 is supported now.
+
+- Patch #1492356: Port to Windows CE.
+
+- Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
+
+- Patch #1471883: Add --enable-universalsdk.
+
+C API
+-----
+
+Tests
+-----
+
+Tools
+-----
+
+Documentation
+-------------
+
+
+
+What's New in Python 2.5 alpha 2?
+=================================
+
+*Release date: 27-APR-2006*
+
+Core and builtins
+-----------------
+
+- Bug #1465834: 'bdist_wininst preinstall script support' was fixed
+  by converting these apis from macros into exported functions again:
+
+    PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
+    PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
+    PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
+    PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
+    PyRun_String Py_CompileString
+
+- Under COUNT_ALLOCS, types are not necessarily immortal anymore.
+
+- All uses of PyStructSequence_InitType have been changed to initialize
+  the type objects only once, even if the interpreter is initialized
+  multiple times.
+
+- Bug #1454485, array.array('u') could crash the interpreter.  This was
+  due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
+  to unicode when it didn't make sense.  'u#' now requires a unicode string.
+
+- Py_UNICODE is unsigned.  It was always documented as unsigned, but
+  due to a bug had a signed value in previous versions.
+
+- Patch #837242: ``id()`` of any Python object always gives a positive
+  number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
+  ``PyLong_AsVoidPtr`` have been changed accordingly.  Note that it has
+  never been correct to implement a ``__hash()__`` method that returns the
+  ``id()`` of an object:
+
+      def __hash__(self):
+          return id(self)  # WRONG
+
+  because a hash result must be a (short) Python int but it was always
+  possible for ``id()`` to return a Python long.  However, because ``id()``
+  could return negative values before, on a 32-bit box an ``id()`` result
+  was always usable as a hash value before this patch.  That's no longer
+  necessarily so.
+
+- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
+  to load extension modules and now provides the dl module. As a result,
+  sys.setdlopenflags() now works correctly on these systems. (SF patch
+  #1454844)
+
+- Patch #1463867: enhanced garbage collection to allow cleanup of cycles
+  involving generators that have paused outside of any ``try`` or ``with``
+  blocks.  (In 2.5a1, a paused generator that was part of a reference
+  cycle could not be garbage collected, regardless of whether it was
+  paused in a ``try`` or ``with`` block.)
+
+Extension Modules
+-----------------
+
+- Patch #1191065: Fix preprocessor problems on systems where recvfrom
+  is a macro.
+
+- Bug #1467952: os.listdir() now correctly raises an error if readdir()
+  fails with an error condition.
+
+- Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
+
+- Bug #1117761: bsddb.*open() no longer raises an exception when using
+  the cachesize parameter.
+
+- Bug #1149413: bsddb.*open() no longer raises an exception when using
+  a temporary db (file=None) with the 'n' flag to truncate on open.
+
+- Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
+  as older versions cause excessive test failures.
+
+- Patch #1062014: AF_UNIX sockets under Linux have a special
+  abstract namespace that is now fully supported.
+
+Library
+-------
+
+- Bug #1223937: subprocess.CalledProcessError reports the exit status
+  of the process using the returncode attribute, instead of
+  abusing errno.
+
+- Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
+  a doctest to be skipped (the code is not run, and the expected output
+  or exception is ignored).
+
+- Fixed contextlib.nested to cope with exceptions being raised and
+  caught inside exit handlers.
+
+- Updated optparse module to Optik 1.5.1 (allow numeric constants in
+  hex, octal, or binary; add ``append_const`` action; keep going if
+  gettext cannot be imported; added ``OptionParser.destroy()`` method;
+  added ``epilog`` for better help generation).
+
+- Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
+  called from a thread spawned as a side effect of importing a module.
+
+- The pydoc module now supports documenting packages contained in
+  .zip or .egg files.
+
+- The pkgutil module now has several new utility functions, such
+  as ``walk_packages()`` to support working with packages that are either
+  in the filesystem or zip files.
+
+- The mailbox module can now modify and delete messages from
+  mailboxes, in addition to simply reading them.  Thanks to Gregory
+  K. Johnson for writing the code, and to the 2005 Google Summer of
+  Code for funding his work.
+
+- The ``__del__`` method of class ``local`` in module ``_threading_local``
+  returned before accomplishing any of its intended cleanup.
+
+- Patch #790710: Add breakpoint command lists in pdb.
+
+- Patch #1063914: Add Tkinter.Misc.clipboard_get().
+
+- Patch #1191700: Adjust column alignment in bdb breakpoint lists.
+
+- SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
+  Windows. Bug #1469163.
+
+- The warnings, linecache, inspect, traceback, site, and doctest modules
+  were updated to work correctly with modules imported from zipfiles or
+  via other PEP 302 __loader__ objects.
+
+- Patch #1467770: Reduce usage of subprocess._active to processes which
+  the application hasn't waited on.
+
+- Patch #1462222: Fix Tix.Grid.
+
+- Fix exception when doing glob.glob('anything*/')
+
+- The pstats.Stats class accepts an optional stream keyword argument to
+  direct output to an alternate file-like object.
+
+Build
+-----
+
+- The Makefile now has a reindent target, which runs reindent.py on
+  the library.
+
+- Patch #1470875: Building Python with MS Free Compiler
+
+- Patch #1161914: Add a python-config script.
+
+- Patch #1324762:Remove ccpython.cc; replace --with-cxx with
+  --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
+  specified. (Can be overridden by explicitly setting LINKCC.) Decouple
+  CXX from --with-cxx-main, see description in README.
+
+- Patch #1429775: Link extension modules with the shared libpython.
+
+- Fixed a libffi build problem on MIPS systems.
+
+- ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
+  now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
+  and "%zu" for unsigned integers of type ``size_t``.
+
+Tests
+-----
+
+- test_contextlib now checks contextlib.nested can cope with exceptions
+  being raised and caught inside exit handlers.
+
+- test_cmd_line now checks operation of the -m and -c command switches
+
+- The test_contextlib test in 2.5a1 wasn't actually run unless you ran
+  it separately and by hand.  It also wasn't cleaning up its changes to
+  the current Decimal context.
+
+- regrtest.py now has a -M option to run tests that test the new limits of
+  containers, on 64-bit architectures. Running these tests is only sensible
+  on 64-bit machines with more than two gigabytes of memory. The argument
+  passed is the maximum amount of memory for the tests to use.
+
+Tools
+-----
+
+- Added the Python benchmark suite pybench to the Tools/ directory;
+  contributed by Marc-Andre Lemburg.
+
+Documentation
+-------------
+
+- Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
+
+- PEP 343: Added Context Types section to the library reference
+  and attempted to bring other PEP 343 related documentation into
+  line with the implementation and/or python-dev discussions.
+
+- Bug #1337990: clarified that ``doctest`` does not support examples
+  requiring both expected output and an exception.
+
+
+What's New in Python 2.5 alpha 1?
+=================================
+
+*Release date: 05-APR-2006*
+
+Core and builtins
+-----------------
+
+- PEP 338: -m command line switch now delegates to runpy.run_module
+  allowing it to support modules in packages and zipfiles
+
+- On Windows, .DLL is not an accepted file name extension for
+  extension modules anymore; extensions are only found if they
+  end in .PYD.
+
+- Bug #1421664: sys.stderr.encoding is now set to the same value as
+  sys.stdout.encoding.
+
+- __import__ accepts keyword arguments.
+
+- Patch #1460496: round() now accepts keyword arguments.
+
+- Fixed bug #1459029 - unicode reprs were double-escaped.
+
+- Patch #1396919: The system scope threads are reenabled on FreeBSD
+  5.4 and later versions.
+
+- Bug #1115379: Compiling a Unicode string with an encoding declaration
+  now gives a SyntaxError.
+
+- Previously, Python code had no easy way to access the contents of a
+  cell object. Now, a ``cell_contents`` attribute has been added
+  (closes patch #1170323).
+
+- Patch #1123430: Python's small-object allocator now returns an arena to
+  the system ``free()`` when all memory within an arena becomes unused
+  again.  Prior to Python 2.5, arenas (256KB chunks of memory) were never
+  freed.  Some applications will see a drop in virtual memory size now,
+  especially long-running applications that, from time to time, temporarily
+  use a large number of small objects.  Note that when Python returns an
+  arena to the platform C's ``free()``, there's no guarantee that the
+  platform C library will in turn return that memory to the operating system.
+  The effect of the patch is to stop making that impossible, and in tests it
+  appears to be effective at least on Microsoft C and gcc-based systems.
+  Thanks to Evan Jones for hard work and patience.
+
+- Patch #1434038: property() now uses the getter's docstring if there is
+  no "doc" argument given. This makes it possible to legitimately use
+  property() as a decorator to produce a read-only property.
+
+- PEP 357, patch 1436368: add an __index__ method to int/long and a matching
+  nb_index slot to the PyNumberMethods struct.  The slot is consulted instead
+  of requiring an int or long in slicing and a few other contexts, enabling
+  other objects (e.g. Numeric Python's integers) to be used as slice indices.
+
+- Fixed various bugs reported by Coverity's Prevent tool.
+
+- PEP 352, patch #1104669: Make exceptions new-style objects.  Introduced the
+  new exception base class, BaseException, which has a new message attribute.
+  KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
+  Raising a string exception now raises a DeprecationWarning.
+
+- Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
+  explicitly relative, using 'from .module import name' to mean 'from the same
+  package as this module is in. Imports without dots still default to the
+  old relative-then-absolute, unless 'from __future__ import
+  absolute_import' is used.
+
+- Properly check if 'warnings' raises an exception (usually when a filter set
+  to "error" is triggered) when raising a warning for raising string
+  exceptions.
+
+- CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
+  The name was removed from Include/code.h.
+
+- PEP 308: conditional expressions were added: (x if cond else y).
+
+- Patch 1433928:
+  - The copy module now "copies" function objects (as atomic objects).
+  - dict.__getitem__ now looks for a __missing__ hook before raising
+    KeyError.
+
+- PEP 343: with statement implemented. Needs ``from __future__ import
+  with_statement``. Use of 'with' as a variable will generate a warning.
+  Use of 'as' as a variable will also generate a warning (unless it's
+  part of an import statement).
+  The following objects have __context__ methods:
+  - The built-in file type.
+  - The thread.LockType type.
+  - The following types defined by the threading module:
+    Lock, RLock, Condition, Semaphore, BoundedSemaphore.
+  - The decimal.Context class.
+
+- Fix the encodings package codec search function to only search
+  inside its own package. Fixes problem reported in patch #1433198.
+
+  Note: Codec packages should implement and register their own
+  codec search function. PEP 100 has the details.
+
+- PEP 353: Using ``Py_ssize_t`` as the index type.
+
+- ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
+  info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
+  now allow Python to make use of memory blocks exceeding 2**32 bytes for
+  some purposes on 64-bit boxes.  A ``PYMALLOC_DEBUG`` build was limited
+  to 4-byte allocations before.
+
+- Patch #1400181, fix unicode string formatting to not use the locale.
+  This is how string objects work.  u'%f' could use , instead of .
+  for the decimal point.  Now both strings and unicode always use periods.
+
+- Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
+  configure would break checking curses.h.
+
+- Bug #959576: The pwd module is now builtin. This allows Python to be
+  built on UNIX platforms without $HOME set.
+
+- Bug #1072182, fix some potential problems if characters are signed.
+
+- Bug #889500, fix line number on SyntaxWarning for global declarations.
+
+- Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
+
+- Support for converting hex strings to floats no longer works.
+  This was not portable.  float('0x3') now raises a ValueError.
+
+- Patch #1382163: Expose Subversion revision number to Python.  New C API
+  function Py_GetBuildNumber().  New attribute sys.subversion.  Build number
+  is now displayed in interactive prompt banner.
+
+- Implementation of PEP 341 - Unification of try/except and try/finally.
+  "except" clauses can now be written together with a "finally" clause in
+  one try statement instead of two nested ones.  Patch #1355913.
+
+- Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
+  now encodes backslash correctly.
+
+- Patch #1350409: Work around signal handling bug in Visual Studio 2005.
+
+- Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
+  and long longs.
+
+- SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
+  It was possible for dlerror() to return a NULL pointer, so
+  it will now use a default error message in this case.
+
+- Replaced most Unicode charmap codecs with new ones using the
+  new Unicode translate string feature in the builtin charmap
+  codec; the codecs were created from the mapping tables available
+  at ftp.unicode.org and contain a few updates (e.g. the Mac OS
+  encodings now include a mapping for the Apple logo)
+
+- Added a few more codecs for Mac OS encodings
+
+- Sped up some Unicode operations.
+
+- A new AST parser implementation was completed. The abstract
+  syntax tree is available for read-only (non-compile) access
+  to Python code; an _ast module was added.
+
+- SF bug #1167751: fix incorrect code being produced for generator expressions.
+  The following code now raises a SyntaxError:  foo(a = i for i in range(10))
+
+- SF Bug #976608: fix SystemError when mtime of an imported file is -1.
+
+- SF Bug #887946: fix segfault when redirecting stdin from a directory.
+  Provide a warning when a directory is passed on the command line.
+
+- Fix segfault with invalid coding.
+
+- SF bug #772896: unknown encoding results in MemoryError.
+
+- All iterators now have a Boolean value of True.  Formerly, some iterators
+  supported a __len__() method which evaluated to False when the iterator
+  was empty.
+
+- On 64-bit platforms, when __len__() returns a value that cannot be
+  represented as a C int, raise OverflowError.
+
+- test__locale is skipped on OS X < 10.4 (only partial locale support is
+  present).
+
+- SF bug #893549: parsing keyword arguments was broken with a few format
+  codes.
+
+- Changes donated by Elemental Security to make it work on AIX 5.3
+  with IBM's 64-bit compiler (SF patch #1284289).  This also closes SF
+  bug #105470: test_pwd fails on 64bit system (Opteron).
+
+- Changes donated by Elemental Security to make it work on HP-UX 11 on
+  Itanium2 with HP's 64-bit compiler (SF patch #1225212).
+
+- Disallow keyword arguments for type constructors that don't use them
+  (fixes bug #1119418).
+
+- Forward UnicodeDecodeError into SyntaxError for source encoding errors.
+
+- SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
+  exceptions that cause a function to exit.
+
+- The implementation of set() and frozenset() was revised to use its
+  own internal data structure.  Memory consumption is reduced by 1/3
+  and there are modest speed-ups as well.  The API is unchanged.
+
+- SF bug #1238681:  freed pointer is used in longobject.c:long_pow().
+
+- SF bug #1229429: PyObject_CallMethod failed to decrement some
+  reference counts in some error exit cases.
+
+- SF bug #1185883:  Python's small-object memory allocator took over
+  a block managed by the platform C library whenever a realloc specified
+  a small new size.  However, there's no portable way to know then how
+  much of the address space following the pointer is valid, so there's no
+  portable way to copy data from the C-managed block into Python's
+  small-object space without risking a memory fault.  Python's small-object
+  realloc now leaves such blocks under the control of the platform C
+  realloc.
+
+- SF bug #1232517: An overflow error was not detected properly when
+  attempting to convert a large float to an int in os.utime().
+
+- SF bug #1224347: hex longs now print with lowercase letters just
+  like their int counterparts.
+
+- SF bug #1163563: the original fix for bug #1010677 ("thread Module
+  Breaks PyGILState_Ensure()") broke badly in the case of multiple
+  interpreter states; back out that fix and do a better job (see
+  http://mail.python.org/pipermail/python-dev/2005-June/054258.html
+  for a longer write-up of the problem).
+
+- SF patch #1180995: marshal now uses a binary format by default when
+  serializing floats.
+
+- SF patch #1181301: on platforms that appear to use IEEE 754 floats,
+  the routines that promise to produce IEEE 754 binary representations
+  of floats now simply copy bytes around.
+
+- bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
+  278.
+
+- patch #1109424: int, long, float, complex, and unicode now check for the
+  proper magic slot for type conversions when subclassed.  Previously the
+  magic slot was ignored during conversion.  Semantics now match the way
+  subclasses of str always behaved.  int/long/float, conversion of an instance
+  to the base class has been moved to the proper nb_* magic slot and out of
+  PyNumber_*().
+  Thanks Walter D�rwald.
+
+- Descriptors defined in C with a PyGetSetDef structure, where the setter is
+  NULL, now raise an AttributeError when attempting to set or delete the
+  attribute.  Previously a TypeError was raised, but this was inconsistent
+  with the equivalent pure-Python implementation.
+
+- It is now safe to call PyGILState_Release() before
+  PyEval_InitThreads() (note that if there is reason to believe there
+  are multiple threads around you still must call PyEval_InitThreads()
+  before using the Python API; this fix is for extension modules that
+  have no way of knowing if Python is multi-threaded yet).
+
+- Typing Ctrl-C whilst raw_input() was waiting in a build with threads
+  disabled caused a crash.
+
+- Bug #1165306: instancemethod_new allowed the creation of a method
+  with im_class == im_self == NULL, which caused a crash when called.
+
+- Move exception finalisation later in the shutdown process - this
+  fixes the crash seen in bug #1165761
+
+- Added two new builtins, any() and all().
+
+- Defining a class with empty parentheses is now allowed
+  (e.g., ``class C(): pass`` is no longer a syntax error).
+  Patch #1176012 added support to the 'parser' module and 'compiler' package
+  (thanks to logistix for that added support).
+
+- Patch #1115086: Support PY_LONGLONG in structmember.
+
+- Bug #1155938: new style classes did not check that __init__() was
+  returning None.
+
+- Patch #802188: Report characters after line continuation character
+  ('\') with a specific error message.
+
+- Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
+
+- Bug #1124295: the __name__ attribute of file objects was
+  inadvertently made inaccessible in restricted mode.
+
+- Bug #1074011: closing sys.std{out,err} now causes a flush() and
+  an ferror() call.
+
+- min() and max() now support key= arguments with the same meaning as in
+  list.sort().
+
+- The peephole optimizer now performs simple constant folding in expressions:
+      (2+3) --> (5).
+
+- set and frozenset objects can now be marshalled.  SF #1098985.
+
+- Bug #1077106: Poor argument checking could cause memory corruption
+  in calls to os.read().
+
+- The parser did not complain about future statements in illegal
+  positions.  It once again reports a syntax error if a future
+  statement occurs after anything other than a doc string.
+
+- Change the %s format specifier for str objects so that it returns a
+  unicode instance if the argument is not an instance of basestring and
+  calling __str__ on the argument returns a unicode instance.
+
+- Patch #1413181:  changed ``PyThreadState_Delete()`` to forget about the
+  current thread state when the auto-GIL-state machinery knows about
+  it (since the thread state is being deleted, continuing to remember it
+  can't help, but can hurt if another thread happens to get created with
+  the same thread id).
+
+Extension Modules
+-----------------
+
+- Patch #1380952: fix SSL objects timing out on consecutive read()s
+
+- Patch #1309579: wait3 and wait4 were added to the posix module.
+
+- Patch #1231053: The audioop module now supports encoding/decoding of alaw.
+  In addition, the existing ulaw code was updated.
+
+- RFE #567972: Socket objects' family, type and proto properties are
+  now exposed via new attributes.
+
+- Everything under lib-old was removed.  This includes the following modules:
+    Para, addpack, cmp, cmpcache, codehack, dircmp, dump, find, fmt, grep,
+    lockfile, newdir, ni, packmail, poly, rand, statcache, tb, tzparse,
+    util, whatsound, whrandom, zmod
+
+- The following modules were removed:  regsub, reconvert, regex, regex_syntax.
+
+- re and sre were swapped, so help(re) provides full help.  importing sre
+  is deprecated.  The undocumented re.engine variable no longer exists.
+
+- Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
+  SS2 (single-shift 2) escape sequences correctly.
+
+- The unicodedata module was updated to the 4.1 version of the Unicode
+  database. The 3.2 version is still available as unicodedata.db_3_2_0
+  for applications that require this specific version (such as IDNA).
+
+- The timing module is no longer built by default.  It was deprecated
+  in PEP 4 in Python 2.0 or earlier.
+
+- Patch 1433928: Added a new type, defaultdict, to the collections module.
+  This uses the new __missing__ hook behavior added to dict (see above).
+
+- Bug #854823: socketmodule now builds on Sun platforms even when
+  INET_ADDRSTRLEN is not defined.
+
+- Patch #1393157: os.startfile() now has an optional argument to specify
+  a "command verb" to invoke on the file.
+
+- Bug #876637, prevent stack corruption when socket descriptor
+  is larger than FD_SETSIZE.
+
+- Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory.
+  mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows.
+  mmap.mmap(0, size) should not be used on Windows for anonymous memory.
+
+- Patch #1422385: The nis module now supports access to domains other
+  than the system default domain.
+
+- Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps
+  are reported, the limit on path name lengths is removed, and stat reports
+  WindowsError now (instead of OSError).
+
+- Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery.
+
+- Bug #1413192, fix seg fault in bsddb if a transaction was deleted
+  before the env.
+
+- Patch #1103116: Basic AF_NETLINK support.
+
+- Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
+
+- Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
+  Also fix ungetmouse() which did not accept arguments properly.
+  The code now conforms to the documented signature.
+
+- Bug #1400115, Fix segfault when calling curses.panel.userptr()
+  without prior setting of the userptr.
+
+- Fix 64-bit problems in bsddb.
+
+- Patch #1365916: fix some unsafe 64-bit mmap methods.
+
+- Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
+  problem on AIX.
+
+- Bug #869197: os.setgroups rejects long integer arguments
+
+- Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
+
+- Bug #1344508, Fix UNIX mmap leaking file descriptors
+
+- Patch #1338314, Bug #1336623: fix tarfile so it can extract
+  REGTYPE directories from tarfiles written by old programs.
+
+- Patch #1407992, fixes broken bsddb module db associate when using
+  BerkeleyDB 3.3, 4.0 or 4.1.
+
+- Get bsddb module to build with BerkeleyDB version 4.4
+
+- Get bsddb module to build with BerkeleyDB version 3.2
+
+- Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
+  but Python incorrectly assumes it is in UTF-8 format
+
+- Fix parse errors in the readline module when compiling without threads.
+
+- Patch #1288833: Removed thread lock from socket.getaddrinfo on
+  FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
+
+- Patches #1298449 and #1298499: Add some missing checks for error
+  returns in cStringIO.c.
+
+- Patch #1297028: fix segfault if call type on MultibyteCodec,
+  MultibyteStreamReader, or MultibyteStreamWriter
+
+- Fix memory leak in posix.access().
+
+- Patch #1213831: Fix typo in unicodedata._getcode.
+
+- Bug #1007046: os.startfile() did not accept unicode strings encoded in
+  the file system encoding.
+
+- Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
+  platforms that don't have inet_aton().
+
+- Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
+
+- Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
+  line without newlines.
+
+- Bug #728515: mmap.resize() now resizes the file on Unix as it did
+  on Windows.
+
+- Patch #1180695: Add nanosecond stat resolution, and st_gen,
+  st_birthtime for FreeBSD.
+
+- Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
+  the request code argument, which results in more C-like behaviour
+  for large or negative values.
+
+- Bug #1234979: For the argument of thread.Lock.acquire, the Windows
+  implementation treated all integer values except 1 as false.
+
+- Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
+
+- Patch #1212117: os.stat().st_flags is now accessible as a attribute
+  if available on the platform.
+
+- Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
+  available on the platform.
+
+- Bug #1166660: The readline module could segfault if hook functions
+  were set in a different thread than that which called readline.
+
+- collections.deque objects now support a remove() method.
+
+- operator.itemgetter() and operator.attrgetter() now support retrieving
+  multiple fields.  This provides direct support for sorting on multiple
+  keys (primary, secondary, etc).
+
+- os.access now supports Unicode path names on non-Win32 systems.
+
+- Patches #925152, #1118602: Avoid reading after the end of the buffer
+  in pyexpat.GetInputContext.
+
+- Patches #749830, #1144555: allow UNIX mmap size to default to current
+  file size.
+
+- Added functional.partial().  See PEP309.
+
+- Patch #1093585: raise a ValueError for negative history items in readline.
+  {remove_history,replace_history}
+
+- The spwd module has been added, allowing access to the shadow password
+  database.
+
+- stat_float_times is now True.
+
+- array.array objects are now picklable.
+
+- the cPickle module no longer accepts the deprecated None option in the
+  args tuple returned by __reduce__().
+
+- itertools.islice() now accepts None for the start and step arguments.
+  This allows islice() to work more readily with slices:
+      islice(s.start, s.stop, s.step)
+
+- datetime.datetime() now has a strptime class method which can be used to
+  create datetime object using a string and format.
+
+- Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
+  with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
+
+Library
+-------
+
+- Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
+  been renamed to have only a single underscore prefix.  This was done to
+  make subclassing easier.
+
+- PEP 338: new module runpy defines a run_module function to support
+  executing modules which provide access to source code or a code object
+  via the PEP 302 import mechanisms.
+
+- The email module's parsedate_tz function now sets the daylight savings
+  flag to -1 (unknown) since it can't tell from the date whether it should
+  be set.
+
+- Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
+  now sport attributes that provide access to the parts of the result.
+
+- Patch #1462498: sgmllib now handles entity and character references
+  in attribute values.
+
+- Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
+  a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
+  later to build this - if you have an earlier version, the C extension
+  module will not be built.
+
+- Bug #1460340: ``random.sample(dict)`` failed in various ways.  Dicts
+  aren't officially supported here, and trying to use them will probably
+  raise an exception some day.  But dicts have been allowed, and "mostly
+  worked", so support for them won't go away without warning.
+
+- Bug #1445068: getpass.getpass() can now be given an explicit stream
+  argument to specify where to write the prompt.
+
+- Patch #1462313, bug #1443328: the pickle modules now can handle classes
+  that have __private names in their __slots__.
+
+- Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
+
+- patch #1457316: "setup.py upload" now supports --identity to select the
+  key to be used for signing the uploaded code.
+
+- Queue.Queue objects now support .task_done() and .join() methods
+  to make it easier to monitor when daemon threads have completed
+  processing all enqueued tasks.  Patch #1455676.
+
+- popen2.Popen objects now preserve the command in a .cmd attribute.
+
+- Added the ctypes ffi package.
+
+- email 4.0 package now integrated.  This is largely the same as the email 3.0
+  package that was included in Python 2.3, except that PEP 8 module names are
+  now used (e.g. mail.message instead of email.Message).  The MIME classes
+  have been moved to a subpackage (e.g. email.mime.text instead of
+  email.MIMEText).  The old names are still supported for now.  Several
+  deprecated Message methods have been removed and lots of bugs have been
+  fixed.  More details can be found in the email package documentation.
+
+- Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object
+  (a subclass of tuple) that provides incremental decoders and encoders
+  (a way to use stateful codecs without the stream API). Python functions
+  codecs.getincrementaldecoder() and codecs.getincrementalencoder() as well
+  as C functions PyCodec_IncrementalEncoder() and PyCodec_IncrementalDecoder()
+  have been added.
+
+- Patch #1359365: Calling next() on a closed StringIO.String object raises
+  a ValueError instead of a StopIteration now (like file and cString.String do).
+  cStringIO.StringIO.isatty() will raise a ValueError now if close() has been
+  called before (like file and StringIO.StringIO do).
+
+- A regrtest option -w was added to re-run failed tests in verbose mode.
+
+- Patch #1446372: quit and exit can now be called from the interactive
+  interpreter to exit.
+
+- The function get_count() has been added to the gc module, and gc.collect()
+  grew an optional 'generation' argument.
+
+- A library msilib to generate Windows Installer files, and a distutils
+  command bdist_msi have been added.
+
+- PEP 343: new module contextlib.py defines decorator @contextmanager
+  and helpful context managers nested() and closing().
+
+- The compiler package now supports future imports after the module docstring.
+
+- Bug #1413790: zipfile now sanitizes absolute archive names that are
+  not allowed by the specs.
+
+- Patch #1215184: FileInput now can be given an opening hook which can
+  be used to control how files are opened.
+
+- Patch #1212287: fileinput.input() now has a mode parameter for
+  specifying the file mode input files should be opened with.
+
+- Patch #1215184: fileinput now has a fileno() function for getting the
+  current file number.
+
+- Patch #1349274: gettext.install() now optionally installs additional
+  translation functions other than _() in the builtin namespace.
+
+- Patch #1337756: fileinput now accepts Unicode filenames.
+
+- Patch #1373643: The chunk module can now read chunks larger than
+  two gigabytes.
+
+- Patch #1417555: SimpleHTTPServer now returns Last-Modified headers.
+
+- Bug #1430298: It is now possible to send a mail with an empty
+  return address using smtplib.
+
+- Bug #1432260: The names of lambda functions are now properly displayed
+  in pydoc.
+
+- Patch #1412872: zipfile now sets the creator system to 3 (Unix)
+  unless the system is Win32.
+
+- Patch #1349118: urllib now supports user:pass@ style proxy
+  specifications, raises IOErrors when proxies for unsupported protocols
+  are defined, and uses the https proxy on https redirections.
+
+- Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
+
+- Bug #1407902: Add support for sftp:// URIs to urlparse.
+
+- Bug #1371247: Update Windows locale identifiers in locale.py.
+
+- Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
+  any more.
+
+- Bug #1403410: The warnings module now doesn't get confused
+  when it can't find out the module name it generates a warning for.
+
+- Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature.
+
+- Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode
+
+- Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
+  LoadError as documented, instead of IOError.  For compatibility,
+  LoadError subclasses IOError.
+
+- Added the hashlib module.  It provides secure hash functions for MD5 and
+  SHA1, 224, 256, 384, and 512.  Note that recent developments make the
+  historic MD5 and SHA1 unsuitable for cryptographic-strength applications.
+  In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html>
+  Ronald L. Rivest offered this advice for Python:
+
+      "The consensus of researchers in this area (at least as
+      expressed at the NIST Hash Function Workshop 10/31/05),
+      is that SHA-256 is a good choice for the time being, but
+      that research should continue, and other alternatives may
+      arise from this research.  The larger SHA's also seem OK."
+
+- Added a subset of Fredrik Lundh's ElementTree package.  Available
+  modules are xml.etree.ElementTree, xml.etree.ElementPath, and
+  xml.etree.ElementInclude, from ElementTree 1.2.6.
+
+- Patch #1162825: Support non-ASCII characters in IDLE window titles.
+
+- Bug #1365984: urllib now opens "data:" URLs again.
+
+- Patch #1314396: prevent deadlock for threading.Thread.join() when an exception
+  is raised within the method itself on a previous call (e.g., passing in an
+  illegal argument)
+
+- Bug #1340337: change time.strptime() to always return ValueError when there
+  is an error in the format string.
+
+- Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann).
+
+- Bug #729103: pydoc.py: Fix docother() method to accept additional
+  "parent" argument.
+
+- Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
+  for padding.
+
+- Bug #1296004: httplib.py: Limit maximal amount of data read from the
+  socket to avoid a MemoryError on Windows.
+
+- Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
+  to get the correct encoding.
+
+- Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
+  languages.
+
+- Patch #1268314: Cache lines in StreamReader.readlines for performance.
+
+- Bug #1290505: Fix clearing the regex cache for time.strptime().
+
+- Bug #1167128: Fix size of a symlink in a tarfile to be 0.
+
+- Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
+  functionality.
+
+- Bug #1163178: Make IDNA return an empty string when the input is empty.
+
+- Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
+  separator and do not output trailing semicolon.
+
+- Patch #1062060: urllib.urlretrieve() now raises a new exception, named
+  ContentTooShortException, when the actually downloaded size does not
+  match the Content-Length header.
+
+- Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
+
+- Bug #1178484: Return complete lines from codec stream readers
+  even if there is an exception in later lines, resulting in
+  correct line numbers for decoding errors in source code.
+
+- Bug #1192315: Disallow negative arguments to clear() in pdb.
+
+- Patch #827386: Support absolute source paths in msvccompiler.py.
+
+- Patch #1105730: Apply the new implementation of commonprefix in posixpath
+  to ntpath, macpath, os2emxpath and riscospath.
+
+- Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
+  __hasattr__ and __delattr__ methods on class Tk that were breaking
+  Tkdnd.
+
+- Bug #1015140: disambiguated the term "article id" in nntplib docs and
+  docstrings to either "article number" or "message id".
+
+- Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
+  parameter, but uses the usual "kwargs=None".
+
+- textwrap now processes text chunks at O(n) speed instead of O(n**2).
+  Patch #1209527 (Contributed by Connelly).
+
+- urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
+  to W3C name (404 -> 'Not Found'). RFE #1216944.
+
+- Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
+  as this can cause problems with apps closing all file descriptors.
+
+- Bug #839151: Fix an attempt to access sys.argv in the warnings module;
+  it can be missing in embedded interpreters
+
+- Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
+
+- Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
+  error messages.
+
+- Bug #1108948: Cookie.py produced invalid JavaScript code.
+
+- The tokenize module now detects and reports indentation errors.
+  Bug #1224621.
+
+- The tokenize module has a new untokenize() function to support a full
+  roundtrip from lexed tokens back to Python source code.  In addition,
+  the generate_tokens() function now accepts a callable argument that
+  terminates by raising StopIteration.
+
+- Bug #1196315: fix weakref.WeakValueDictionary constructor.
+
+- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
+  component of the path.
+
+- Patch #1120353: The xmlrpclib module provides better, more transparent,
+  support for datetime.{datetime,date,time} objects.  With use_datetime set
+  to True, applications shouldn't have to fiddle with the DateTime wrapper
+  class at all.
+
+- distutils.commands.upload was added to support uploading distribution
+  files to PyPI.
+
+- distutils.commands.register now encodes the data as UTF-8 before posting
+  them to PyPI.
+
+- decimal operator and comparison methods now return NotImplemented
+  instead of raising a TypeError when interacting with other types.  This
+  allows other classes to implement __radd__ style methods and have them
+  work as expected.
+
+- Bug #1163325:  Decimal infinities failed to hash.  Attempting to
+  hash a NaN raised an InvalidOperation instead of a TypeError.
+
+- Patch #918101: Add tarfile open mode r|* for auto-detection of the
+  stream compression; add, for symmetry reasons, r:* as a synonym of r.
+
+- Patch #1043890: Add extractall method to tarfile.
+
+- Patch #1075887: Don't require MSVC in distutils if there is nothing
+  to build.
+
+- Patch #1103407: Properly deal with tarfile iterators when untarring
+  symbolic links on Windows.
+
+- Patch #645894: Use getrusage for computing the time consumption in
+  profile.py if available.
+
+- Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
+
+- Patch #1117454: Remove code to special-case cookies without values
+  in LWPCookieJar.
+
+- Patch #1117339: Add cookielib special name tests.
+
+- Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
+
+- Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
+
+- Patch #1107973: Allow to iterate over the lines of a tarfile.ExFileObject.
+
+- Patch #1104111: Alter setup.py --help and --help-commands.
+
+- Patch #1121234: Properly cleanup _exit and tkerror commands.
+
+- Patch #1049151: xdrlib now unpacks booleans as True or False.
+
+- Fixed bug in a NameError bug in cookielib.  Patch #1116583.
+
+- Applied a security fix to SimpleXMLRPCserver (PSF-2005-001).  This
+  disables recursive traversal through instance attributes, which can
+  be exploited in various ways.
+
+- Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec
+  flags on the HTTP listening socket.
+
+- Bug #792570: SimpleXMLRPCServer had problems if the request grew too large.
+  Fixed by reading the HTTP body in chunks instead of one big socket.read().
+
+- Patches #893642, #1039083: add allow_none, encoding arguments to
+  constructors of SimpleXMLRPCServer and CGIXMLRPCRequestHandler.
+
+- Bug #1110478: Revert os.environ.update to do putenv again.
+
+- Bug #1103844: fix distutils.install.dump_dirs() with negated options.
+
+- os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience.
+
+- Enhancements to the csv module:
+
+  + Dialects are now validated by the underlying C code, better
+    reflecting its capabilities, and improving its compliance with
+    PEP 305.
+  + Dialect parameter parsing has been re-implemented to improve error
+    reporting.
+  + quotechar=None and quoting=QUOTE_NONE now work the way PEP 305
+    dictates.
+  + the parser now removes the escapechar prefix from escaped characters.
+  + when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric
+    types, rather than any object that can be represented as a numeric.
+  + when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields
+    to floats.
+  + reader now allows \r characters to be quoted (previously it only allowed
+    \n to be quoted).
+  + writer doublequote handling improved.
+  + Dialect classes passed to the module are no longer instantiated by
+    the module before being parsed (the former validation scheme required
+    this, but the mechanism was unreliable).
+  + The dialect registry now contains instances of the internal
+    C-coded dialect type, rather than references to python objects.
+  + the internal c-coded dialect type is now immutable.
+  + register_dialect now accepts the same keyword dialect specifications
+    as the reader and writer, allowing the user to register dialects
+    without first creating a dialect class.
+  + a configurable limit to the size of parsed fields has been added -
+    previously, an unmatched quote character could result in the entire
+    file being read into the field buffer before an error was reported.
+  + A new module method csv.field_size_limit() has been added that sets
+    the parser field size limit (returning the former limit). The initial
+    limit is 128kB.
+  + A line_num attribute has been added to the reader object, which tracks
+    the number of lines read from the source iterator. This is not
+    the same as the number of records returned, as records can span
+    multiple lines.
+  + reader and writer objects were not being registered with the cyclic-GC.
+    This has been fixed.
+
+- _DummyThread objects in the threading module now delete self.__block that is
+  inherited from _Thread since it uses up a lock allocated by 'thread'.  The
+  lock primitives tend to be limited in number and thus should not be wasted on
+  a _DummyThread object.  Fixes bug #1089632.
+
+- The imghdr module now detects Exif files.
+
+- StringIO.truncate() now correctly adjusts the size attribute.
+  (Bug #951915).
+
+- locale.py now uses an updated locale alias table (built using
+  Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
+  alias file); the encoding lookup was enhanced to use Python's
+  encoding alias table.
+
+- moved deprecated modules to Lib/lib-old:  whrandom, tzparse, statcache.
+
+- the pickle module no longer accepts the deprecated None option in the
+  args tuple returned by __reduce__().
+
+- optparse now optionally imports gettext.  This allows its use in setup.py.
+
+- the pickle module no longer uses the deprecated bin parameter.
+
+- the shelve module no longer uses the deprecated binary parameter.
+
+- the pstats module no longer uses the deprecated ignore() method.
+
+- the filecmp module no longer uses the deprecated use_statcache argument.
+
+- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
+  extended or overridden by subclasses.  Formerly, the subclassed method would
+  be ignored by the rest of the module.  (Bug #1078905).
+
+- heapq.nsmallest() and heapq.nlargest() now support key= arguments with
+  the same meaning as in list.sort().
+
+- Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
+  once when a size argument is given. This prevents a buffer overflow in the
+  tokenizer with very long source lines.
+
+- Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
+  immediately after creating the object, without any intervening
+  ``.decompress()`` calls.
+
+- The reconvert.quote function can now emit triple-quoted strings.  The
+  reconvert module now has some simple documentation.
+
+- ``UserString.MutableString`` now supports negative indices in
+  ``__setitem__`` and ``__delitem__``
+
+- Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05")
+  correctly.
+
+- Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
+  ``codecs.StreamReader.readline()`` has a trailing "\r", read one more
+  character even if the user has passed a size parameter to get a proper
+  line ending. Remove the special handling of a "\r\n" that has been split
+  between two lines.
+
+- Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
+  about illegal code points. The codec now supports PEP 293 style error
+  handlers.
+
+- Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
+  from the input stream, so that the output is a byte string in the correct
+  encoding instead of a unicode string.
+
+- Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
+  considering it exactly like a '*'.
+
+- Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
+  ``encodings.aliases``.
+
+- ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
+
+- Patch #1413711: Certain patterns of differences were making difflib
+  touch the recursion limit.
+
+- Bug #947906: An object oriented interface has been added to the calendar
+  module. It's possible to generate HTML calendar now and the module can be
+  called as a script (e.g. via ``python -mcalendar``). Localized month and
+  weekday names can be ouput (even if an exotic encoding is used) using
+  special classes that use unicode.
+
+Build
+-----
+
+- Fix test_float, test_long, and test_struct failures on Tru64 with gcc
+  by using -mieee gcc option.
+
+- Patch #1432345: Make python compile on DragonFly.
+
+- Build support for Win64-AMD64 was added.
+
+- Patch #1428494: Prefer linking against ncursesw over ncurses library.
+
+- Patch #881820: look for openpty and forkpty also in libbsd.
+
+- The sources of zlib are now part of the Python distribution (zlib 1.2.3).
+  The zlib module is now builtin on Windows.
+
+- Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
+
+- Bug #1189330: configure did not correctly determine the necessary
+  value of LINKCC if python was built with GCC 4.0.
+
+- Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
+  vulnerability in zlib 1.2.1 and 1.2.2.
+
+- EXTRA_CFLAGS has been introduced as an environment variable to hold compiler
+  flags that change binary compatibility.  Changes were also made to
+  distutils.sysconfig to also use the environment variable when used during
+  compilation of the interpreter and of C extensions through distutils.
+
+- SF patch 1171735: Darwin 8's headers are anal about POSIX compliance,
+  and linking has changed (prebinding is now deprecated, and libcc_dynamic
+  no longer exists). This configure patch makes things right.
+
+- Bug #1158607: Build with --disable-unicode again.
+
+- spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is
+  defined.  Discovered as a result of not being able to build on OS X.
+
+- setup.py now uses the directories specified in LDFLAGS using the -L option
+  and in CPPFLAGS using the -I option for adding library and include
+  directories, respectively, for compiling extension modules against.  This has
+  led to the core being compiled using the values in CPPFLAGS.  It also removes
+  the need for the special-casing of both DarwinPorts and Fink for darwin since
+  the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink,
+  ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for
+  Fink, ``-I/opt/local/include`` for DarwinPorts).
+
+- Test in configure.in that checks for tzset no longer dependent on tm->tm_zone
+  to exist in the struct (not required by either ISO C nor the UNIX 2 spec).
+  Tests for sanity in tzname when HAVE_TZNAME defined were also defined.
+  Closes bug #1096244.  Thanks Gregory Bond.
+
+C API
+-----
+
+- ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to
+  ``PyObject_{Free, FREE}``.  They map to the system ``free()`` now.  If memory
+  is obtained via the ``PyObject_`` family, it must be released via the
+  ``PyObject_`` family, and likewise for the ``PyMem_`` family.  This has
+  always been officially true, but when Python's small-object allocator was
+  introduced, an attempt was made to cater to a few extension modules
+  discovered at the time that obtained memory via ``PyObject_New`` but
+  released it via ``PyMem_DEL``.  It's years later, and if such code still
+  exists it will fail now (probably with segfaults, but calling wrong
+  low-level memory management functions can yield many symptoms).
+
+- Added a C API for set and frozenset objects.
+
+- Removed PyRange_New().
+
+- Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the
+  mapping argument now. This string is used as a mapping table. Byte values
+  greater than the length of the string and 0xFFFE are treated as undefined
+  mappings.
+
+
+Tests
+-----
+
+- In test_os, st_?time is now truncated before comparing it with ST_?TIME.
+
+- Patch #1276356: New resource "urlfetch" is implemented.  This enables
+  even impatient people to run tests that require remote files.
+
+
+Documentation
+-------------
+
+- Bug #1402224: Add warning to dl docs about crashes.
+
+- Bug #1396471: Document that Windows' ftell() can return invalid
+  values for text files with UNIX-style line endings.
+
+- Bug #1274828: Document os.path.splitunc().
+
+- Bug #1190204: Clarify which directories are searched by site.py.
+
+- Bug #1193849: Clarify os.path.expanduser() documentation.
+
+- Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
+
+- Bug #755617: Document the effects of os.chown() on Windows.
+
+- Patch #1180012: The documentation for modulefinder is now in the library reference.
+
+- Patch #1213031: Document that os.chown() accepts argument values of -1.
+
+- Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
+
+- Bug #1175022: Correct the example code for property().
+
+- Document the IterableUserDict class in the UserDict module.
+  Closes bug #1166582.
+
+- Remove all latent references for "Macintosh" that referred to semantics for
+  Mac OS 9 and change to reflect the state for OS X.
+  Closes patch #1095802.  Thanks Jack Jansen.
+
+Mac
+---
+
+
+New platforms
+-------------
+
+- FreeBSD 7 support is added.
+
+
+Tools/Demos
+-----------
+
+- Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that
+  directory for syntax highlighting in Vim.  Vim directory was added and placed
+  vimrc to it (was previous up a level).
+
+- Added two new files to Tools/scripts: pysource.py, which recursively
+  finds Python source files, and findnocoding.py, which finds Python
+  source files that need an encoding declaration.
+  Patch #784089, credits to Oleg Broytmann.
+
+- Bug #1072853: pindent.py used an uninitialized variable.
+
+- Patch #1177597: Correct Complex.__init__.
+
+- Fixed a display glitch in Pynche, which could cause the right arrow to
+  wiggle over by a pixel.
+
+
 What's New in Python 2.4 final?
 ===============================
 

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Thu Feb 21 20:46:35 2008
@@ -1057,14 +1057,14 @@
   written to disk after calling .flush() or .close(). (Patch by David
   Watson.)
 
-- Patch #1592250: Add elidge argument to Tkinter.Text.search.
+- Patch #1592250: Add elide argument to Tkinter.Text.search.
 
-- Patch #838546: Make terminal become controlling in pty.fork()
+- Patch #838546: Make terminal become controlling in pty.fork().
 
 - Patch #1351744: Add askyesnocancel helper for tkMessageBox.
 
 - Patch #1060577: Extract list of RPM files from spec file in
-  bdist_rpm
+  bdist_rpm.
 
 - Bug #1586613: fix zlib and bz2 codecs' incremental en/decoders.
 
@@ -1148,7 +1148,8 @@
 - idle: Honor the "Cancel" action in the save dialog (Debian bug #299092).
 
 - Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the
-  first chunk fed to the decoder started with a BOM, but was longer than 3 bytes.
+  first chunk fed to the decoder started with a BOM, but was longer than 3
+  bytes.
 
 - The implementation of UnicodeError objects has been simplified (start and end
   attributes are now stored directly as Py_ssize_t members).
@@ -1648,2143 +1649,6 @@
   lead to the deprecation of macostools.touched() as it relied solely on macfs
   and was a no-op under OS X.
 
-
-What's New in Python 2.5 release candidate 1?
-=============================================
-
-*Release date: 17-AUG-2006*
-
-Core and builtins
------------------
-
-- Unicode objects will no longer raise an exception when being
-  compared equal or unequal to a string and a UnicodeDecodeError
-  exception occurs, e.g. as result of a decoding failure.
-
-  Instead, the equal (==) and unequal (!=) comparison operators will
-  now issue a UnicodeWarning and interpret the two objects as
-  unequal. The UnicodeWarning can be filtered as desired using
-  the warning framework, e.g. silenced completely, turned into an
-  exception, logged, etc.
-
-  Note that compare operators other than equal and unequal will still
-  raise UnicodeDecodeError exceptions as they've always done.
-
-- Fix segfault when doing string formatting on subclasses of long.
-
-- Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
-  with new-style classes.
-
-- Fix bug related to __len__ functions returning negative values with
-  classic classes.
-
-- Patch #1538606, Fix __index__() clipping.  There were some problems
-  discovered with the API and how integers that didn't fit into Py_ssize_t
-  were handled.  This patch attempts to provide enough alternatives
-  to effectively use __index__.
-
-- Bug #1536021: __hash__ may now return long int; the final hash
-  value is obtained by invoking hash on the long int.
-
-- Bug #1536786: buffer comparison could emit a RuntimeWarning.
-
-- Bug #1535165: fixed a segfault in input() and raw_input() when
-  sys.stdin is closed.
-
-- On Windows, the PyErr_Warn function is now exported from
-  the Python dll again.
-
-- Bug #1191458: tracing over for loops now produces a line event
-  on each iteration.  Fixing this problem required changing the .pyc
-  magic number.  This means that .pyc files generated before 2.5c1
-  will be regenerated.
-
-- Bug #1333982: string/number constants were inappropriately stored
-  in the byte code and co_consts even if they were not used, ie
-  immediately popped off the stack.
-
-- Fixed a reference-counting problem in property().
-
-
-Library
--------
-
-- Fix a bug in the ``compiler`` package that caused invalid code to be
-  generated for generator expressions.
-
-- The distutils version has been changed to 2.5.0. The change to
-  keep it programmatically in sync with the Python version running
-  the code (introduced in 2.5b3) has been reverted. It will continue
-  to be maintained manually as static string literal.
-
-- If the Python part of a ctypes callback function returns None,
-  and this cannot be converted to the required C type, an exception is
-  printed with PyErr_WriteUnraisable.  Before this change, the C
-  callback returned arbitrary values to the calling code.
-
-- The __repr__ method of a NULL ctypes.py_object() no longer raises
-  an exception.
-
-- uuid.UUID now has a bytes_le attribute. This returns the UUID in
-  little-endian byte order for Windows. In addition, uuid.py gained some
-  workarounds for clocks with low resolution, to stop the code yielding
-  duplicate UUIDs.
-
-- Patch #1540892: site.py Quitter() class attempts to close sys.stdin
-  before raising SystemExit, allowing IDLE to honor quit() and exit().
-
-- Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
-
-- Patch #1536071: trace.py should now find the full module name of a
-  file correctly even on Windows.
-
-- logging's atexit hook now runs even if the rest of the module has
-  already been cleaned up.
-
-- Bug #1112549, fix DoS attack on cgi.FieldStorage.
-
-- Bug #1531405, format_exception no longer raises an exception if
-  str(exception) raised an exception.
-
-- Fix a bug in the ``compiler`` package that caused invalid code to be
-  generated for nested functions.
-
-
-Extension Modules
------------------
-
-- Patch #1511317: don't crash on invalid hostname (alias) info.
-
-- Patch #1535500: fix segfault in BZ2File.writelines and make sure it
-  raises the correct exceptions.
-
-- Patch # 1536908: enable building ctypes on OpenBSD/AMD64.  The
-  '-no-stack-protector' compiler flag for OpenBSD has been removed.
-
-- Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
-  uses the _as_parameter_ attribute when objects are passed to foreign
-  function calls.  The ctypes version number was changed to 1.0.1.
-
-- Bug #1530559, struct.pack raises TypeError where it used to convert.
-  Passing float arguments to struct.pack when integers are expected
-  now triggers a DeprecationWarning.
-
-
-Tests
------
-
-- test_socketserver should now work on cygwin and not fail sporadically
-  on other platforms.
-
-- test_mailbox should now work on cygwin versions 2006-08-10 and later.
-
-- Bug #1535182: really test the xreadlines() method of bz2 objects.
-
-- test_threading now skips testing alternate thread stack sizes on
-  platforms that don't support changing thread stack size.
-
-
-Documentation
--------------
-
-- Patch #1534922: unittest docs were corrected and enhanced.
-
-
-Build
------
-
-- Bug #1535502, build _hashlib on Windows, and use masm assembler
-  code in OpenSSL.
-
-- Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
-
-- Bug #1530448, ctypes build failure on Solaris 10 was fixed.
-
-
-C API
------
-
-- New API for Unicode rich comparisons: PyUnicode_RichCompare()
-
-- Bug #1069160.  Internal correctness changes were made to
-  ``PyThreadState_SetAsyncExc()``.  A test case was added, and
-  the documentation was changed to state that the return value
-  is always 1 (normal) or 0 (if the specified thread wasn't found).
-
-
-What's New in Python 2.5 beta 3?
-================================
-
-*Release date: 03-AUG-2006*
-
-Core and builtins
------------------
-
-- _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
-  returned a long (see PEP 353).
-
-- Bug #1515471: string.replace() accepts character buffers again.
-
-- Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
-  This provides the proper warning for struct.pack().
-  PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
-
-- Patch #1531113: Fix augmented assignment with yield expressions.
-  Also fix a SystemError when trying to assign to yield expressions.
-
-- Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
-  with PEP 302.  This was fixed by adding an ``imp.NullImporter`` type that is
-  used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
-  excessive filesystem operations during imports.
-
-- Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
-  operations on signed longs that are formally undefined by C.
-  Unfortunately, at least one compiler now cares about that, so complicated
-  the code to make that compiler happy again.
-
-- Bug #1524310: Properly report errors from FindNextFile in os.listdir.
-
-- Patch #1232023: Stop including current directory in search
-  path on Windows.
-
-- Fix some potential crashes found with failmalloc.
-
-- Fix warnings reported by Klocwork's static analysis tool.
-
-- Bug #1512814, Fix incorrect lineno's when code within a function
-  had more than 255 blank lines.
-
-- Patch #1521179: Python now accepts the standard options ``--help`` and
-  ``--version`` as well as ``/?`` on Windows.
-
-- Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
-  again.  Fixing this problem required changing the .pyc magic number.
-  This means that .pyc files generated before 2.5b3 will be regenerated.
-
-- Bug #1524317:  Compiling Python ``--without-threads`` failed.
-  The Python core compiles again, and, in a build without threads, the
-  new ``sys._current_frames()`` returns a dictionary with one entry,
-  mapping the faux "thread id" 0 to the current frame.
-
-- Bug #1525447: build on MacOS X on a case-sensitive filesystem.
-
-
-Library
--------
-
-- Fix #1693149.  Now you can pass several modules separated by
-  comma to trace.py in the same --ignore-module option.
-
-- Correction of patch #1455898: In the mbcs decoder, set final=False
-  for stream decoder, but final=True for the decode function.
-
-- os.urandom no longer masks unrelated exceptions like SystemExit or
-  KeyboardInterrupt.
-
-- Bug #1525866: Don't copy directory stat times in
-  shutil.copytree on Windows
-
-- Bug #1002398: The documentation for os.path.sameopenfile now correctly
-  refers to file descriptors, not file objects.
-
-- The renaming of the xml package to xmlcore, and the import hackery done
-  to make it appear at both names, has been removed.  Bug #1511497,
-  #1513611, and probably others.
-
-- Bug #1441397: The compiler module now recognizes module and function
-  docstrings correctly as it did in Python 2.4.
-
-- Bug #1529297:  The rewrite of doctest for Python 2.4 unintentionally
-  lost that tests are sorted by name before being run.  This rarely
-  matters for well-written tests, but can create baffling symptoms if
-  side effects from one test to the next affect outcomes.  ``DocTestFinder``
-  has been changed to sort the list of tests it returns.
-
-- The distutils version has been changed to 2.5.0, and is now kept
-  in sync with sys.version_info[:3].
-
-- Bug #978833: Really close underlying socket in _socketobject.close.
-
-- Bug #1459963: urllib and urllib2 now normalize HTTP header names with
-  title().
-
-- Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
-  to recursive calls and call it with the failing package name.
-
-- Bug #1525817: Don't truncate short lines in IDLE's tool tips.
-
-- Patch #1515343: Fix printing of deprecated string exceptions with a
-  value in the traceback module.
-
-- Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
-
-- Patch #1524429: Use repr() instead of backticks in Tkinter again.
-
-- Bug #1520914: Change time.strftime() to accept a zero for any position in its
-  argument tuple.  For arguments where zero is illegal, the value is forced to
-  the minimum value that is correct.  This is to support an undocumented but
-  common way people used  to fill in inconsequential information in the time
-  tuple pre-2.4.
-
-- Patch #1220874: Update the binhex module for Mach-O.
-
-- The email package has improved RFC 2231 support, specifically for
-  recognizing the difference between encoded (name*0*=<blah>) and non-encoded
-  (name*0=<blah>) parameter continuations.  This may change the types of
-  values returned from email.message.Message.get_param() and friends.
-  Specifically in some cases where non-encoded continuations were used,
-  get_param() used to return a 3-tuple of (None, None, string) whereas now it
-  will just return the string (since non-encoded continuations don't have
-  charset and language parts).
-
-  Also, whereas % values were decoded in all parameter continuations, they are
-  now only decoded in encoded parameter parts.
-
-- Bug #1517990: IDLE keybindings on MacOS X now work correctly
-
-- Bug #1517996: IDLE now longer shows the default Tk menu when a
-  path browser, class browser or debugger is the frontmost window on MacOS X
-
-- Patch #1520294: Support for getset and member descriptors in types.py,
-  inspect.py, and pydoc.py.  Specifically, this allows for querying the type
-  of an object against these built-in types and more importantly, for getting
-  their docstrings printed in the interactive interpreter's help() function.
-
-
-Extension Modules
------------------
-
-- Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
-  a socket operation on a socket with a timeout, the exception will be
-  caught correctly.  Previously, the exception was not caught.
-
-- Patch #1529514: The _ctypes extension is now compiled on more
-  openbsd target platforms.
-
-- The ``__reduce__()`` method of the new ``collections.defaultdict`` had
-  a memory leak, affecting pickles and deep copies.
-
-- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
-  Paul Eggert.
-
-- Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
-
-- Patch #1521817: Index range checking on ctypes arrays containing
-  exactly one element enabled again.  This allows iterating over these
-  arrays, without the need to check the array size before.
-
-- Bug #1521375: When the code in ctypes.util.find_library was
-  run with root privileges, it could overwrite or delete
-  /dev/null in certain cases; this is now fixed.
-
-- Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
-  default mode for loading shared libraries in ctypes.
-
-- Because of a misspelled preprocessor symbol, ctypes was always
-  compiled without thread support; this is now fixed.
-
-- pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
-  methods now allow their database parameter to be None as the
-  sleepycat API allows.
-
-- Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
-  bluetooth API compared with Linux and FreeBSD.
-
-Tests
------
-
-- Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
-  how long the test file should take to play.  Now accepts taking 2.93 secs
-  (exact time) +/- 10% instead of the hard-coded 3.1 sec.
-
-- Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
-  ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
-  run via ``regrtest.py``. Now they do.
-
-Build
------
-
-- Bug #1439538: Drop usage of test -e in configure as it is not portable.
-
-Mac
----
-
-- PythonLauncher now works correctly when the path to the script contains
-  characters that are treated specially by the shell (such as quotes).
-
-- Bug #1527397: PythonLauncher now launches scripts with the working directory
-  set to the directory that contains the script instead of the user home
-  directory. That latter was an implementation accident and not what users
-  expect.
-
-
-What's New in Python 2.5 beta 2?
-================================
-
-*Release date: 11-JUL-2006*
-
-Core and builtins
------------------
-
-- Bug #1441486: The literal representation of -(sys.maxint - 1)
-  again evaluates to a int object, not a long.
-
-- Bug #1501934: The scope of global variables that are locally assigned
-  using augmented assignment is now correctly determined.
-
-- Bug #927248: Recursive method-wrapper objects can now safely
-  be released.
-
-- Bug #1417699: Reject locale-specific decimal point in float()
-  and atof().
-
-- Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
-  omit a default "error" argument for NULL pointer.  This allows
-  the parser to take a codec from cjkcodecs again.
-
-- Bug #1519018: 'as' is now validated properly in import statements.
-
-- On 64 bit systems, int literals that use less than 64 bits are
-  now ints rather than longs.
-
-- Bug #1512814, Fix incorrect lineno's when code at module scope
-  started after line 256.
-
-- New function ``sys._current_frames()`` returns a dict mapping thread
-  id to topmost thread stack frame.  This is for expert use, and is
-  especially useful for debugging application deadlocks.  The functionality
-  was previously available in Fazal Majid's ``threadframe`` extension
-  module, but it wasn't possible to do this in a wholly threadsafe way from
-  an extension.
-
-Library
--------
-
-- Bug #1257728: Mention Cygwin in distutils error message about a missing
-  VS 2003.
-
-- Patch #1519566: Update turtle demo, make begin_fill idempotent.
-
-- Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
-  environment variable to be set in order to the SDK environment
-  for finding the compiler, include files, etc.
-
-- Bug #1515998: Properly generate logical ids for files in bdist_msi.
-
-- warnings.py now ignores ImportWarning by default
-
-- string.Template() now correctly handles tuple-values. Previously,
-  multi-value tuples would raise an exception and single-value tuples would
-  be treated as the value they contain, instead.
-
-- Bug #822974: Honor timeout in telnetlib.{expect,read_until}
-  even if some data are received.
-
-- Bug #1267547: Put proper recursive setup.py call into the
-  spec file generated by bdist_rpm.
-
-- Bug #1514693: Update turtle's heading when switching between
-  degrees and radians.
-
-- Reimplement turtle.circle using a polyline, to allow correct
-  filling of arcs.
-
-- Bug #1514703: Only setup canvas window in turtle when the canvas
-  is created.
-
-- Bug #1513223: .close() of a _socketobj now releases the underlying
-  socket again, which then gets closed as it becomes unreferenced.
-
-- Bug #1504333: Make sgmllib support angle brackets in quoted
-  attribute values.
-
-- Bug #853506: Fix IPv6 address parsing in unquoted attributes in
-  sgmllib ('[' and ']' were not accepted).
-
-- Fix a bug in the turtle module's end_fill function.
-
-- Bug #1510580: The 'warnings' module improperly required that a Warning
-  category be either a types.ClassType and a subclass of Warning.  The proper
-  check is just that it is a subclass with Warning as the documentation states.
-
-- The compiler module now correctly compiles the new try-except-finally
-  statement (bug #1509132).
-
-- The wsgiref package is now installed properly on Unix.
-
-- A bug was fixed in logging.config.fileConfig() which caused a crash on
-  shutdown when fileConfig() was called multiple times.
-
-- The sqlite3 module did cut off data from the SQLite database at the first
-  null character before sending it to a custom converter. This has been fixed
-  now.
-
-Extension Modules
------------------
-
-- #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
-  means that select() on sockets > FD_SETSIZE (typically 1024) work again.
-  The patch makes sockets use poll() internally where available.
-
-- Assigning None to pointer type fields in ctypes structures possible
-  overwrote the wrong fields, this is fixed now.
-
-- Fixed a segfault in _ctypes when ctypes.wintypes were imported
-  on non-Windows platforms.
-
-- Bug #1518190: The ctypes.c_void_p constructor now accepts any
-  integer or long, without range checking.
-
-- Patch #1517790: It is now possible to use custom objects in the ctypes
-  foreign function argtypes sequence as long as they provide a from_param
-  method, no longer is it required that the object is a ctypes type.
-
-- The '_ctypes' extension module now works when Python is configured
-  with the --without-threads option.
-
-- Bug #1513646: os.access on Windows now correctly determines write
-  access, again.
-
-- Bug #1512695: cPickle.loads could crash if it was interrupted with
-  a KeyboardInterrupt.
-
-- Bug #1296433: parsing XML with a non-default encoding and
-  a CharacterDataHandler could crash the interpreter in pyexpat.
-
-- Patch #1516912: improve Modules support for OpenVMS.
-
-Build
------
-
-- Automate Windows build process for the Win64 SSL module.
-
-- 'configure' now detects the zlib library the same way as distutils.
-  Previously, the slight difference could cause compilation errors of the
-  'zlib' module on systems with more than one version of zlib.
-
-- The MSI compileall step was fixed to also support a TARGETDIR
-  with spaces in it.
-
-- Bug #1517388: sqlite3.dll is now installed on Windows independent
-  of Tcl/Tk.
-
-- Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
-  trying to be installed even though it's empty.
-
-Tests
------
-
-- Call os.waitpid() at the end of tests that spawn child processes in order
-  to minimize resources (zombies).
-
-Documentation
--------------
-
-- Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
-  documentation for the warnings module.
-
-- Patch #1509163: MS Toolkit Compiler no longer available.
-
-- Patch #1504046: Add documentation for xml.etree.
-
-
-What's New in Python 2.5 beta 1?
-================================
-
-*Release date: 20-JUN-2006*
-
-Core and builtins
------------------
-
-- Patch #1507676: Error messages returned by invalid abstract object operations
-  (such as iterating over an integer) have been improved and now include the
-  type of the offending object to help with debugging.
-
-- Bug #992017: A classic class that defined a __coerce__() method that returned
-  its arguments swapped would infinitely recurse and segfault the interpreter.
-
-- Fix the socket tests so they can be run concurrently.
-
-- Removed 5 integers from C frame objects (PyFrameObject).
-  f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
-
-- Bug #532646: object.__call__() will continue looking for the __call__
-  attribute on objects until one without one is found.  This leads to recursion
-  when you take a class and set its __call__ attribute to an instance of the
-  class.  Originally fixed for classic classes, but this fix is for new-style.
-  Removes the infinite_rec_3 crasher.
-
-- The string and unicode methods startswith() and endswith() now accept
-  a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
-
-- Buffer objects, at the C level, never used the char buffer
-  implementation even when the char buffer for the wrapped object was
-  explicitly requested (originally returned the read or write buffer).
-  Now a TypeError is raised if the char buffer is not present but is
-  requested.
-
-- Patch #1346214: Statements like "if 0: suite" are now again optimized
-  away like they were in Python 2.4.
-
-- Builtin exceptions are now full-blown new-style classes instead of
-  instances pretending to be classes, which speeds up exception handling
-  by about 80% in comparison to 2.5a2.
-
-- Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
-  Unicode 4.1.
-
-- Patch #921466: sys.path_importer_cache is now used to cache valid and
-  invalid file paths for the built-in import machinery which leads to
-  fewer open calls on startup.
-
-- Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
-  of-2 bases.  The largest speedup is for inputs with about 1000 decimal
-  digits.  Conversion from non-power-of-2 bases remains quadratic-time in
-  the number of input digits (it was and remains linear-time for bases
-  2, 4, 8, 16 and 32).
-
-- Bug #1334662: ``int(string, base)`` could deliver a wrong answer
-  when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
-  an integer close to ``sys.maxint``.  This was repaired by patch
-  #1335972, which also gives a nice speedup.
-
-- Patch #1337051: reduced size of frame objects.
-
-- PyErr_NewException now accepts a tuple of base classes as its
-  "base" parameter.
-
-- Patch #876206: function call speedup by retaining allocated frame
-  objects.
-
-- Bug #1462152: file() now checks more thoroughly for invalid mode
-  strings and removes a possible "U" before passing the mode to the
-  C library function.
-
-- Patch #1488312, Fix memory alignment problem on SPARC in unicode
-
-- Bug #1487966: Fix SystemError with conditional expression in assignment
-
-- WindowsError now has two error code attributes: errno, which carries
-  the error values from errno.h, and winerror, which carries the error
-  values from winerror.h. Previous versions put the winerror.h values
-  (from GetLastError()) into the errno attribute.
-
-- Patch #1475845: Raise IndentationError for unexpected indent.
-
-- Patch #1479181: split open() and file() from being aliases for each other.
-
-- Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
-  methods were always silently ignored by dictionaries when comparing keys.
-  They are now passed through (except when using the C API function
-  ``PyDict_GetItem()``, whose semantics did not change).
-
-- Bug #1456209: In some obscure cases it was possible for a class with a
-  custom ``__eq__()`` method to confuse dict internals when class instances
-  were used as a dict's keys and the ``__eq__()`` method mutated the dict.
-  No, you don't have any code that did this ;-)
-
-Extension Modules
------------------
-
-- Bug #1295808: expat symbols should be namespaced in pyexpat
-
-- Patch #1462338: Upgrade pyexpat to expat 2.0.0
-
-- Change binascii.hexlify to accept a read-only buffer instead of only a char
-  buffer and actually follow its documentation.
-
-- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
-
-- Patch #1478788 (modified version): The functional extension module has
-  been renamed to _functools and a functools Python wrapper module added.
-  This provides a home for additional function related utilities that are
-  not specifically about functional programming. See PEP 309.
-
-- Patch #1493701: performance enhancements for struct module.
-
-- Patch #1490224: time.altzone is now set correctly on Cygwin.
-
-- Patch #1435422: zlib's compress and decompress objects now have a
-  copy() method.
-
-- Patch #1454481: thread stack size is now tunable at runtime for thread
-  enabled builds on Windows and systems with Posix threads support.
-
-- On Win32, os.listdir now supports arbitrarily-long Unicode path names
-  (up to the system limit of 32K characters).
-
-- Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
-  As a result, these functions now raise WindowsError instead of OSError.
-
-- ``time.clock()`` on Win64 should use the high-performance Windows
-  ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
-  Windows platforms).
-
-- Calling Tk_Init twice is refused if the first call failed as that
-  may deadlock.
-
-- bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
-  accept it without potentially using an uninitialized pointer.
-
-- bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
-  assuming BerkeleyDB >= 4.0 and 4.4 respectively.  [pybsddb project SF
-  patch numbers 1494885 and 1494902]
-
-- bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
-  [pybsddb project SF patch number 1466734]
-
-- bsddb: fix DBCursor.pget() bug with keyword argument names when no data
-  parameter is supplied.  [SF pybsddb bug #1477863]
-
-- bsddb: the __len__ method of a DB object has been fixed to return correct
-  results.  It could previously incorrectly return 0 in some cases.
-  Fixes SF bug 1493322 (pybsddb bug 1184012).
-
-- bsddb: the bsddb.dbtables Modify method now raises the proper error and
-  aborts the db transaction safely when a modifier callback fails.
-  Fixes SF python patch/bug #1408584.
-
-- bsddb: multithreaded DB access using the simple bsddb module interface
-  now works reliably.  It has been updated to use automatic BerkeleyDB
-  deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
-  database calls that would previously deadlock. [SF python bug #775414]
-
-- Patch #1446489: add support for the ZIP64 extensions to zipfile.
-
-- Patch #1506645: add Python wrappers for the curses functions
-  is_term_resized, resize_term and resizeterm.
-
-Library
--------
-
-- Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
-  functions.
-
-- Patch #812986: Update turtle output even if not tracing.
-
-- Patch #1494750: Destroy master after deleting children in
-  Tkinter.BaseWidget.
-
-- Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
-
-- Patch #763580: Add name and value arguments to Tkinter variable
-  classes.
-
-- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
-  mime.types file for determining MIME types.
-
-- Bug #1339007: Shelf objects now don't raise an exception in their
-  __del__ method when initialization failed.
-
-- Patch #1455898: The MBCS codec now supports the incremental mode for
-  double-byte encodings.
-
-- ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
-  guarantee that adjacent triples in the return list always describe
-  non-adjacent blocks.  Previously, a pair of matching blocks could end
-  up being described by multiple adjacent triples that formed a partition
-  of the matching pair.
-
-- Bug #1498146: fix optparse to handle Unicode strings in option help,
-  description, and epilog.
-
-- Bug #1366250: minor optparse documentation error.
-
-- Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
-  clarify docs.
-
-- The wsgiref package has been added to the standard library.
-
-- The functions update_wrapper() and wraps() have been added to the functools
-  module. These make it easier to copy relevant metadata from the original
-  function when writing wrapper functions.
-
-- The optional ``isprivate`` argument to ``doctest.testmod()``, and the
-  ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
-
-- Patch #1359618: Speed up charmap encoder by using a trie structure
-  for lookup.
-
-- The functions in the ``pprint`` module now sort dictionaries by key
-  before computing the display.  Before 2.5, ``pprint`` sorted a dictionary
-  if and only if its display required more than one line, although that
-  wasn't documented.  The new behavior increases predictability; e.g.,
-  using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
-
-- Patch #1497027: try HTTP digest auth before basic auth in urllib2
-  (thanks for J. J. Lee).
-
-- Patch #1496206: improve urllib2 handling of passwords with respect to
-  default HTTP and HTTPS ports.
-
-- Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
-
-- Patch #1281707: speed up gzip.readline.
-
-- Patch #1180296: Two new functions were added to the locale module:
-  format_string() to get the effect of  "format % items" but locale-aware,
-  and currency() to format a monetary number with currency sign.
-
-- Patch #1486962: Several bugs in the turtle Tk demo module were fixed
-  and several features added, such as speed and geometry control.
-
-- Patch #1488881: add support for external file objects in bz2 compressed
-  tarfiles.
-
-- Patch #721464: pdb.Pdb instances can now be given explicit stdin and
-  stdout arguments, making it possible to redirect input and output
-  for remote debugging.
-
-- Patch #1484695: Update the tarfile module to version 0.8. This fixes
-  a couple of issues, notably handling of long file names using the
-  GNU LONGNAME extension.
-
-- Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
-  new flag when ``name`` is already the name of an option flag.
-
-- Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
-  package.
-
-- Patch #1472854: make the rlcompleter.Completer class usable on non-
-  UNIX platforms.
-
-- Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
-
-- Bug #1472827: correctly escape newlines and tabs in attribute values in
-  the saxutils.XMLGenerator class.
-
-
-Build
------
-
-- Bug #1502728: Correctly link against librt library on HP-UX.
-
-- OpenBSD 3.9 is supported now.
-
-- Patch #1492356: Port to Windows CE.
-
-- Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
-
-- Patch #1471883: Add --enable-universalsdk.
-
-C API
------
-
-Tests
------
-
-Tools
------
-
-Documentation
--------------
-
-
-
-What's New in Python 2.5 alpha 2?
-=================================
-
-*Release date: 27-APR-2006*
-
-Core and builtins
------------------
-
-- Bug #1465834: 'bdist_wininst preinstall script support' was fixed
-  by converting these apis from macros into exported functions again:
-
-    PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
-    PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
-    PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
-    PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
-    PyRun_String Py_CompileString
-
-- Under COUNT_ALLOCS, types are not necessarily immortal anymore.
-
-- All uses of PyStructSequence_InitType have been changed to initialize
-  the type objects only once, even if the interpreter is initialized
-  multiple times.
-
-- Bug #1454485, array.array('u') could crash the interpreter.  This was
-  due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
-  to unicode when it didn't make sense.  'u#' now requires a unicode string.
-
-- Py_UNICODE is unsigned.  It was always documented as unsigned, but
-  due to a bug had a signed value in previous versions.
-
-- Patch #837242: ``id()`` of any Python object always gives a positive
-  number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
-  ``PyLong_AsVoidPtr`` have been changed accordingly.  Note that it has
-  never been correct to implement a ``__hash()__`` method that returns the
-  ``id()`` of an object:
-
-      def __hash__(self):
-          return id(self)  # WRONG
-
-  because a hash result must be a (short) Python int but it was always
-  possible for ``id()`` to return a Python long.  However, because ``id()``
-  could return negative values before, on a 32-bit box an ``id()`` result
-  was always usable as a hash value before this patch.  That's no longer
-  necessarily so.
-
-- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
-  to load extension modules and now provides the dl module. As a result,
-  sys.setdlopenflags() now works correctly on these systems. (SF patch
-  #1454844)
-
-- Patch #1463867: enhanced garbage collection to allow cleanup of cycles
-  involving generators that have paused outside of any ``try`` or ``with``
-  blocks.  (In 2.5a1, a paused generator that was part of a reference
-  cycle could not be garbage collected, regardless of whether it was
-  paused in a ``try`` or ``with`` block.)
-
-Extension Modules
------------------
-
-- Patch #1191065: Fix preprocessor problems on systems where recvfrom
-  is a macro.
-
-- Bug #1467952: os.listdir() now correctly raises an error if readdir()
-  fails with an error condition.
-
-- Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
-
-- Bug #1117761: bsddb.*open() no longer raises an exception when using
-  the cachesize parameter.
-
-- Bug #1149413: bsddb.*open() no longer raises an exception when using
-  a temporary db (file=None) with the 'n' flag to truncate on open.
-
-- Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
-  as older versions cause excessive test failures.
-
-- Patch #1062014: AF_UNIX sockets under Linux have a special
-  abstract namespace that is now fully supported.
-
-Library
--------
-
-- Bug #1223937: subprocess.CalledProcessError reports the exit status
-  of the process using the returncode attribute, instead of
-  abusing errno.
-
-- Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
-  a doctest to be skipped (the code is not run, and the expected output
-  or exception is ignored).
-
-- Fixed contextlib.nested to cope with exceptions being raised and
-  caught inside exit handlers.
-
-- Updated optparse module to Optik 1.5.1 (allow numeric constants in
-  hex, octal, or binary; add ``append_const`` action; keep going if
-  gettext cannot be imported; added ``OptionParser.destroy()`` method;
-  added ``epilog`` for better help generation).
-
-- Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
-  called from a thread spawned as a side effect of importing a module.
-
-- The pydoc module now supports documenting packages contained in
-  .zip or .egg files.
-
-- The pkgutil module now has several new utility functions, such
-  as ``walk_packages()`` to support working with packages that are either
-  in the filesystem or zip files.
-
-- The mailbox module can now modify and delete messages from
-  mailboxes, in addition to simply reading them.  Thanks to Gregory
-  K. Johnson for writing the code, and to the 2005 Google Summer of
-  Code for funding his work.
-
-- The ``__del__`` method of class ``local`` in module ``_threading_local``
-  returned before accomplishing any of its intended cleanup.
-
-- Patch #790710: Add breakpoint command lists in pdb.
-
-- Patch #1063914: Add Tkinter.Misc.clipboard_get().
-
-- Patch #1191700: Adjust column alignment in bdb breakpoint lists.
-
-- SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
-  Windows. Bug #1469163.
-
-- The warnings, linecache, inspect, traceback, site, and doctest modules
-  were updated to work correctly with modules imported from zipfiles or
-  via other PEP 302 __loader__ objects.
-
-- Patch #1467770: Reduce usage of subprocess._active to processes which
-  the application hasn't waited on.
-
-- Patch #1462222: Fix Tix.Grid.
-
-- Fix exception when doing glob.glob('anything*/')
-
-- The pstats.Stats class accepts an optional stream keyword argument to
-  direct output to an alternate file-like object.
-
-Build
------
-
-- The Makefile now has a reindent target, which runs reindent.py on
-  the library.
-
-- Patch #1470875: Building Python with MS Free Compiler
-
-- Patch #1161914: Add a python-config script.
-
-- Patch #1324762:Remove ccpython.cc; replace --with-cxx with
-  --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
-  specified. (Can be overridden by explicitly setting LINKCC.) Decouple
-  CXX from --with-cxx-main, see description in README.
-
-- Patch #1429775: Link extension modules with the shared libpython.
-
-- Fixed a libffi build problem on MIPS systems.
-
-- ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
-  now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
-  and "%zu" for unsigned integers of type ``size_t``.
-
-Tests
------
-
-- test_contextlib now checks contextlib.nested can cope with exceptions
-  being raised and caught inside exit handlers.
-
-- test_cmd_line now checks operation of the -m and -c command switches
-
-- The test_contextlib test in 2.5a1 wasn't actually run unless you ran
-  it separately and by hand.  It also wasn't cleaning up its changes to
-  the current Decimal context.
-
-- regrtest.py now has a -M option to run tests that test the new limits of
-  containers, on 64-bit architectures. Running these tests is only sensible
-  on 64-bit machines with more than two gigabytes of memory. The argument
-  passed is the maximum amount of memory for the tests to use.
-
-Tools
------
-
-- Added the Python benchmark suite pybench to the Tools/ directory;
-  contributed by Marc-Andre Lemburg.
-
-Documentation
--------------
-
-- Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
-
-- PEP 343: Added Context Types section to the library reference
-  and attempted to bring other PEP 343 related documentation into
-  line with the implementation and/or python-dev discussions.
-
-- Bug #1337990: clarified that ``doctest`` does not support examples
-  requiring both expected output and an exception.
-
-
-What's New in Python 2.5 alpha 1?
-=================================
-
-*Release date: 05-APR-2006*
-
-Core and builtins
------------------
-
-- PEP 338: -m command line switch now delegates to runpy.run_module
-  allowing it to support modules in packages and zipfiles
-
-- On Windows, .DLL is not an accepted file name extension for
-  extension modules anymore; extensions are only found if they
-  end in .PYD.
-
-- Bug #1421664: sys.stderr.encoding is now set to the same value as
-  sys.stdout.encoding.
-
-- __import__ accepts keyword arguments.
-
-- Patch #1460496: round() now accepts keyword arguments.
-
-- Fixed bug #1459029 - unicode reprs were double-escaped.
-
-- Patch #1396919: The system scope threads are reenabled on FreeBSD
-  5.4 and later versions.
-
-- Bug #1115379: Compiling a Unicode string with an encoding declaration
-  now gives a SyntaxError.
-
-- Previously, Python code had no easy way to access the contents of a
-  cell object. Now, a ``cell_contents`` attribute has been added
-  (closes patch #1170323).
-
-- Patch #1123430: Python's small-object allocator now returns an arena to
-  the system ``free()`` when all memory within an arena becomes unused
-  again.  Prior to Python 2.5, arenas (256KB chunks of memory) were never
-  freed.  Some applications will see a drop in virtual memory size now,
-  especially long-running applications that, from time to time, temporarily
-  use a large number of small objects.  Note that when Python returns an
-  arena to the platform C's ``free()``, there's no guarantee that the
-  platform C library will in turn return that memory to the operating system.
-  The effect of the patch is to stop making that impossible, and in tests it
-  appears to be effective at least on Microsoft C and gcc-based systems.
-  Thanks to Evan Jones for hard work and patience.
-
-- Patch #1434038: property() now uses the getter's docstring if there is
-  no "doc" argument given. This makes it possible to legitimately use
-  property() as a decorator to produce a read-only property.
-
-- PEP 357, patch 1436368: add an __index__ method to int/long and a matching
-  nb_index slot to the PyNumberMethods struct.  The slot is consulted instead
-  of requiring an int or long in slicing and a few other contexts, enabling
-  other objects (e.g. Numeric Python's integers) to be used as slice indices.
-
-- Fixed various bugs reported by Coverity's Prevent tool.
-
-- PEP 352, patch #1104669: Make exceptions new-style objects.  Introduced the
-  new exception base class, BaseException, which has a new message attribute.
-  KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
-  Raising a string exception now raises a DeprecationWarning.
-
-- Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
-  explicitly relative, using 'from .module import name' to mean 'from the same
-  package as this module is in. Imports without dots still default to the
-  old relative-then-absolute, unless 'from __future__ import
-  absolute_import' is used.
-
-- Properly check if 'warnings' raises an exception (usually when a filter set
-  to "error" is triggered) when raising a warning for raising string
-  exceptions.
-
-- CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
-  The name was removed from Include/code.h.
-
-- PEP 308: conditional expressions were added: (x if cond else y).
-
-- Patch 1433928:
-  - The copy module now "copies" function objects (as atomic objects).
-  - dict.__getitem__ now looks for a __missing__ hook before raising
-    KeyError.
-
-- PEP 343: with statement implemented. Needs ``from __future__ import
-  with_statement``. Use of 'with' as a variable will generate a warning.
-  Use of 'as' as a variable will also generate a warning (unless it's
-  part of an import statement).
-  The following objects have __context__ methods:
-  - The built-in file type.
-  - The thread.LockType type.
-  - The following types defined by the threading module:
-    Lock, RLock, Condition, Semaphore, BoundedSemaphore.
-  - The decimal.Context class.
-
-- Fix the encodings package codec search function to only search
-  inside its own package. Fixes problem reported in patch #1433198.
-
-  Note: Codec packages should implement and register their own
-  codec search function. PEP 100 has the details.
-
-- PEP 353: Using ``Py_ssize_t`` as the index type.
-
-- ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
-  info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
-  now allow Python to make use of memory blocks exceeding 2**32 bytes for
-  some purposes on 64-bit boxes.  A ``PYMALLOC_DEBUG`` build was limited
-  to 4-byte allocations before.
-
-- Patch #1400181, fix unicode string formatting to not use the locale.
-  This is how string objects work.  u'%f' could use , instead of .
-  for the decimal point.  Now both strings and unicode always use periods.
-
-- Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
-  configure would break checking curses.h.
-
-- Bug #959576: The pwd module is now builtin. This allows Python to be
-  built on UNIX platforms without $HOME set.
-
-- Bug #1072182, fix some potential problems if characters are signed.
-
-- Bug #889500, fix line number on SyntaxWarning for global declarations.
-
-- Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
-
-- Support for converting hex strings to floats no longer works.
-  This was not portable.  float('0x3') now raises a ValueError.
-
-- Patch #1382163: Expose Subversion revision number to Python.  New C API
-  function Py_GetBuildNumber().  New attribute sys.subversion.  Build number
-  is now displayed in interactive prompt banner.
-
-- Implementation of PEP 341 - Unification of try/except and try/finally.
-  "except" clauses can now be written together with a "finally" clause in
-  one try statement instead of two nested ones.  Patch #1355913.
-
-- Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
-  now encodes backslash correctly.
-
-- Patch #1350409: Work around signal handling bug in Visual Studio 2005.
-
-- Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
-  and long longs.
-
-- SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
-  It was possible for dlerror() to return a NULL pointer, so
-  it will now use a default error message in this case.
-
-- Replaced most Unicode charmap codecs with new ones using the
-  new Unicode translate string feature in the builtin charmap
-  codec; the codecs were created from the mapping tables available
-  at ftp.unicode.org and contain a few updates (e.g. the Mac OS
-  encodings now include a mapping for the Apple logo)
-
-- Added a few more codecs for Mac OS encodings
-
-- Sped up some Unicode operations.
-
-- A new AST parser implementation was completed. The abstract
-  syntax tree is available for read-only (non-compile) access
-  to Python code; an _ast module was added.
-
-- SF bug #1167751: fix incorrect code being produced for generator expressions.
-  The following code now raises a SyntaxError:  foo(a = i for i in range(10))
-
-- SF Bug #976608: fix SystemError when mtime of an imported file is -1.
-
-- SF Bug #887946: fix segfault when redirecting stdin from a directory.
-  Provide a warning when a directory is passed on the command line.
-
-- Fix segfault with invalid coding.
-
-- SF bug #772896: unknown encoding results in MemoryError.
-
-- All iterators now have a Boolean value of True.  Formerly, some iterators
-  supported a __len__() method which evaluated to False when the iterator
-  was empty.
-
-- On 64-bit platforms, when __len__() returns a value that cannot be
-  represented as a C int, raise OverflowError.
-
-- test__locale is skipped on OS X < 10.4 (only partial locale support is
-  present).
-
-- SF bug #893549: parsing keyword arguments was broken with a few format
-  codes.
-
-- Changes donated by Elemental Security to make it work on AIX 5.3
-  with IBM's 64-bit compiler (SF patch #1284289).  This also closes SF
-  bug #105470: test_pwd fails on 64bit system (Opteron).
-
-- Changes donated by Elemental Security to make it work on HP-UX 11 on
-  Itanium2 with HP's 64-bit compiler (SF patch #1225212).
-
-- Disallow keyword arguments for type constructors that don't use them
-  (fixes bug #1119418).
-
-- Forward UnicodeDecodeError into SyntaxError for source encoding errors.
-
-- SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
-  exceptions that cause a function to exit.
-
-- The implementation of set() and frozenset() was revised to use its
-  own internal data structure.  Memory consumption is reduced by 1/3
-  and there are modest speed-ups as well.  The API is unchanged.
-
-- SF bug #1238681:  freed pointer is used in longobject.c:long_pow().
-
-- SF bug #1229429: PyObject_CallMethod failed to decrement some
-  reference counts in some error exit cases.
-
-- SF bug #1185883:  Python's small-object memory allocator took over
-  a block managed by the platform C library whenever a realloc specified
-  a small new size.  However, there's no portable way to know then how
-  much of the address space following the pointer is valid, so there's no
-  portable way to copy data from the C-managed block into Python's
-  small-object space without risking a memory fault.  Python's small-object
-  realloc now leaves such blocks under the control of the platform C
-  realloc.
-
-- SF bug #1232517: An overflow error was not detected properly when
-  attempting to convert a large float to an int in os.utime().
-
-- SF bug #1224347: hex longs now print with lowercase letters just
-  like their int counterparts.
-
-- SF bug #1163563: the original fix for bug #1010677 ("thread Module
-  Breaks PyGILState_Ensure()") broke badly in the case of multiple
-  interpreter states; back out that fix and do a better job (see
-  http://mail.python.org/pipermail/python-dev/2005-June/054258.html
-  for a longer write-up of the problem).
-
-- SF patch #1180995: marshal now uses a binary format by default when
-  serializing floats.
-
-- SF patch #1181301: on platforms that appear to use IEEE 754 floats,
-  the routines that promise to produce IEEE 754 binary representations
-  of floats now simply copy bytes around.
-
-- bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
-  278.
-
-- patch #1109424: int, long, float, complex, and unicode now check for the
-  proper magic slot for type conversions when subclassed.  Previously the
-  magic slot was ignored during conversion.  Semantics now match the way
-  subclasses of str always behaved.  int/long/float, conversion of an instance
-  to the base class has been moved to the proper nb_* magic slot and out of
-  PyNumber_*().
-  Thanks Walter D�rwald.
-
-- Descriptors defined in C with a PyGetSetDef structure, where the setter is
-  NULL, now raise an AttributeError when attempting to set or delete the
-  attribute.  Previously a TypeError was raised, but this was inconsistent
-  with the equivalent pure-Python implementation.
-
-- It is now safe to call PyGILState_Release() before
-  PyEval_InitThreads() (note that if there is reason to believe there
-  are multiple threads around you still must call PyEval_InitThreads()
-  before using the Python API; this fix is for extension modules that
-  have no way of knowing if Python is multi-threaded yet).
-
-- Typing Ctrl-C whilst raw_input() was waiting in a build with threads
-  disabled caused a crash.
-
-- Bug #1165306: instancemethod_new allowed the creation of a method
-  with im_class == im_self == NULL, which caused a crash when called.
-
-- Move exception finalisation later in the shutdown process - this
-  fixes the crash seen in bug #1165761
-
-- Added two new builtins, any() and all().
-
-- Defining a class with empty parentheses is now allowed
-  (e.g., ``class C(): pass`` is no longer a syntax error).
-  Patch #1176012 added support to the 'parser' module and 'compiler' package
-  (thanks to logistix for that added support).
-
-- Patch #1115086: Support PY_LONGLONG in structmember.
-
-- Bug #1155938: new style classes did not check that __init__() was
-  returning None.
-
-- Patch #802188: Report characters after line continuation character
-  ('\') with a specific error message.
-
-- Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
-
-- Bug #1124295: the __name__ attribute of file objects was
-  inadvertently made inaccessible in restricted mode.
-
-- Bug #1074011: closing sys.std{out,err} now causes a flush() and
-  an ferror() call.
-
-- min() and max() now support key= arguments with the same meaning as in
-  list.sort().
-
-- The peephole optimizer now performs simple constant folding in expressions:
-      (2+3) --> (5).
-
-- set and frozenset objects can now be marshalled.  SF #1098985.
-
-- Bug #1077106: Poor argument checking could cause memory corruption
-  in calls to os.read().
-
-- The parser did not complain about future statements in illegal
-  positions.  It once again reports a syntax error if a future
-  statement occurs after anything other than a doc string.
-
-- Change the %s format specifier for str objects so that it returns a
-  unicode instance if the argument is not an instance of basestring and
-  calling __str__ on the argument returns a unicode instance.
-
-- Patch #1413181:  changed ``PyThreadState_Delete()`` to forget about the
-  current thread state when the auto-GIL-state machinery knows about
-  it (since the thread state is being deleted, continuing to remember it
-  can't help, but can hurt if another thread happens to get created with
-  the same thread id).
-
-Extension Modules
------------------
-
-- Patch #1380952: fix SSL objects timing out on consecutive read()s
-
-- Patch #1309579: wait3 and wait4 were added to the posix module.
-
-- Patch #1231053: The audioop module now supports encoding/decoding of alaw.
-  In addition, the existing ulaw code was updated.
-
-- RFE #567972: Socket objects' family, type and proto properties are
-  now exposed via new attributes.
-
-- Everything under lib-old was removed.  This includes the following modules:
-    Para, addpack, cmp, cmpcache, codehack, dircmp, dump, find, fmt, grep,
-    lockfile, newdir, ni, packmail, poly, rand, statcache, tb, tzparse,
-    util, whatsound, whrandom, zmod
-
-- The following modules were removed:  regsub, reconvert, regex, regex_syntax.
-
-- re and sre were swapped, so help(re) provides full help.  importing sre
-  is deprecated.  The undocumented re.engine variable no longer exists.
-
-- Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
-  SS2 (single-shift 2) escape sequences correctly.
-
-- The unicodedata module was updated to the 4.1 version of the Unicode
-  database. The 3.2 version is still available as unicodedata.db_3_2_0
-  for applications that require this specific version (such as IDNA).
-
-- The timing module is no longer built by default.  It was deprecated
-  in PEP 4 in Python 2.0 or earlier.
-
-- Patch 1433928: Added a new type, defaultdict, to the collections module.
-  This uses the new __missing__ hook behavior added to dict (see above).
-
-- Bug #854823: socketmodule now builds on Sun platforms even when
-  INET_ADDRSTRLEN is not defined.
-
-- Patch #1393157: os.startfile() now has an optional argument to specify
-  a "command verb" to invoke on the file.
-
-- Bug #876637, prevent stack corruption when socket descriptor
-  is larger than FD_SETSIZE.
-
-- Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory.
-  mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows.
-  mmap.mmap(0, size) should not be used on Windows for anonymous memory.
-
-- Patch #1422385: The nis module now supports access to domains other
-  than the system default domain.
-
-- Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps
-  are reported, the limit on path name lengths is removed, and stat reports
-  WindowsError now (instead of OSError).
-
-- Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery.
-
-- Bug #1413192, fix seg fault in bsddb if a transaction was deleted
-  before the env.
-
-- Patch #1103116: Basic AF_NETLINK support.
-
-- Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
-
-- Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
-  Also fix ungetmouse() which did not accept arguments properly.
-  The code now conforms to the documented signature.
-
-- Bug #1400115, Fix segfault when calling curses.panel.userptr()
-  without prior setting of the userptr.
-
-- Fix 64-bit problems in bsddb.
-
-- Patch #1365916: fix some unsafe 64-bit mmap methods.
-
-- Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
-  problem on AIX.
-
-- Bug #869197: os.setgroups rejects long integer arguments
-
-- Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
-
-- Bug #1344508, Fix UNIX mmap leaking file descriptors
-
-- Patch #1338314, Bug #1336623: fix tarfile so it can extract
-  REGTYPE directories from tarfiles written by old programs.
-
-- Patch #1407992, fixes broken bsddb module db associate when using
-  BerkeleyDB 3.3, 4.0 or 4.1.
-
-- Get bsddb module to build with BerkeleyDB version 4.4
-
-- Get bsddb module to build with BerkeleyDB version 3.2
-
-- Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
-  but Python incorrectly assumes it is in UTF-8 format
-
-- Fix parse errors in the readline module when compiling without threads.
-
-- Patch #1288833: Removed thread lock from socket.getaddrinfo on
-  FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
-
-- Patches #1298449 and #1298499: Add some missing checks for error
-  returns in cStringIO.c.
-
-- Patch #1297028: fix segfault if call type on MultibyteCodec,
-  MultibyteStreamReader, or MultibyteStreamWriter
-
-- Fix memory leak in posix.access().
-
-- Patch #1213831: Fix typo in unicodedata._getcode.
-
-- Bug #1007046: os.startfile() did not accept unicode strings encoded in
-  the file system encoding.
-
-- Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
-  platforms that don't have inet_aton().
-
-- Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
-
-- Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
-  line without newlines.
-
-- Bug #728515: mmap.resize() now resizes the file on Unix as it did
-  on Windows.
-
-- Patch #1180695: Add nanosecond stat resolution, and st_gen,
-  st_birthtime for FreeBSD.
-
-- Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
-  the request code argument, which results in more C-like behaviour
-  for large or negative values.
-
-- Bug #1234979: For the argument of thread.Lock.acquire, the Windows
-  implementation treated all integer values except 1 as false.
-
-- Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
-
-- Patch #1212117: os.stat().st_flags is now accessible as a attribute
-  if available on the platform.
-
-- Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
-  available on the platform.
-
-- Bug #1166660: The readline module could segfault if hook functions
-  were set in a different thread than that which called readline.
-
-- collections.deque objects now support a remove() method.
-
-- operator.itemgetter() and operator.attrgetter() now support retrieving
-  multiple fields.  This provides direct support for sorting on multiple
-  keys (primary, secondary, etc).
-
-- os.access now supports Unicode path names on non-Win32 systems.
-
-- Patches #925152, #1118602: Avoid reading after the end of the buffer
-  in pyexpat.GetInputContext.
-
-- Patches #749830, #1144555: allow UNIX mmap size to default to current
-  file size.
-
-- Added functional.partial().  See PEP309.
-
-- Patch #1093585: raise a ValueError for negative history items in readline.
-  {remove_history,replace_history}
-
-- The spwd module has been added, allowing access to the shadow password
-  database.
-
-- stat_float_times is now True.
-
-- array.array objects are now picklable.
-
-- the cPickle module no longer accepts the deprecated None option in the
-  args tuple returned by __reduce__().
-
-- itertools.islice() now accepts None for the start and step arguments.
-  This allows islice() to work more readily with slices:
-      islice(s.start, s.stop, s.step)
-
-- datetime.datetime() now has a strptime class method which can be used to
-  create datetime object using a string and format.
-
-- Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
-  with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
-
-Library
--------
-
-- Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
-  been renamed to have only a single underscore prefix.  This was done to
-  make subclassing easier.
-
-- PEP 338: new module runpy defines a run_module function to support
-  executing modules which provide access to source code or a code object
-  via the PEP 302 import mechanisms.
-
-- The email module's parsedate_tz function now sets the daylight savings
-  flag to -1 (unknown) since it can't tell from the date whether it should
-  be set.
-
-- Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
-  now sport attributes that provide access to the parts of the result.
-
-- Patch #1462498: sgmllib now handles entity and character references
-  in attribute values.
-
-- Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
-  a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
-  later to build this - if you have an earlier version, the C extension
-  module will not be built.
-
-- Bug #1460340: ``random.sample(dict)`` failed in various ways.  Dicts
-  aren't officially supported here, and trying to use them will probably
-  raise an exception some day.  But dicts have been allowed, and "mostly
-  worked", so support for them won't go away without warning.
-
-- Bug #1445068: getpass.getpass() can now be given an explicit stream
-  argument to specify where to write the prompt.
-
-- Patch #1462313, bug #1443328: the pickle modules now can handle classes
-  that have __private names in their __slots__.
-
-- Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
-
-- patch #1457316: "setup.py upload" now supports --identity to select the
-  key to be used for signing the uploaded code.
-
-- Queue.Queue objects now support .task_done() and .join() methods
-  to make it easier to monitor when daemon threads have completed
-  processing all enqueued tasks.  Patch #1455676.
-
-- popen2.Popen objects now preserve the command in a .cmd attribute.
-
-- Added the ctypes ffi package.
-
-- email 4.0 package now integrated.  This is largely the same as the email 3.0
-  package that was included in Python 2.3, except that PEP 8 module names are
-  now used (e.g. mail.message instead of email.Message).  The MIME classes
-  have been moved to a subpackage (e.g. email.mime.text instead of
-  email.MIMEText).  The old names are still supported for now.  Several
-  deprecated Message methods have been removed and lots of bugs have been
-  fixed.  More details can be found in the email package documentation.
-
-- Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object
-  (a subclass of tuple) that provides incremental decoders and encoders
-  (a way to use stateful codecs without the stream API). Python functions
-  codecs.getincrementaldecoder() and codecs.getincrementalencoder() as well
-  as C functions PyCodec_IncrementalEncoder() and PyCodec_IncrementalDecoder()
-  have been added.
-
-- Patch #1359365: Calling next() on a closed StringIO.String object raises
-  a ValueError instead of a StopIteration now (like file and cString.String do).
-  cStringIO.StringIO.isatty() will raise a ValueError now if close() has been
-  called before (like file and StringIO.StringIO do).
-
-- A regrtest option -w was added to re-run failed tests in verbose mode.
-
-- Patch #1446372: quit and exit can now be called from the interactive
-  interpreter to exit.
-
-- The function get_count() has been added to the gc module, and gc.collect()
-  grew an optional 'generation' argument.
-
-- A library msilib to generate Windows Installer files, and a distutils
-  command bdist_msi have been added.
-
-- PEP 343: new module contextlib.py defines decorator @contextmanager
-  and helpful context managers nested() and closing().
-
-- The compiler package now supports future imports after the module docstring.
-
-- Bug #1413790: zipfile now sanitizes absolute archive names that are
-  not allowed by the specs.
-
-- Patch #1215184: FileInput now can be given an opening hook which can
-  be used to control how files are opened.
-
-- Patch #1212287: fileinput.input() now has a mode parameter for
-  specifying the file mode input files should be opened with.
-
-- Patch #1215184: fileinput now has a fileno() function for getting the
-  current file number.
-
-- Patch #1349274: gettext.install() now optionally installs additional
-  translation functions other than _() in the builtin namespace.
-
-- Patch #1337756: fileinput now accepts Unicode filenames.
-
-- Patch #1373643: The chunk module can now read chunks larger than
-  two gigabytes.
-
-- Patch #1417555: SimpleHTTPServer now returns Last-Modified headers.
-
-- Bug #1430298: It is now possible to send a mail with an empty
-  return address using smtplib.
-
-- Bug #1432260: The names of lambda functions are now properly displayed
-  in pydoc.
-
-- Patch #1412872: zipfile now sets the creator system to 3 (Unix)
-  unless the system is Win32.
-
-- Patch #1349118: urllib now supports user:pass@ style proxy
-  specifications, raises IOErrors when proxies for unsupported protocols
-  are defined, and uses the https proxy on https redirections.
-
-- Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
-
-- Bug #1407902: Add support for sftp:// URIs to urlparse.
-
-- Bug #1371247: Update Windows locale identifiers in locale.py.
-
-- Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
-  any more.
-
-- Bug #1403410: The warnings module now doesn't get confused
-  when it can't find out the module name it generates a warning for.
-
-- Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature.
-
-- Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode
-
-- Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
-  LoadError as documented, instead of IOError.  For compatibility,
-  LoadError subclasses IOError.
-
-- Added the hashlib module.  It provides secure hash functions for MD5 and
-  SHA1, 224, 256, 384, and 512.  Note that recent developments make the
-  historic MD5 and SHA1 unsuitable for cryptographic-strength applications.
-  In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html>
-  Ronald L. Rivest offered this advice for Python:
-
-      "The consensus of researchers in this area (at least as
-      expressed at the NIST Hash Function Workshop 10/31/05),
-      is that SHA-256 is a good choice for the time being, but
-      that research should continue, and other alternatives may
-      arise from this research.  The larger SHA's also seem OK."
-
-- Added a subset of Fredrik Lundh's ElementTree package.  Available
-  modules are xml.etree.ElementTree, xml.etree.ElementPath, and
-  xml.etree.ElementInclude, from ElementTree 1.2.6.
-
-- Patch #1162825: Support non-ASCII characters in IDLE window titles.
-
-- Bug #1365984: urllib now opens "data:" URLs again.
-
-- Patch #1314396: prevent deadlock for threading.Thread.join() when an exception
-  is raised within the method itself on a previous call (e.g., passing in an
-  illegal argument)
-
-- Bug #1340337: change time.strptime() to always return ValueError when there
-  is an error in the format string.
-
-- Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann).
-
-- Bug #729103: pydoc.py: Fix docother() method to accept additional
-  "parent" argument.
-
-- Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
-  for padding.
-
-- Bug #1296004: httplib.py: Limit maximal amount of data read from the
-  socket to avoid a MemoryError on Windows.
-
-- Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
-  to get the correct encoding.
-
-- Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
-  languages.
-
-- Patch #1268314: Cache lines in StreamReader.readlines for performance.
-
-- Bug #1290505: Fix clearing the regex cache for time.strptime().
-
-- Bug #1167128: Fix size of a symlink in a tarfile to be 0.
-
-- Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
-  functionality.
-
-- Bug #1163178: Make IDNA return an empty string when the input is empty.
-
-- Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
-  separator and do not output trailing semicolon.
-
-- Patch #1062060: urllib.urlretrieve() now raises a new exception, named
-  ContentTooShortException, when the actually downloaded size does not
-  match the Content-Length header.
-
-- Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
-
-- Bug #1178484: Return complete lines from codec stream readers
-  even if there is an exception in later lines, resulting in
-  correct line numbers for decoding errors in source code.
-
-- Bug #1192315: Disallow negative arguments to clear() in pdb.
-
-- Patch #827386: Support absolute source paths in msvccompiler.py.
-
-- Patch #1105730: Apply the new implementation of commonprefix in posixpath
-  to ntpath, macpath, os2emxpath and riscospath.
-
-- Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
-  __hasattr__ and __delattr__ methods on class Tk that were breaking
-  Tkdnd.
-
-- Bug #1015140: disambiguated the term "article id" in nntplib docs and
-  docstrings to either "article number" or "message id".
-
-- Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
-  parameter, but uses the usual "kwargs=None".
-
-- textwrap now processes text chunks at O(n) speed instead of O(n**2).
-  Patch #1209527 (Contributed by Connelly).
-
-- urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
-  to W3C name (404 -> 'Not Found'). RFE #1216944.
-
-- Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
-  as this can cause problems with apps closing all file descriptors.
-
-- Bug #839151: Fix an attempt to access sys.argv in the warnings module;
-  it can be missing in embedded interpreters
-
-- Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
-
-- Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
-  error messages.
-
-- Bug #1108948: Cookie.py produced invalid JavaScript code.
-
-- The tokenize module now detects and reports indentation errors.
-  Bug #1224621.
-
-- The tokenize module has a new untokenize() function to support a full
-  roundtrip from lexed tokens back to Python source code.  In addition,
-  the generate_tokens() function now accepts a callable argument that
-  terminates by raising StopIteration.
-
-- Bug #1196315: fix weakref.WeakValueDictionary constructor.
-
-- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
-  component of the path.
-
-- Patch #1120353: The xmlrpclib module provides better, more transparent,
-  support for datetime.{datetime,date,time} objects.  With use_datetime set
-  to True, applications shouldn't have to fiddle with the DateTime wrapper
-  class at all.
-
-- distutils.commands.upload was added to support uploading distribution
-  files to PyPI.
-
-- distutils.commands.register now encodes the data as UTF-8 before posting
-  them to PyPI.
-
-- decimal operator and comparison methods now return NotImplemented
-  instead of raising a TypeError when interacting with other types.  This
-  allows other classes to implement __radd__ style methods and have them
-  work as expected.
-
-- Bug #1163325:  Decimal infinities failed to hash.  Attempting to
-  hash a NaN raised an InvalidOperation instead of a TypeError.
-
-- Patch #918101: Add tarfile open mode r|* for auto-detection of the
-  stream compression; add, for symmetry reasons, r:* as a synonym of r.
-
-- Patch #1043890: Add extractall method to tarfile.
-
-- Patch #1075887: Don't require MSVC in distutils if there is nothing
-  to build.
-
-- Patch #1103407: Properly deal with tarfile iterators when untarring
-  symbolic links on Windows.
-
-- Patch #645894: Use getrusage for computing the time consumption in
-  profile.py if available.
-
-- Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
-
-- Patch #1117454: Remove code to special-case cookies without values
-  in LWPCookieJar.
-
-- Patch #1117339: Add cookielib special name tests.
-
-- Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
-
-- Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
-
-- Patch #1107973: Allow to iterate over the lines of a tarfile.ExFileObject.
-
-- Patch #1104111: Alter setup.py --help and --help-commands.
-
-- Patch #1121234: Properly cleanup _exit and tkerror commands.
-
-- Patch #1049151: xdrlib now unpacks booleans as True or False.
-
-- Fixed bug in a NameError bug in cookielib.  Patch #1116583.
-
-- Applied a security fix to SimpleXMLRPCserver (PSF-2005-001).  This
-  disables recursive traversal through instance attributes, which can
-  be exploited in various ways.
-
-- Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec
-  flags on the HTTP listening socket.
-
-- Bug #792570: SimpleXMLRPCServer had problems if the request grew too large.
-  Fixed by reading the HTTP body in chunks instead of one big socket.read().
-
-- Patches #893642, #1039083: add allow_none, encoding arguments to
-  constructors of SimpleXMLRPCServer and CGIXMLRPCRequestHandler.
-
-- Bug #1110478: Revert os.environ.update to do putenv again.
-
-- Bug #1103844: fix distutils.install.dump_dirs() with negated options.
-
-- os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience.
-
-- Enhancements to the csv module:
-
-  + Dialects are now validated by the underlying C code, better
-    reflecting its capabilities, and improving its compliance with
-    PEP 305.
-  + Dialect parameter parsing has been re-implemented to improve error
-    reporting.
-  + quotechar=None and quoting=QUOTE_NONE now work the way PEP 305
-    dictates.
-  + the parser now removes the escapechar prefix from escaped characters.
-  + when quoting=QUOTE_NONNUMERIC, the writer now tests for numeric
-    types, rather than any object that can be represented as a numeric.
-  + when quoting=QUOTE_NONNUMERIC, the reader now casts unquoted fields
-    to floats.
-  + reader now allows \r characters to be quoted (previously it only allowed
-    \n to be quoted).
-  + writer doublequote handling improved.
-  + Dialect classes passed to the module are no longer instantiated by
-    the module before being parsed (the former validation scheme required
-    this, but the mechanism was unreliable).
-  + The dialect registry now contains instances of the internal
-    C-coded dialect type, rather than references to python objects.
-  + the internal c-coded dialect type is now immutable.
-  + register_dialect now accepts the same keyword dialect specifications
-    as the reader and writer, allowing the user to register dialects
-    without first creating a dialect class.
-  + a configurable limit to the size of parsed fields has been added -
-    previously, an unmatched quote character could result in the entire
-    file being read into the field buffer before an error was reported.
-  + A new module method csv.field_size_limit() has been added that sets
-    the parser field size limit (returning the former limit). The initial
-    limit is 128kB.
-  + A line_num attribute has been added to the reader object, which tracks
-    the number of lines read from the source iterator. This is not
-    the same as the number of records returned, as records can span
-    multiple lines.
-  + reader and writer objects were not being registered with the cyclic-GC.
-    This has been fixed.
-
-- _DummyThread objects in the threading module now delete self.__block that is
-  inherited from _Thread since it uses up a lock allocated by 'thread'.  The
-  lock primitives tend to be limited in number and thus should not be wasted on
-  a _DummyThread object.  Fixes bug #1089632.
-
-- The imghdr module now detects Exif files.
-
-- StringIO.truncate() now correctly adjusts the size attribute.
-  (Bug #951915).
-
-- locale.py now uses an updated locale alias table (built using
-  Tools/i18n/makelocalealias.py, a tool to parse the X11 locale
-  alias file); the encoding lookup was enhanced to use Python's
-  encoding alias table.
-
-- moved deprecated modules to Lib/lib-old:  whrandom, tzparse, statcache.
-
-- the pickle module no longer accepts the deprecated None option in the
-  args tuple returned by __reduce__().
-
-- optparse now optionally imports gettext.  This allows its use in setup.py.
-
-- the pickle module no longer uses the deprecated bin parameter.
-
-- the shelve module no longer uses the deprecated binary parameter.
-
-- the pstats module no longer uses the deprecated ignore() method.
-
-- the filecmp module no longer uses the deprecated use_statcache argument.
-
-- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
-  extended or overridden by subclasses.  Formerly, the subclassed method would
-  be ignored by the rest of the module.  (Bug #1078905).
-
-- heapq.nsmallest() and heapq.nlargest() now support key= arguments with
-  the same meaning as in list.sort().
-
-- Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
-  once when a size argument is given. This prevents a buffer overflow in the
-  tokenizer with very long source lines.
-
-- Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
-  immediately after creating the object, without any intervening
-  ``.decompress()`` calls.
-
-- The reconvert.quote function can now emit triple-quoted strings.  The
-  reconvert module now has some simple documentation.
-
-- ``UserString.MutableString`` now supports negative indices in
-  ``__setitem__`` and ``__delitem__``
-
-- Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05")
-  correctly.
-
-- Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
-  ``codecs.StreamReader.readline()`` has a trailing "\r", read one more
-  character even if the user has passed a size parameter to get a proper
-  line ending. Remove the special handling of a "\r\n" that has been split
-  between two lines.
-
-- Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
-  about illegal code points. The codec now supports PEP 293 style error
-  handlers.
-
-- Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
-  from the input stream, so that the output is a byte string in the correct
-  encoding instead of a unicode string.
-
-- Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
-  considering it exactly like a '*'.
-
-- Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
-  ``encodings.aliases``.
-
-- ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
-
-- Patch #1413711: Certain patterns of differences were making difflib
-  touch the recursion limit.
-
-- Bug #947906: An object oriented interface has been added to the calendar
-  module. It's possible to generate HTML calendar now and the module can be
-  called as a script (e.g. via ``python -mcalendar``). Localized month and
-  weekday names can be ouput (even if an exotic encoding is used) using
-  special classes that use unicode.
-
-Build
------
-
-- Fix test_float, test_long, and test_struct failures on Tru64 with gcc
-  by using -mieee gcc option.
-
-- Patch #1432345: Make python compile on DragonFly.
-
-- Build support for Win64-AMD64 was added.
-
-- Patch #1428494: Prefer linking against ncursesw over ncurses library.
-
-- Patch #881820: look for openpty and forkpty also in libbsd.
-
-- The sources of zlib are now part of the Python distribution (zlib 1.2.3).
-  The zlib module is now builtin on Windows.
-
-- Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
-
-- Bug #1189330: configure did not correctly determine the necessary
-  value of LINKCC if python was built with GCC 4.0.
-
-- Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
-  vulnerability in zlib 1.2.1 and 1.2.2.
-
-- EXTRA_CFLAGS has been introduced as an environment variable to hold compiler
-  flags that change binary compatibility.  Changes were also made to
-  distutils.sysconfig to also use the environment variable when used during
-  compilation of the interpreter and of C extensions through distutils.
-
-- SF patch 1171735: Darwin 8's headers are anal about POSIX compliance,
-  and linking has changed (prebinding is now deprecated, and libcc_dynamic
-  no longer exists). This configure patch makes things right.
-
-- Bug #1158607: Build with --disable-unicode again.
-
-- spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is
-  defined.  Discovered as a result of not being able to build on OS X.
-
-- setup.py now uses the directories specified in LDFLAGS using the -L option
-  and in CPPFLAGS using the -I option for adding library and include
-  directories, respectively, for compiling extension modules against.  This has
-  led to the core being compiled using the values in CPPFLAGS.  It also removes
-  the need for the special-casing of both DarwinPorts and Fink for darwin since
-  the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink,
-  ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for
-  Fink, ``-I/opt/local/include`` for DarwinPorts).
-
-- Test in configure.in that checks for tzset no longer dependent on tm->tm_zone
-  to exist in the struct (not required by either ISO C nor the UNIX 2 spec).
-  Tests for sanity in tzname when HAVE_TZNAME defined were also defined.
-  Closes bug #1096244.  Thanks Gregory Bond.
-
-C API
------
-
-- ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to
-  ``PyObject_{Free, FREE}``.  They map to the system ``free()`` now.  If memory
-  is obtained via the ``PyObject_`` family, it must be released via the
-  ``PyObject_`` family, and likewise for the ``PyMem_`` family.  This has
-  always been officially true, but when Python's small-object allocator was
-  introduced, an attempt was made to cater to a few extension modules
-  discovered at the time that obtained memory via ``PyObject_New`` but
-  released it via ``PyMem_DEL``.  It's years later, and if such code still
-  exists it will fail now (probably with segfaults, but calling wrong
-  low-level memory management functions can yield many symptoms).
-
-- Added a C API for set and frozenset objects.
-
-- Removed PyRange_New().
-
-- Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the
-  mapping argument now. This string is used as a mapping table. Byte values
-  greater than the length of the string and 0xFFFE are treated as undefined
-  mappings.
-
-
-Tests
------
-
-- In test_os, st_?time is now truncated before comparing it with ST_?TIME.
-
-- Patch #1276356: New resource "urlfetch" is implemented.  This enables
-  even impatient people to run tests that require remote files.
-
-
-Documentation
--------------
-
-- Bug #1402224: Add warning to dl docs about crashes.
-
-- Bug #1396471: Document that Windows' ftell() can return invalid
-  values for text files with UNIX-style line endings.
-
-- Bug #1274828: Document os.path.splitunc().
-
-- Bug #1190204: Clarify which directories are searched by site.py.
-
-- Bug #1193849: Clarify os.path.expanduser() documentation.
-
-- Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
-
-- Bug #755617: Document the effects of os.chown() on Windows.
-
-- Patch #1180012: The documentation for modulefinder is now in the library reference.
-
-- Patch #1213031: Document that os.chown() accepts argument values of -1.
-
-- Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
-
-- Bug #1175022: Correct the example code for property().
-
-- Document the IterableUserDict class in the UserDict module.
-  Closes bug #1166582.
-
-- Remove all latent references for "Macintosh" that referred to semantics for
-  Mac OS 9 and change to reflect the state for OS X.
-  Closes patch #1095802.  Thanks Jack Jansen.
-
-Mac
----
-
-
-New platforms
--------------
-
-- FreeBSD 7 support is added.
-
-
-Tools/Demos
------------
-
-- Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that
-  directory for syntax highlighting in Vim.  Vim directory was added and placed
-  vimrc to it (was previous up a level).
-
-- Added two new files to Tools/scripts: pysource.py, which recursively
-  finds Python source files, and findnocoding.py, which finds Python
-  source files that need an encoding declaration.
-  Patch #784089, credits to Oleg Broytmann.
-
-- Bug #1072853: pindent.py used an uninitialized variable.
-
-- Patch #1177597: Correct Complex.__init__.
-
-- Fixed a display glitch in Pynche, which could cause the right arrow to
-  wiggle over by a pixel.
-
 ----
 
 **(For information about older versions, consult the HISTORY file.)**


More information about the Python-checkins mailing list