PageRenderTime 1896ms CodeModel.GetById 273ms app.highlight 1028ms RepoModel.GetById 138ms app.codeStats 3ms

/Misc/HISTORY

http://unladen-swallow.googlecode.com/
#! | 12737 lines | 9094 code | 3643 blank | 0 comment | 0 complexity | 9c1bc4d2e0906898e8397430f132aece MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1Python History
   2--------------
   3
   4This file contains the release messages for previous Python releases.
   5As you read on you go back to the dark ages of Python's history.
   6(Note: news about 2.5c2 and later 2.5 releases is in the Misc/NEWS
   7file of the release25-maint branch.)
   8
   9
  10======================================================================
  11
  12
  13What's New in Python 2.5 release candidate 1?
  14=============================================
  15
  16*Release date: 17-AUG-2006*
  17
  18Core and builtins
  19-----------------
  20
  21- Unicode objects will no longer raise an exception when being
  22  compared equal or unequal to a string and a UnicodeDecodeError
  23  exception occurs, e.g. as result of a decoding failure.
  24
  25  Instead, the equal (==) and unequal (!=) comparison operators will
  26  now issue a UnicodeWarning and interpret the two objects as
  27  unequal. The UnicodeWarning can be filtered as desired using
  28  the warning framework, e.g. silenced completely, turned into an
  29  exception, logged, etc.
  30
  31  Note that compare operators other than equal and unequal will still
  32  raise UnicodeDecodeError exceptions as they've always done.
  33
  34- Fix segfault when doing string formatting on subclasses of long.
  35
  36- Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
  37  with new-style classes.
  38
  39- Fix bug related to __len__ functions returning negative values with
  40  classic classes.
  41
  42- Patch #1538606, Fix __index__() clipping.  There were some problems
  43  discovered with the API and how integers that didn't fit into Py_ssize_t
  44  were handled.  This patch attempts to provide enough alternatives
  45  to effectively use __index__.
  46
  47- Bug #1536021: __hash__ may now return long int; the final hash
  48  value is obtained by invoking hash on the long int.
  49
  50- Bug #1536786: buffer comparison could emit a RuntimeWarning.
  51
  52- Bug #1535165: fixed a segfault in input() and raw_input() when
  53  sys.stdin is closed.
  54
  55- On Windows, the PyErr_Warn function is now exported from
  56  the Python dll again.
  57
  58- Bug #1191458: tracing over for loops now produces a line event
  59  on each iteration.  Fixing this problem required changing the .pyc
  60  magic number.  This means that .pyc files generated before 2.5c1
  61  will be regenerated.
  62
  63- Bug #1333982: string/number constants were inappropriately stored
  64  in the byte code and co_consts even if they were not used, ie
  65  immediately popped off the stack.
  66
  67- Fixed a reference-counting problem in property().
  68
  69
  70Library
  71-------
  72
  73- Fix a bug in the ``compiler`` package that caused invalid code to be
  74  generated for generator expressions.
  75
  76- The distutils version has been changed to 2.5.0. The change to
  77  keep it programmatically in sync with the Python version running
  78  the code (introduced in 2.5b3) has been reverted. It will continue
  79  to be maintained manually as static string literal.
  80
  81- If the Python part of a ctypes callback function returns None,
  82  and this cannot be converted to the required C type, an exception is
  83  printed with PyErr_WriteUnraisable.  Before this change, the C
  84  callback returned arbitrary values to the calling code.
  85
  86- The __repr__ method of a NULL ctypes.py_object() no longer raises
  87  an exception.
  88
  89- uuid.UUID now has a bytes_le attribute. This returns the UUID in
  90  little-endian byte order for Windows. In addition, uuid.py gained some
  91  workarounds for clocks with low resolution, to stop the code yielding
  92  duplicate UUIDs.
  93
  94- Patch #1540892: site.py Quitter() class attempts to close sys.stdin
  95  before raising SystemExit, allowing IDLE to honor quit() and exit().
  96
  97- Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
  98
  99- Patch #1536071: trace.py should now find the full module name of a
 100  file correctly even on Windows.
 101
 102- logging's atexit hook now runs even if the rest of the module has
 103  already been cleaned up.
 104
 105- Bug #1112549, fix DoS attack on cgi.FieldStorage.
 106
 107- Bug #1531405, format_exception no longer raises an exception if
 108  str(exception) raised an exception.
 109
 110- Fix a bug in the ``compiler`` package that caused invalid code to be
 111  generated for nested functions.
 112
 113
 114Extension Modules
 115-----------------
 116
 117- Patch #1511317: don't crash on invalid hostname (alias) info.
 118
 119- Patch #1535500: fix segfault in BZ2File.writelines and make sure it
 120  raises the correct exceptions.
 121
 122- Patch # 1536908: enable building ctypes on OpenBSD/AMD64.  The
 123  '-no-stack-protector' compiler flag for OpenBSD has been removed.
 124
 125- Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
 126  uses the _as_parameter_ attribute when objects are passed to foreign
 127  function calls.  The ctypes version number was changed to 1.0.1.
 128
 129- Bug #1530559, struct.pack raises TypeError where it used to convert.
 130  Passing float arguments to struct.pack when integers are expected
 131  now triggers a DeprecationWarning.
 132
 133
 134Tests
 135-----
 136
 137- test_socketserver should now work on cygwin and not fail sporadically
 138  on other platforms.
 139
 140- test_mailbox should now work on cygwin versions 2006-08-10 and later.
 141
 142- Bug #1535182: really test the xreadlines() method of bz2 objects.
 143
 144- test_threading now skips testing alternate thread stack sizes on
 145  platforms that don't support changing thread stack size.
 146
 147
 148Documentation
 149-------------
 150
 151- Patch #1534922: unittest docs were corrected and enhanced.
 152
 153
 154Build
 155-----
 156
 157- Bug #1535502, build _hashlib on Windows, and use masm assembler
 158  code in OpenSSL.
 159
 160- Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
 161
 162- Bug #1530448, ctypes build failure on Solaris 10 was fixed.
 163
 164
 165C API
 166-----
 167
 168- New API for Unicode rich comparisons: PyUnicode_RichCompare()
 169
 170- Bug #1069160.  Internal correctness changes were made to
 171  ``PyThreadState_SetAsyncExc()``.  A test case was added, and
 172  the documentation was changed to state that the return value
 173  is always 1 (normal) or 0 (if the specified thread wasn't found).
 174
 175
 176What's New in Python 2.5 beta 3?
 177================================
 178
 179*Release date: 03-AUG-2006*
 180
 181Core and builtins
 182-----------------
 183
 184- _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
 185  returned a long (see PEP 353).
 186
 187- Bug #1515471: string.replace() accepts character buffers again.
 188
 189- Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
 190  This provides the proper warning for struct.pack().
 191  PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
 192
 193- Patch #1531113: Fix augmented assignment with yield expressions.
 194  Also fix a SystemError when trying to assign to yield expressions.
 195
 196- Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
 197  with PEP 302.  This was fixed by adding an ``imp.NullImporter`` type that is
 198  used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
 199  excessive filesystem operations during imports.
 200
 201- Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
 202  operations on signed longs that are formally undefined by C.
 203  Unfortunately, at least one compiler now cares about that, so complicated
 204  the code to make that compiler happy again.
 205
 206- Bug #1524310: Properly report errors from FindNextFile in os.listdir.
 207
 208- Patch #1232023: Stop including current directory in search
 209  path on Windows.
 210
 211- Fix some potential crashes found with failmalloc.
 212
 213- Fix warnings reported by Klocwork's static analysis tool.
 214
 215- Bug #1512814, Fix incorrect lineno's when code within a function
 216  had more than 255 blank lines.
 217
 218- Patch #1521179: Python now accepts the standard options ``--help`` and
 219  ``--version`` as well as ``/?`` on Windows.
 220
 221- Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
 222  again.  Fixing this problem required changing the .pyc magic number.
 223  This means that .pyc files generated before 2.5b3 will be regenerated.
 224
 225- Bug #1524317:  Compiling Python ``--without-threads`` failed.
 226  The Python core compiles again, and, in a build without threads, the
 227  new ``sys._current_frames()`` returns a dictionary with one entry,
 228  mapping the faux "thread id" 0 to the current frame.
 229
 230- Bug #1525447: build on MacOS X on a case-sensitive filesystem.
 231
 232
 233Library
 234-------
 235
 236- Fix #1693149.  Now you can pass several modules separated by
 237  comma to trace.py in the same --ignore-module option.
 238
 239- Correction of patch #1455898: In the mbcs decoder, set final=False
 240  for stream decoder, but final=True for the decode function.
 241
 242- os.urandom no longer masks unrelated exceptions like SystemExit or
 243  KeyboardInterrupt.
 244
 245- Bug #1525866: Don't copy directory stat times in
 246  shutil.copytree on Windows
 247
 248- Bug #1002398: The documentation for os.path.sameopenfile now correctly
 249  refers to file descriptors, not file objects.
 250
 251- The renaming of the xml package to xmlcore, and the import hackery done
 252  to make it appear at both names, has been removed.  Bug #1511497,
 253  #1513611, and probably others.
 254
 255- Bug #1441397: The compiler module now recognizes module and function
 256  docstrings correctly as it did in Python 2.4.
 257
 258- Bug #1529297:  The rewrite of doctest for Python 2.4 unintentionally
 259  lost that tests are sorted by name before being run.  This rarely
 260  matters for well-written tests, but can create baffling symptoms if
 261  side effects from one test to the next affect outcomes.  ``DocTestFinder``
 262  has been changed to sort the list of tests it returns.
 263
 264- The distutils version has been changed to 2.5.0, and is now kept
 265  in sync with sys.version_info[:3].
 266
 267- Bug #978833: Really close underlying socket in _socketobject.close.
 268
 269- Bug #1459963: urllib and urllib2 now normalize HTTP header names with
 270  title().
 271
 272- Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
 273  to recursive calls and call it with the failing package name.
 274
 275- Bug #1525817: Don't truncate short lines in IDLE's tool tips.
 276
 277- Patch #1515343: Fix printing of deprecated string exceptions with a
 278  value in the traceback module.
 279
 280- Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
 281
 282- Patch #1524429: Use repr() instead of backticks in Tkinter again.
 283
 284- Bug #1520914: Change time.strftime() to accept a zero for any position in its
 285  argument tuple.  For arguments where zero is illegal, the value is forced to
 286  the minimum value that is correct.  This is to support an undocumented but
 287  common way people used  to fill in inconsequential information in the time
 288  tuple pre-2.4.
 289
 290- Patch #1220874: Update the binhex module for Mach-O.
 291
 292- The email package has improved RFC 2231 support, specifically for
 293  recognizing the difference between encoded (name*0*=<blah>) and non-encoded
 294  (name*0=<blah>) parameter continuations.  This may change the types of
 295  values returned from email.message.Message.get_param() and friends.
 296  Specifically in some cases where non-encoded continuations were used,
 297  get_param() used to return a 3-tuple of (None, None, string) whereas now it
 298  will just return the string (since non-encoded continuations don't have
 299  charset and language parts).
 300
 301  Also, whereas % values were decoded in all parameter continuations, they are
 302  now only decoded in encoded parameter parts.
 303
 304- Bug #1517990: IDLE keybindings on MacOS X now work correctly
 305
 306- Bug #1517996: IDLE now longer shows the default Tk menu when a
 307  path browser, class browser or debugger is the frontmost window on MacOS X
 308
 309- Patch #1520294: Support for getset and member descriptors in types.py,
 310  inspect.py, and pydoc.py.  Specifically, this allows for querying the type
 311  of an object against these built-in types and more importantly, for getting
 312  their docstrings printed in the interactive interpreter's help() function.
 313
 314
 315Extension Modules
 316-----------------
 317
 318- Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
 319  a socket operation on a socket with a timeout, the exception will be
 320  caught correctly.  Previously, the exception was not caught.
 321
 322- Patch #1529514: The _ctypes extension is now compiled on more
 323  openbsd target platforms.
 324
 325- The ``__reduce__()`` method of the new ``collections.defaultdict`` had
 326  a memory leak, affecting pickles and deep copies.
 327
 328- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
 329  Paul Eggert.
 330
 331- Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
 332
 333- Patch #1521817: Index range checking on ctypes arrays containing
 334  exactly one element enabled again.  This allows iterating over these
 335  arrays, without the need to check the array size before.
 336
 337- Bug #1521375: When the code in ctypes.util.find_library was
 338  run with root privileges, it could overwrite or delete
 339  /dev/null in certain cases; this is now fixed.
 340
 341- Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
 342  default mode for loading shared libraries in ctypes.
 343
 344- Because of a misspelled preprocessor symbol, ctypes was always
 345  compiled without thread support; this is now fixed.
 346
 347- pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
 348  methods now allow their database parameter to be None as the
 349  sleepycat API allows.
 350
 351- Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
 352  bluetooth API compared with Linux and FreeBSD.
 353
 354Tests
 355-----
 356
 357- Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
 358  how long the test file should take to play.  Now accepts taking 2.93 secs
 359  (exact time) +/- 10% instead of the hard-coded 3.1 sec.
 360
 361- Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
 362  ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
 363  run via ``regrtest.py``. Now they do.
 364
 365Build
 366-----
 367
 368- Bug #1439538: Drop usage of test -e in configure as it is not portable.
 369
 370Mac
 371---
 372
 373- PythonLauncher now works correctly when the path to the script contains
 374  characters that are treated specially by the shell (such as quotes).
 375
 376- Bug #1527397: PythonLauncher now launches scripts with the working directory
 377  set to the directory that contains the script instead of the user home
 378  directory. That latter was an implementation accident and not what users
 379  expect.
 380
 381
 382What's New in Python 2.5 beta 2?
 383================================
 384
 385*Release date: 11-JUL-2006*
 386
 387Core and builtins
 388-----------------
 389
 390- Bug #1441486: The literal representation of -(sys.maxint - 1)
 391  again evaluates to a int object, not a long.
 392
 393- Bug #1501934: The scope of global variables that are locally assigned
 394  using augmented assignment is now correctly determined.
 395
 396- Bug #927248: Recursive method-wrapper objects can now safely
 397  be released.
 398
 399- Bug #1417699: Reject locale-specific decimal point in float()
 400  and atof().
 401
 402- Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
 403  omit a default "error" argument for NULL pointer.  This allows
 404  the parser to take a codec from cjkcodecs again.
 405
 406- Bug #1519018: 'as' is now validated properly in import statements.
 407
 408- On 64 bit systems, int literals that use less than 64 bits are
 409  now ints rather than longs.
 410
 411- Bug #1512814, Fix incorrect lineno's when code at module scope
 412  started after line 256.
 413
 414- New function ``sys._current_frames()`` returns a dict mapping thread
 415  id to topmost thread stack frame.  This is for expert use, and is
 416  especially useful for debugging application deadlocks.  The functionality
 417  was previously available in Fazal Majid's ``threadframe`` extension
 418  module, but it wasn't possible to do this in a wholly threadsafe way from
 419  an extension.
 420
 421Library
 422-------
 423
 424- Bug #1257728: Mention Cygwin in distutils error message about a missing
 425  VS 2003.
 426
 427- Patch #1519566: Update turtle demo, make begin_fill idempotent.
 428
 429- Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
 430  environment variable to be set in order to the SDK environment
 431  for finding the compiler, include files, etc.
 432
 433- Bug #1515998: Properly generate logical ids for files in bdist_msi.
 434
 435- warnings.py now ignores ImportWarning by default
 436
 437- string.Template() now correctly handles tuple-values. Previously,
 438  multi-value tuples would raise an exception and single-value tuples would
 439  be treated as the value they contain, instead.
 440
 441- Bug #822974: Honor timeout in telnetlib.{expect,read_until}
 442  even if some data are received.
 443
 444- Bug #1267547: Put proper recursive setup.py call into the
 445  spec file generated by bdist_rpm.
 446
 447- Bug #1514693: Update turtle's heading when switching between
 448  degrees and radians.
 449
 450- Reimplement turtle.circle using a polyline, to allow correct
 451  filling of arcs.
 452
 453- Bug #1514703: Only setup canvas window in turtle when the canvas
 454  is created.
 455
 456- Bug #1513223: .close() of a _socketobj now releases the underlying
 457  socket again, which then gets closed as it becomes unreferenced.
 458
 459- Bug #1504333: Make sgmllib support angle brackets in quoted
 460  attribute values.
 461
 462- Bug #853506: Fix IPv6 address parsing in unquoted attributes in
 463  sgmllib ('[' and ']' were not accepted).
 464
 465- Fix a bug in the turtle module's end_fill function.
 466
 467- Bug #1510580: The 'warnings' module improperly required that a Warning
 468  category be either a types.ClassType and a subclass of Warning.  The proper
 469  check is just that it is a subclass with Warning as the documentation states.
 470
 471- The compiler module now correctly compiles the new try-except-finally
 472  statement (bug #1509132).
 473
 474- The wsgiref package is now installed properly on Unix.
 475
 476- A bug was fixed in logging.config.fileConfig() which caused a crash on
 477  shutdown when fileConfig() was called multiple times.
 478
 479- The sqlite3 module did cut off data from the SQLite database at the first
 480  null character before sending it to a custom converter. This has been fixed
 481  now.
 482
 483Extension Modules
 484-----------------
 485
 486- #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
 487  means that select() on sockets > FD_SETSIZE (typically 1024) work again.
 488  The patch makes sockets use poll() internally where available.
 489
 490- Assigning None to pointer type fields in ctypes structures possible
 491  overwrote the wrong fields, this is fixed now.
 492
 493- Fixed a segfault in _ctypes when ctypes.wintypes were imported
 494  on non-Windows platforms.
 495
 496- Bug #1518190: The ctypes.c_void_p constructor now accepts any
 497  integer or long, without range checking.
 498
 499- Patch #1517790: It is now possible to use custom objects in the ctypes
 500  foreign function argtypes sequence as long as they provide a from_param
 501  method, no longer is it required that the object is a ctypes type.
 502
 503- The '_ctypes' extension module now works when Python is configured
 504  with the --without-threads option.
 505
 506- Bug #1513646: os.access on Windows now correctly determines write
 507  access, again.
 508
 509- Bug #1512695: cPickle.loads could crash if it was interrupted with
 510  a KeyboardInterrupt.
 511
 512- Bug #1296433: parsing XML with a non-default encoding and
 513  a CharacterDataHandler could crash the interpreter in pyexpat.
 514
 515- Patch #1516912: improve Modules support for OpenVMS.
 516
 517Build
 518-----
 519
 520- Automate Windows build process for the Win64 SSL module.
 521
 522- 'configure' now detects the zlib library the same way as distutils.
 523  Previously, the slight difference could cause compilation errors of the
 524  'zlib' module on systems with more than one version of zlib.
 525
 526- The MSI compileall step was fixed to also support a TARGETDIR
 527  with spaces in it.
 528
 529- Bug #1517388: sqlite3.dll is now installed on Windows independent
 530  of Tcl/Tk.
 531
 532- Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
 533  trying to be installed even though it's empty.
 534
 535Tests
 536-----
 537
 538- Call os.waitpid() at the end of tests that spawn child processes in order
 539  to minimize resources (zombies).
 540
 541Documentation
 542-------------
 543
 544- Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
 545  documentation for the warnings module.
 546
 547- Patch #1509163: MS Toolkit Compiler no longer available.
 548
 549- Patch #1504046: Add documentation for xml.etree.
 550
 551
 552What's New in Python 2.5 beta 1?
 553================================
 554
 555*Release date: 20-JUN-2006*
 556
 557Core and builtins
 558-----------------
 559
 560- Patch #1507676: Error messages returned by invalid abstract object operations
 561  (such as iterating over an integer) have been improved and now include the
 562  type of the offending object to help with debugging.
 563
 564- Bug #992017: A classic class that defined a __coerce__() method that returned
 565  its arguments swapped would infinitely recurse and segfault the interpreter.
 566
 567- Fix the socket tests so they can be run concurrently.
 568
 569- Removed 5 integers from C frame objects (PyFrameObject).
 570  f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
 571
 572- Bug #532646: object.__call__() will continue looking for the __call__
 573  attribute on objects until one without one is found.  This leads to recursion
 574  when you take a class and set its __call__ attribute to an instance of the
 575  class.  Originally fixed for classic classes, but this fix is for new-style.
 576  Removes the infinite_rec_3 crasher.
 577
 578- The string and unicode methods startswith() and endswith() now accept
 579  a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
 580
 581- Buffer objects, at the C level, never used the char buffer
 582  implementation even when the char buffer for the wrapped object was
 583  explicitly requested (originally returned the read or write buffer).
 584  Now a TypeError is raised if the char buffer is not present but is
 585  requested.
 586
 587- Patch #1346214: Statements like "if 0: suite" are now again optimized
 588  away like they were in Python 2.4.
 589
 590- Builtin exceptions are now full-blown new-style classes instead of
 591  instances pretending to be classes, which speeds up exception handling
 592  by about 80% in comparison to 2.5a2.
 593
 594- Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
 595  Unicode 4.1.
 596
 597- Patch #921466: sys.path_importer_cache is now used to cache valid and
 598  invalid file paths for the built-in import machinery which leads to
 599  fewer open calls on startup.
 600
 601- Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
 602  of-2 bases.  The largest speedup is for inputs with about 1000 decimal
 603  digits.  Conversion from non-power-of-2 bases remains quadratic-time in
 604  the number of input digits (it was and remains linear-time for bases
 605  2, 4, 8, 16 and 32).
 606
 607- Bug #1334662: ``int(string, base)`` could deliver a wrong answer
 608  when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
 609  an integer close to ``sys.maxint``.  This was repaired by patch
 610  #1335972, which also gives a nice speedup.
 611
 612- Patch #1337051: reduced size of frame objects.
 613
 614- PyErr_NewException now accepts a tuple of base classes as its
 615  "base" parameter.
 616
 617- Patch #876206: function call speedup by retaining allocated frame
 618  objects.
 619
 620- Bug #1462152: file() now checks more thoroughly for invalid mode
 621  strings and removes a possible "U" before passing the mode to the
 622  C library function.
 623
 624- Patch #1488312, Fix memory alignment problem on SPARC in unicode
 625
 626- Bug #1487966: Fix SystemError with conditional expression in assignment
 627
 628- WindowsError now has two error code attributes: errno, which carries
 629  the error values from errno.h, and winerror, which carries the error
 630  values from winerror.h. Previous versions put the winerror.h values
 631  (from GetLastError()) into the errno attribute.
 632
 633- Patch #1475845: Raise IndentationError for unexpected indent.
 634
 635- Patch #1479181: split open() and file() from being aliases for each other.
 636
 637- Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
 638  methods were always silently ignored by dictionaries when comparing keys.
 639  They are now passed through (except when using the C API function
 640  ``PyDict_GetItem()``, whose semantics did not change).
 641
 642- Bug #1456209: In some obscure cases it was possible for a class with a
 643  custom ``__eq__()`` method to confuse dict internals when class instances
 644  were used as a dict's keys and the ``__eq__()`` method mutated the dict.
 645  No, you don't have any code that did this ;-)
 646
 647Extension Modules
 648-----------------
 649
 650- Bug #1295808: expat symbols should be namespaced in pyexpat
 651
 652- Patch #1462338: Upgrade pyexpat to expat 2.0.0
 653
 654- Change binascii.hexlify to accept a read-only buffer instead of only a char
 655  buffer and actually follow its documentation.
 656
 657- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
 658
 659- Patch #1478788 (modified version): The functional extension module has
 660  been renamed to _functools and a functools Python wrapper module added.
 661  This provides a home for additional function related utilities that are
 662  not specifically about functional programming. See PEP 309.
 663
 664- Patch #1493701: performance enhancements for struct module.
 665
 666- Patch #1490224: time.altzone is now set correctly on Cygwin.
 667
 668- Patch #1435422: zlib's compress and decompress objects now have a
 669  copy() method.
 670
 671- Patch #1454481: thread stack size is now tunable at runtime for thread
 672  enabled builds on Windows and systems with Posix threads support.
 673
 674- On Win32, os.listdir now supports arbitrarily-long Unicode path names
 675  (up to the system limit of 32K characters).
 676
 677- Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
 678  As a result, these functions now raise WindowsError instead of OSError.
 679
 680- ``time.clock()`` on Win64 should use the high-performance Windows
 681  ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
 682  Windows platforms).
 683
 684- Calling Tk_Init twice is refused if the first call failed as that
 685  may deadlock.
 686
 687- bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
 688  accept it without potentially using an uninitialized pointer.
 689
 690- bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
 691  assuming BerkeleyDB >= 4.0 and 4.4 respectively.  [pybsddb project SF
 692  patch numbers 1494885 and 1494902]
 693
 694- bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
 695  [pybsddb project SF patch number 1466734]
 696
 697- bsddb: fix DBCursor.pget() bug with keyword argument names when no data
 698  parameter is supplied.  [SF pybsddb bug #1477863]
 699
 700- bsddb: the __len__ method of a DB object has been fixed to return correct
 701  results.  It could previously incorrectly return 0 in some cases.
 702  Fixes SF bug 1493322 (pybsddb bug 1184012).
 703
 704- bsddb: the bsddb.dbtables Modify method now raises the proper error and
 705  aborts the db transaction safely when a modifier callback fails.
 706  Fixes SF python patch/bug #1408584.
 707
 708- bsddb: multithreaded DB access using the simple bsddb module interface
 709  now works reliably.  It has been updated to use automatic BerkeleyDB
 710  deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
 711  database calls that would previously deadlock. [SF python bug #775414]
 712
 713- Patch #1446489: add support for the ZIP64 extensions to zipfile.
 714
 715- Patch #1506645: add Python wrappers for the curses functions
 716  is_term_resized, resize_term and resizeterm.
 717
 718Library
 719-------
 720
 721- Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
 722  functions.
 723
 724- Patch #812986: Update turtle output even if not tracing.
 725
 726- Patch #1494750: Destroy master after deleting children in
 727  Tkinter.BaseWidget.
 728
 729- Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
 730
 731- Patch #763580: Add name and value arguments to Tkinter variable
 732  classes.
 733
 734- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
 735  mime.types file for determining MIME types.
 736
 737- Bug #1339007: Shelf objects now don't raise an exception in their
 738  __del__ method when initialization failed.
 739
 740- Patch #1455898: The MBCS codec now supports the incremental mode for
 741  double-byte encodings.
 742
 743- ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
 744  guarantee that adjacent triples in the return list always describe
 745  non-adjacent blocks.  Previously, a pair of matching blocks could end
 746  up being described by multiple adjacent triples that formed a partition
 747  of the matching pair.
 748
 749- Bug #1498146: fix optparse to handle Unicode strings in option help,
 750  description, and epilog.
 751
 752- Bug #1366250: minor optparse documentation error.
 753
 754- Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
 755  clarify docs.
 756
 757- The wsgiref package has been added to the standard library.
 758
 759- The functions update_wrapper() and wraps() have been added to the functools
 760  module. These make it easier to copy relevant metadata from the original
 761  function when writing wrapper functions.
 762
 763- The optional ``isprivate`` argument to ``doctest.testmod()``, and the
 764  ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
 765
 766- Patch #1359618: Speed up charmap encoder by using a trie structure
 767  for lookup.
 768
 769- The functions in the ``pprint`` module now sort dictionaries by key
 770  before computing the display.  Before 2.5, ``pprint`` sorted a dictionary
 771  if and only if its display required more than one line, although that
 772  wasn't documented.  The new behavior increases predictability; e.g.,
 773  using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
 774
 775- Patch #1497027: try HTTP digest auth before basic auth in urllib2
 776  (thanks for J. J. Lee).
 777
 778- Patch #1496206: improve urllib2 handling of passwords with respect to
 779  default HTTP and HTTPS ports.
 780
 781- Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
 782
 783- Patch #1281707: speed up gzip.readline.
 784
 785- Patch #1180296: Two new functions were added to the locale module:
 786  format_string() to get the effect of  "format % items" but locale-aware,
 787  and currency() to format a monetary number with currency sign.
 788
 789- Patch #1486962: Several bugs in the turtle Tk demo module were fixed
 790  and several features added, such as speed and geometry control.
 791
 792- Patch #1488881: add support for external file objects in bz2 compressed
 793  tarfiles.
 794
 795- Patch #721464: pdb.Pdb instances can now be given explicit stdin and
 796  stdout arguments, making it possible to redirect input and output
 797  for remote debugging.
 798
 799- Patch #1484695: Update the tarfile module to version 0.8. This fixes
 800  a couple of issues, notably handling of long file names using the
 801  GNU LONGNAME extension.
 802
 803- Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
 804  new flag when ``name`` is already the name of an option flag.
 805
 806- Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
 807  package.
 808
 809- Patch #1472854: make the rlcompleter.Completer class usable on non-
 810  UNIX platforms.
 811
 812- Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
 813
 814- Bug #1472827: correctly escape newlines and tabs in attribute values in
 815  the saxutils.XMLGenerator class.
 816
 817
 818Build
 819-----
 820
 821- Bug #1502728: Correctly link against librt library on HP-UX.
 822
 823- OpenBSD 3.9 is supported now.
 824
 825- Patch #1492356: Port to Windows CE.
 826
 827- Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
 828
 829- Patch #1471883: Add --enable-universalsdk.
 830
 831C API
 832-----
 833
 834Tests
 835-----
 836
 837Tools
 838-----
 839
 840Documentation
 841-------------
 842
 843
 844
 845What's New in Python 2.5 alpha 2?
 846=================================
 847
 848*Release date: 27-APR-2006*
 849
 850Core and builtins
 851-----------------
 852
 853- Bug #1465834: 'bdist_wininst preinstall script support' was fixed
 854  by converting these apis from macros into exported functions again:
 855
 856    PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
 857    PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
 858    PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
 859    PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
 860    PyRun_String Py_CompileString
 861
 862- Under COUNT_ALLOCS, types are not necessarily immortal anymore.
 863
 864- All uses of PyStructSequence_InitType have been changed to initialize
 865  the type objects only once, even if the interpreter is initialized
 866  multiple times.
 867
 868- Bug #1454485, array.array('u') could crash the interpreter.  This was
 869  due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
 870  to unicode when it didn't make sense.  'u#' now requires a unicode string.
 871
 872- Py_UNICODE is unsigned.  It was always documented as unsigned, but
 873  due to a bug had a signed value in previous versions.
 874
 875- Patch #837242: ``id()`` of any Python object always gives a positive
 876  number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
 877  ``PyLong_AsVoidPtr`` have been changed accordingly.  Note that it has
 878  never been correct to implement a ``__hash()__`` method that returns the
 879  ``id()`` of an object:
 880
 881      def __hash__(self):
 882          return id(self)  # WRONG
 883
 884  because a hash result must be a (short) Python int but it was always
 885  possible for ``id()`` to return a Python long.  However, because ``id()``
 886  could return negative values before, on a 32-bit box an ``id()`` result
 887  was always usable as a hash value before this patch.  That's no longer
 888  necessarily so.
 889
 890- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
 891  to load extension modules and now provides the dl module. As a result,
 892  sys.setdlopenflags() now works correctly on these systems. (SF patch
 893  #1454844)
 894
 895- Patch #1463867: enhanced garbage collection to allow cleanup of cycles
 896  involving generators that have paused outside of any ``try`` or ``with``
 897  blocks.  (In 2.5a1, a paused generator that was part of a reference
 898  cycle could not be garbage collected, regardless of whether it was
 899  paused in a ``try`` or ``with`` block.)
 900
 901Extension Modules
 902-----------------
 903
 904- Patch #1191065: Fix preprocessor problems on systems where recvfrom
 905  is a macro.
 906
 907- Bug #1467952: os.listdir() now correctly raises an error if readdir()
 908  fails with an error condition.
 909
 910- Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
 911
 912- Bug #1117761: bsddb.*open() no longer raises an exception when using
 913  the cachesize parameter.
 914
 915- Bug #1149413: bsddb.*open() no longer raises an exception when using
 916  a temporary db (file=None) with the 'n' flag to truncate on open.
 917
 918- Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
 919  as older versions cause excessive test failures.
 920
 921- Patch #1062014: AF_UNIX sockets under Linux have a special
 922  abstract namespace that is now fully supported.
 923
 924Library
 925-------
 926
 927- Bug #1223937: subprocess.CalledProcessError reports the exit status
 928  of the process using the returncode attribute, instead of
 929  abusing errno.
 930
 931- Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
 932  a doctest to be skipped (the code is not run, and the expected output
 933  or exception is ignored).
 934
 935- Fixed contextlib.nested to cope with exceptions being raised and
 936  caught inside exit handlers.
 937
 938- Updated optparse module to Optik 1.5.1 (allow numeric constants in
 939  hex, octal, or binary; add ``append_const`` action; keep going if
 940  gettext cannot be imported; added ``OptionParser.destroy()`` method;
 941  added ``epilog`` for better help generation).
 942
 943- Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
 944  called from a thread spawned as a side effect of importing a module.
 945
 946- The pydoc module now supports documenting packages contained in
 947  .zip or .egg files.
 948
 949- The pkgutil module now has several new utility functions, such
 950  as ``walk_packages()`` to support working with packages that are either
 951  in the filesystem or zip files.
 952
 953- The mailbox module can now modify and delete messages from
 954  mailboxes, in addition to simply reading them.  Thanks to Gregory
 955  K. Johnson for writing the code, and to the 2005 Google Summer of
 956  Code for funding his work.
 957
 958- The ``__del__`` method of class ``local`` in module ``_threading_local``
 959  returned before accomplishing any of its intended cleanup.
 960
 961- Patch #790710: Add breakpoint command lists in pdb.
 962
 963- Patch #1063914: Add Tkinter.Misc.clipboard_get().
 964
 965- Patch #1191700: Adjust column alignment in bdb breakpoint lists.
 966
 967- SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
 968  Windows. Bug #1469163.
 969
 970- The warnings, linecache, inspect, traceback, site, and doctest modules
 971  were updated to work correctly with modules imported from zipfiles or
 972  via other PEP 302 __loader__ objects.
 973
 974- Patch #1467770: Reduce usage of subprocess._active to processes which
 975  the application hasn't waited on.
 976
 977- Patch #1462222: Fix Tix.Grid.
 978
 979- Fix exception when doing glob.glob('anything*/')
 980
 981- The pstats.Stats class accepts an optional stream keyword argument to
 982  direct output to an alternate file-like object.
 983
 984Build
 985-----
 986
 987- The Makefile now has a reindent target, which runs reindent.py on
 988  the library.
 989
 990- Patch #1470875: Building Python with MS Free Compiler
 991
 992- Patch #1161914: Add a python-config script.
 993
 994- Patch #1324762:Remove ccpython.cc; replace --with-cxx with
 995  --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
 996  specified. (Can be overridden by explicitly setting LINKCC.) Decouple
 997  CXX from --with-cxx-main, see description in README.
 998
 999- Patch #1429775: Link extension modules with the shared libpython.
1000
1001- Fixed a libffi build problem on MIPS systems.
1002
1003- ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
1004  now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
1005  and "%zu" for unsigned integers of type ``size_t``.
1006
1007Tests
1008-----
1009
1010- test_contextlib now checks contextlib.nested can cope with exceptions
1011  being raised and caught inside exit handlers.
1012
1013- test_cmd_line now checks operation of the -m and -c command switches
1014
1015- The test_contextlib test in 2.5a1 wasn't actually run unless you ran
1016  it separately and by hand.  It also wasn't cleaning up its changes to
1017  the current Decimal context.
1018
1019- regrtest.py now has a -M option to run tests that test the new limits of
1020  containers, on 64-bit architectures. Running these tests is only sensible
1021  on 64-bit machines with more than two gigabytes of memory. The argument
1022  passed is the maximum amount of memory for the tests to use.
1023
1024Tools
1025-----
1026
1027- Added the Python benchmark suite pybench to the Tools/ directory;
1028  contributed by Marc-Andre Lemburg.
1029
1030Documentation
1031-------------
1032
1033- Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
1034
1035- PEP 343: Added Context Types section to the library reference
1036  and attempted to bring other PEP 343 related documentation into
1037  line with the implementation and/or python-dev discussions.
1038
1039- Bug #1337990: clarified that ``doctest`` does not support examples
1040  requiring both expected output and an exception.
1041
1042
1043What's New in Python 2.5 alpha 1?
1044=================================
1045
1046*Release date: 05-APR-2006*
1047
1048Core and builtins
1049-----------------
1050
1051- PEP 338: -m command line switch now delegates to runpy.run_module
1052  allowing it to support modules in packages and zipfiles
1053
1054- On Windows, .DLL is not an accepted file name extension for
1055  extension modules anymore; extensions are only found if they
1056  end in .PYD.
1057
1058- Bug #1421664: sys.stderr.encoding is now set to the same value as
1059  sys.stdout.encoding.
1060
1061- __import__ accepts keyword arguments.
1062
1063- Patch #1460496: round() now accepts keyword arguments.
1064
1065- Fixed bug #1459029 - unicode reprs were double-escaped.
1066
1067- Patch #1396919: The system scope threads are reenabled on FreeBSD
1068  5.4 and later versions.
1069
1070- Bug #1115379: Compiling a Unicode string with an encoding declaration
1071  now gives a SyntaxError.
1072
1073- Previously, Python code had no easy way to access the contents of a
1074  cell object. Now, a ``cell_contents`` attribute has been added
1075  (closes patch #1170323).
1076
1077- Patch #1123430: Python's small-object allocator now returns an arena to
1078  the system ``free()`` when all memory within an arena becomes unused
1079  again.  Prior to Python 2.5, arenas (256KB chunks of memory) were never
1080  freed.  Some applications will see a drop in virtual memory size now,
1081  especially long-running applications that, from time to time, temporarily
1082  use a large number of small objects.  Note that when Python returns an
1083  arena to the platform C's ``free()``, there's no guarantee that the
1084  platform C library will in turn return that memory to the operating system.
1085  The effect of the patch is to stop making that impossible, and in tests it
1086  appears to be effective at least on Microsoft C and gcc-based systems.
1087  Thanks to Evan Jones for hard work and patience.
1088
1089- Patch #1434038: property() now uses the getter's docstring if there is
1090  no "doc" argument given. This makes it possible to legitimately use
1091  property() as a decorator to produce a read-only property.
1092
1093- PEP 357, patch 1436368: add an __index__ method to int/long and a matching
1094  nb_index slot to the PyNumberMethods struct.  The slot is consulted instead
1095  of requiring an int or long in slicing and a few other contexts, enabling
1096  other objects (e.g. Numeric Python's integers) to be used as slice indices.
1097
1098- Fixed various bugs reported by Coverity's Prevent tool.
1099
1100- PEP 352, patch #1104669: Make exceptions new-style objects.  Introduced the
1101  new exception base class, BaseException, which has a new message attribute.
1102  KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
1103  Raising a string exception now raises a DeprecationWarning.
1104
1105- Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
1106  explicitly relative, using 'from .module import name' to mean 'from the same
1107  package as this module is in. Imports without dots still default to the
1108  old relative-then-absolute, unless 'from __future__ import
1109  absolute_import' is used.
1110
1111- Properly check if 'warnings' raises an exception (usually when a filter set
1112  to "error" is triggered) when raising a warning for raising string
1113  exceptions.
1114
1115- CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
1116  The name was removed from Include/code.h.
1117
1118- PEP 308: conditional expressions were added: (x if cond else y).
1119
1120- Patch 1433928:
1121  - The copy module now "copies" function objects (as atomic objects).
1122  - dict.__getitem__ now looks for a __missing__ hook before raising
1123    KeyError.
1124
1125- PEP 343: with statement implemented. Needs ``from __future__ import
1126  with_statement``. Use of 'with' as a variable will generate a warning.
1127  Use of 'as' as a variable will also generate a warning (unless it's
1128  part of an import statement).
1129  The following objects have __context__ methods:
1130  - The built-in file type.
1131  - The thread.LockType type.
1132  - The following types defined by the threading module:
1133    Lock, RLock, Condition, Semaphore, BoundedSemaphore.
1134  - The decimal.Context class.
1135
1136- Fix the encodings package codec search function to only search
1137  inside its own package. Fixes problem reported in patch #1433198.
1138
1139  Note: Codec packages should implement and register their own
1140  codec search function. PEP 100 has the details.
1141
1142- PEP 353: Using ``Py_ssize_t`` as the index type.
1143
1144- ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
1145  info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
1146  now allow Python to make use of memory blocks exceeding 2**32 bytes for
1147  some purposes on 64-bit boxes.  A ``PYMALLOC_DEBUG`` build was limited
1148  to 4-byte allocations before.
1149
1150- Patch #1400181, fix unicode string formatting to not use the locale.
1151  This is how string objects work.  u'%f' could use , instead of .
1152  for the decimal point.  Now both strings and unicode always use periods.
1153
1154- Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
1155  configure would break checking curses.h.
1156
1157- Bug #959576: The pwd module is now builtin. This allows Python to be
1158  built on UNIX platforms without $HOME set.
1159
1160- Bug #1072182, fix some potential problems if characters are signed.
1161
1162- Bug #889500, fix line number on SyntaxWarning for global declarations.
1163
1164- Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
1165
1166- Support for converting hex strings to floats no longer works.
1167  This was not portable.  float('0x3') now raises a ValueError.
1168
1169- Patch #1382163: Expose Subversion revision number to Python.  New C API
1170  function Py_GetBuildNumber().  New attribute sys.subversion.  Build number
1171  is now displayed in interactive prompt banner.
1172
1173- Implementation of PEP 341 - Unification of try/except and try/finally.
1174  "except" clauses can now be written together with a "finally" clause in
1175  one try statement instead of two nested ones.  Patch #1355913.
1176
1177- Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
1178  now encodes backslash correctly.
1179
1180- Patch #1350409: Work around signal handling bug in Visual Studio 2005.
1181
1182- Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
1183  and long longs.
1184
1185- SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
1186  It was possible for dlerror() to return a NULL pointer, so
1187  it will now use a default error message in this case.
1188
1189- Replaced most Unicode charmap codecs with new ones using the
1190  new Unicode translate string feature in the builtin charmap
1191  codec; the codecs were created from the mapping tables available
1192  at ftp.unicode.org and contain a few updates (e.g. the Mac OS
1193  encodings now include a mapping for the Apple logo)
1194
1195- Added a few more codecs for Mac OS encodings
1196
1197- Sped up some Unicode operations.
1198
1199- A new AST parser implementation was completed. The abstract
1200  syntax tree is available for read-only (non-compile) access
1201  to Python code; an _ast module was added.
1202
1203- SF bug #1167751: fix incorrect code being produced for generator expressions.
1204  The following code now raises a SyntaxError:  foo(a = i for i in range(10))
1205
1206- SF Bug #976608: fix SystemError when mtime of an imported file is -1.
1207
1208- SF Bug #887946: fix segfault when redirecting stdin from a directory.
1209  Provide a warning when a directory is passed on the command line.
1210
1211- Fix segfault with invalid coding.
1212
1213- SF bug #772896: unknown encoding results in MemoryError.
1214
1215- All iterators now have a Boolean value of True.  Formerly, some iterators
1216  supported a __len__() method which evaluated to False when the iterator
1217  was empty.
1218
1219- On 64-bit platforms, when __len__() returns a value that cannot be
1220  represented as a C int, raise OverflowError.
1221
1222- test__locale is skipped on OS X < 10.4 (only partial locale support is
1223  present).
1224
1225- SF bug #893549: parsing keyword arguments was broken with a few format
1226  codes.
1227
1228- Changes donated by Elemental Security to make it work on AIX 5.3
1229  with IBM's 64-bit compiler (SF patch #1284289).  This also closes SF
1230  bug #105470: test_pwd fails on 64bit system (Opteron).
1231
1232- Changes donated by Elemental Security to make it work on HP-UX 11 on
1233  Itanium2 with HP's 64-bit compiler (SF patch #1225212).
1234
1235- Disallow keyword arguments for type constructors that don't use them
1236  (fixes bug #1119418).
1237
1238- Forward UnicodeDecodeError into SyntaxError for source encoding errors.
1239
1240- SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
1241  exceptions that cause a function to exit.
1242
1243- The implementation of set() and frozenset() was revised to use its
1244  own internal data structure.  Memory consumption is reduced by 1/3
1245  and there are modest speed-ups as well.  The API is unchanged.
1246
1247- SF bug #1238681:  freed pointer is used in longobject.c:long_pow().
1248
1249- SF bug #1229429: PyObject_CallMethod failed to decrement some
1250  reference counts in some error exit cases.
1251
1252- SF bug #1185883:  Python's small-object memory allocator took over
1253  a block managed by the platform C library whenever a realloc specified
1254  a small new size.  However, there's no portable way to know then how
1255  much of the address space following the pointer is valid, so there's no
1256  portable way to copy data from the C-managed block into Python's
1257  small-object space without risking a memory fault.  Python's small-object
1258  realloc now leaves such blocks under the control of the platform C
1259  realloc.
1260
1261- SF bug #1232517: An overflow error was not detected properly when
1262  attempting to convert a large float to an int in os.utime().
1263
1264- SF bug #1224347: hex longs now print with lowercase letters just
1265  like their int counterparts.
1266
1267- SF bug #1163563: the original fix for bug #1010677 ("thread Module
1268  Breaks PyGILState_Ensure()") broke badly in the case of multiple
1269  interpreter states; back out that fix and do a better job (see
1270  http://mail.python.org/pipermail/python-dev/2005-June/054258.html
1271  for a longer write-up of the problem).
1272
1273- SF patch #1180995: marshal now uses a binary format by default when
1274  serializing floats.
1275
1276- SF patch #1181301: on platforms that appear to use IEEE 754 floats,
1277  the routines that promise to produce IEEE 754 binary representations
1278  of floats now simply copy bytes around.
1279
1280- bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
1281  278.
1282
1283- patch #1109424: int, long, float, complex, and unicode now check for the
1284  proper magic slot for type conversions when subclassed.  Previously the
1285  magic slot was ignored during conversion.  Semantics now match the way
1286  subclasses of str always behaved.  int/long/float, conversion of an instance
1287  to the base class has been moved to the proper nb_* magic slot and out of
1288  PyNumber_*().
1289  Thanks Walter Drwald.
1290
1291- Descriptors defined in C with a PyGetSetDef structure, where the setter is
1292  NULL, now raise an AttributeError when attempting to set or delete the
1293  attribute.  Previously a TypeError was raised, but this was inconsistent
1294  with the equivalent pure-Python implementation.
1295
1296- It is now safe to call PyGILState_Release() before
1297  PyEval_InitThreads() (note that if there is reason to believe there
1298  are multiple threads around you still must call PyEval_InitThreads()
1299  before using the Python API; this fix is for extension modules that
1300  have no way of knowing if Python is multi-threaded yet).
1301
1302- Typing Ctrl-C whilst raw_input() was waiting in a build with threads
1303  disabled caused a crash.
1304
1305- Bug #1165306: instancemethod_new allowed the creation of a method
1306  with im_class == im_self == NULL, which caused a crash when called.
1307
1308- Move exception finalisation later in the shutdown process - this
1309  fixes the crash seen in bug #1165761
1310
1311- Added two new builtins, any() and all().
1312
1313- Defining a class with empty parentheses is now allowed
1314  (e.g., ``class C(): pass`` is no longer a syntax error).
1315  Patch #1176012 added support to the 'parser' module and 'compiler' package
1316  (thanks to logistix for that added support).
1317
1318- Patch #1115086: Support PY_LONGLONG in structmember.
1319
1320- Bug #115

Large files files are truncated, but you can click here to view the full file