Misc/NEWS
author benjamin.peterson
Sun Apr 05 01:16:41 2009 +0200 (10 months ago)
branchpy3k
changeset 3641 202c0c7f1c1d
parent 3638b2fa3331f78e
child 3646e42bcf320c14
permissions -rw-r--r--
[svn r71202] bump version for 3.1a2+
     1 +++++++++++
     2 Python News
     3 +++++++++++
     4 
     5 (editors: check NEWS.help for information about editing NEWS using ReST.)
     6 
     7 What's New in Python 3.1 beta 1?
     8 ================================
     9 
    10 *Release date: XXXX-XX-XX*
    11 
    12 Core and Builtins
    13 -----------------
    14 
    15 Library
    16 -------
    17 
    18 
    19 What's New in Python 3.1 alpha 2?
    20 =================================
    21 
    22 *Release date: 2009-4-4*
    23 
    24 Core and Builtins
    25 -----------------
    26 
    27 - Implement PEP 378, Format Specifier for Thousands Separator, for
    28   integers.
    29 
    30 - Issue #5666: Py_BuildValue's 'c' code should create byte strings.
    31 
    32 - Issue #5499: The 'c' code for argument parsing functions now only accepts a
    33   byte, and the 'C' code only accepts a unicode character.
    34 
    35 - Issue #1665206: Remove the last eager import in _warnings.c and make it lazy.
    36 
    37 - Fix a segfault when running test_exceptions with coverage, caused by
    38   insufficient checks in accessors of Exception.__context__.
    39 
    40 - Issue #5604: non-ASCII characters in module name passed to
    41   imp.find_module() were converted to UTF-8 while the path is
    42   converted to the default filesystem encoding, causing nonsense.
    43 
    44 - Issue #5126: str.isprintable() returned False for space characters.
    45 
    46 - Issue #4865: On MacOSX /Library/Python/2.7/site-packages is added to
    47   the end sys.path, for compatibility with the system install of Python.
    48 
    49 - Issue #4688: Add a heuristic so that tuples and dicts containing only
    50   untrackable objects are not tracked by the garbage collector. This can
    51   reduce the size of collections and therefore the garbage collection overhead
    52   on long-running programs, depending on their particular use of datatypes.
    53 
    54 - Issue #5512: Rewrite PyLong long division algorithm (x_divrem) to
    55   improve its performance.  Long divisions and remainder operations
    56   are now between 50% and 150% faster.
    57 
    58 - Issue #4258: Make it possible to use base 2**30 instead of base
    59   2**15 for the internal representation of integers, for performance
    60   reasons.  Base 2**30 is enabled by default on 64-bit machines.  Add
    61   --enable-big-digits option to configure, which overrides the
    62   default.  Add sys.int_info structseq to provide information about
    63   the internal format.
    64 
    65 - Issue #4474: PyUnicode_FromWideChar now converts characters outside
    66   the BMP to surrogate pairs, on systems with sizeof(wchar_t) == 4
    67   and sizeof(Py_UNICODE) == 2.
    68 
    69 - Issue #5237: Allow auto-numbered fields in str.format(). For
    70   example: '{} {}'.format(1, 2) == '1 2'.
    71 
    72 - Issue #5392: when a very low recursion limit was set, the interpreter would
    73   abort with a fatal error after the recursion limit was hit twice.
    74 
    75 - Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
    76   short file names.
    77 
    78 - Py_DECREF: Add `do { ... } while (0)' to avoid compiler warnings.
    79 
    80 Library
    81 -------
    82 
    83 - Issue 2625: added missing items() call to the for loop in
    84   mailbox.MH.get_message().
    85 
    86 - Issue #5640: Fix _multibytecodec so that CJK codecs don't repeat
    87   error substitutions from non-strict codec error callbacks in
    88   incrementalencoder and StreamWriter.
    89 
    90 - Issue #5656: Fix the coverage reporting when running the test suite with
    91   the -T argument.
    92 
    93 - Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
    94 
    95 - Issue #5624: Fix the _winreg module name still used in several modules.
    96 
    97 - Issue #5628: Fix io.TextIOWrapper.read() with a unreadable buffer.
    98 
    99 - Issue #5619: Multiprocessing children disobey the debug flag and causes
   100   popups on windows buildbots. Patch applied to work around this issue.
   101 
   102 - Issue #5400: Added patch for multiprocessing on netbsd compilation/support
   103 
   104 - Issue #5387: Fixed mmap.move crash by integer overflow.
   105 
   106 - Issue #5261: Patch multiprocessing's semaphore.c to support context
   107   manager use: "with multiprocessing.Lock()" works now.
   108 
   109 - Issue #5236: Change time.strptime() to only take strings. Didn't work with
   110   bytes already but the failure was non-obvious.
   111 
   112 - Issue #5177: Multiprocessing's SocketListener class now uses
   113   socket.SO_REUSEADDR on all connections so that the user no longer needs
   114   to wait 120 seconds for the socket to expire.
   115 
   116 - Issue #5595: Fix UnboundedLocalError in ntpath.ismount().
   117 
   118 - Issue #1174606: Calling read() without arguments of an unbounded file
   119   (typically /dev/zero under Unix) could crash the interpreter.
   120 
   121 - The max_buffer_size arguments of io.BufferedWriter, io.BufferedRWPair, and
   122   io.BufferedRandom have been deprecated for removal in Python 3.2.
   123 
   124 - Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
   125   forever on incomplete input. That caused tarfile.open() to hang when used
   126   with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
   127   partial bzip2 compressed data.
   128 
   129 - Issue #2110: Add support for thousands separator and 'n' type
   130   specifier to Decimal.__format__
   131 
   132 - Fix Decimal.__format__ bug that swapped the meanings of the '<' and
   133   '>' alignment characters.
   134 
   135 - The error detection code in FileIO.close() could fail to reflect the `errno`
   136   value, and report it as -1 instead.
   137 
   138 - Issue #5016: FileIO.seekable() could return False if the file position
   139   was negative when truncated to a C int. Patch by Victor Stinner.
   140 
   141 Extension Modules
   142 -----------------
   143 
   144 - Issue #5391: mmap now deals exclusively with bytes.
   145 
   146 - Issue #5463: In struct module, remove deprecated overflow wrapping
   147   when packing an integer: struct.pack('=L', -1) now raises
   148   struct.error instead of returning b'\xff\xff\xff\xff'.  The
   149   _PY_STRUCT_RANGE_CHECKING and _PY_STRUCT_OVERFLOW_MASKING constants
   150   have been removed from the struct module.
   151 
   152 
   153 What's New in Python 3.1 alpha 1
   154 ================================
   155 
   156 *Release date: 2009-03-07*
   157 
   158 Core and Builtins
   159 -----------------
   160 
   161 - The io module has been reimplemented in C for speed.
   162 
   163 - Give dict views an informative __repr__.
   164 
   165 - Issue #5247: Improve error message when unknown format codes are
   166   used when using str.format() with str, int, and float arguments.
   167 
   168 - Issue #5249: time.strftime returned malformed string when format string
   169   contained non ascii character on windows.
   170 
   171 - Issue #4626: compile(), exec(), and eval() ignore the coding cookie if the
   172   source has already been decoded into str.
   173 
   174 - Issue #5186: Reduce hash collisions for objects with no __hash__ method by
   175   rotating the object pointer by 4 bits to the right.
   176 
   177 - Issue #4575: Fix Py_IS_INFINITY macro to work correctly on x87 FPUs:
   178   it now forces its argument to double before testing for infinity.
   179 
   180 - Issue #5137: Make len() correctly raise a TypeError when a __len__ method
   181   returns a non-number type.
   182 
   183 - Issue #5182: Removed memoryview.__str__.
   184 
   185 - Issue #1717: Removed builtin cmp() function, dropped tp_compare
   186   slot, the C API functions PyObject_Compare and PyUnicode_Compare and
   187   the type definition cmpfunc.  The tp_compare slot has been renamed
   188   to tp_reserved, and is reserved for future usage.
   189 
   190 - Issue 1242657: the __len__() and __length_hint__() calls in several tools
   191   were suppressing all exceptions.  These include list() and bytearray().
   192 
   193 - Issue #4707: round(x, n) now returns an integer if x is an integer.
   194   Previously it returned a float.
   195 
   196 - Issue #4753: By enabling a configure option named '--with-computed-gotos'
   197   on compilers that support it (notably: gcc, SunPro, icc), the bytecode
   198   evaluation loop is compiled with a new dispatch mechanism which gives
   199   speedups of up to 20%, depending on the system, on various benchmarks.
   200 
   201 - Issue #4874: Most builtin decoders now reject unicode input.
   202 
   203 - Issue #4842: Don't allow trailing 'L' when constructing an integer
   204   from a string.
   205 
   206 - Issue #4991: os.fdopen now raises an OSError for invalid file descriptors.
   207 
   208 - Issue #4838: When a module is deallocated, free the memory backing the
   209   optional module state data.
   210 
   211 - Issue #4910: Rename nb_long slot to nb_reserved, and change its
   212   type to (void *).
   213 
   214 - Issue #4935: The overflow checking code in the expandtabs() method common
   215   to str, bytes and bytearray could be optimized away by the compiler, letting
   216   the interpreter segfault instead of raising an error.
   217 
   218 - Issue #3720: Fix a crash when an iterator modifies its class and removes its
   219   __next__ method.
   220 
   221 - Issue #4910: Builtin int() function and PyNumber_Long/PyNumber_Int API
   222   function no longer attempt to call the __long__ slot to convert an object
   223   to an integer.  Only the __int__ and __trunc__ slots are examined.
   224 
   225 - Issue #4893: Use NT threading on CE.
   226 
   227 - Issue #4915: Port sysmodule to Windows CE.
   228 
   229 - Issue #4868: utf-8, utf-16 and latin1 decoding are now 2x to 4x faster. The
   230   common cases are optimized thanks to a dedicated fast path and a moderate
   231   amount of loop unrolling.
   232 
   233 - Issue #4074: Change the criteria for doing a full garbage collection (i.e.
   234   collecting the oldest generation) so that allocating lots of objects without
   235   destroying them does not show quadratic performance. Based on a proposal by
   236   Martin von Löwis at
   237   http://mail.python.org/pipermail/python-dev/2008-June/080579.html.
   238 
   239 - Issue #4604: Some objects of the I/O library could still be used after
   240   having been closed (for instance, a read() call could return some
   241   previously buffered data). Patch by Dmitry Vasiliev.
   242 
   243 - Issue #4705: Fix the -u ("unbuffered binary stdout and stderr") command-line
   244   flag to work properly. Furthermore, when specifying -u, the text stdout
   245   and stderr streams have line-by-line buffering enabled (the default being
   246   to buffer arbitrary chunks of data).
   247 
   248 - The internal table, _PyLong_DigitValue, is now an array of unsigned chars
   249   instead of ints (reducing its size from 4 to 8 times thereby reducing
   250   Python's overall memory).
   251 
   252 - Issue #1180193: When importing a module from a .pyc (or .pyo) file with
   253   an existing .py counterpart, override the co_filename attributes of all
   254   code objects if the original filename is obsolete (which can happen if the
   255   file has been renamed, moved, or if it is accessed through different paths).
   256   Patch by Ziga Seilnacht and Jean-Paul Calderone.
   257 
   258 - Issue #4580: Fix slicing of memoryviews when the item size is greater than
   259   one byte. Also fixes the meaning of len() so that it returns the number of
   260   items, rather than the size in bytes.
   261 
   262 - Issue #4075: Use OutputDebugStringW in Py_FatalError.
   263 
   264 - Issue #4747: When the terminal does not use utf-8, executing a script with
   265   non-ascii characters in its name could fail with a "SyntaxError: None" error.
   266 
   267 - Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
   268   file with `bytes' filename on Windows.
   269 
   270 - Issue #3680: Reference cycles created through a dict, set or deque iterator
   271   did not get collected.
   272 
   273 - Issue #4701: PyObject_Hash now implicitly calls PyType_Ready on types
   274   where the tp_hash and tp_dict slots are both NULL.
   275 
   276 - Issue #4759: None is now allowed as the first argument of
   277   bytearray.translate().  It was always allowed for bytes.translate().
   278 
   279 - Added test case to ensure attempts to read from a file opened for writing
   280   fail.
   281 
   282 - Issue #3106: Speedup some comparisons (str/str and int/int).
   283 
   284 - Issue #2183: Simplify and optimize bytecode for list, dict and set
   285   comprehensions. Original patch for list comprehensions by Neal Norwitz.
   286 
   287 - Issue #2467: gc.DEBUG_STATS reported invalid elapsed times. Also, always
   288   print elapsed times, not only when some objects are uncollectable /
   289   unreachable. Original patch by Neil Schemenauer.
   290 
   291 - Issue #3439: Add a bit_length method to int.
   292 
   293 - Issue #2173: When getting device encoding, check that return value of
   294   nl_langinfo is not the empty string.  This was causing silent build
   295   failures on OS X.
   296 
   297 - Issue #4597: Fixed several opcodes that weren't always propagating
   298   exceptions.
   299 
   300 - Issue #4589: Fixed exception handling when the __exit__ function of a
   301   context manager returns a value that cannot be converted to a bool.
   302 
   303 - Issue #4445: Replace "sizeof(PyBytesObject)" with
   304   "offsetof(PyBytesObject, ob_sval) + 1" when allocating memory for
   305   bytes instances.  On a typical machine this saves 3 bytes of memory
   306   (on average) per allocation of a bytes instance.
   307 
   308 - Issue #4533: File read operation was dreadfully slow due to a slowly
   309   growing read buffer. Fixed by using the same growth rate algorithm as
   310   Python 2.x.
   311 
   312 - Issue #4509: Various issues surrounding resize of bytearray objects to
   313   which there are buffer exports (e.g. memoryview instances).
   314 
   315 - Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
   316   method on file objects with closefd=False. The file descriptor is still
   317   kept open but the file object behaves like a closed file. The ``FileIO``
   318   object also got a new readonly attribute ``closefd``.
   319 
   320 - Issue #4569: Interpreter crash when mutating a memoryview with an item size
   321   larger than 1.
   322 
   323 - Issue #4748: Lambda generators no longer return a value.
   324 
   325 - The re.sub(), re.subn() and re.split() functions now accept a flags parameter.
   326 
   327 Library
   328 -------
   329 
   330 - Issue #1665206 (partially): Move imports in cgitb to the top of the module
   331   instead of performing them in functions. Helps prevent import deadlocking in
   332   threads.
   333 
   334 - Issue #2522: locale.format now checks its first argument to ensure it has
   335   been passed only one pattern, avoiding mysterious errors where it appeared
   336   that it was failing to do localization.
   337 
   338 - Issue #5583: Added optional Extensions in Distutils. Initial patch by Georg
   339   Brandl.
   340 
   341 - Issue #1222: locale.format() bug when the thousands separator is a space
   342   character.
   343 
   344 - Issue #5472: Fixed distutils.test_util tear down. Original patch by
   345   Tim Golden.
   346 
   347 - collections.deque() objects now have a read-only attribute called maxlen.
   348 
   349 - Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after
   350   it is has been populated and properly configured in order to prevent
   351   window flashing.
   352 
   353 - Issue #4792: Prevent a segfault in _tkinter by using the
   354   guaranteed to be safe interp argument given to the PythonCmd in place of
   355   the Tcl interpreter taken from a PythonCmd_ClientData.
   356 
   357 - Issue #5193: Guarantee that tkinter.Text.search returns a string.
   358 
   359 - Issue #5394: removed > 2.3 syntax from distutils.msvc9compiler.
   360   Original patch by Akira Kitada.
   361 
   362 - Issue #5334: array.fromfile() failed to insert values when EOFError was raised.
   363 
   364 - Issue #5385: Fixed mmap crash after resize failure on windows.
   365 
   366 - Issue #5179: Fixed subprocess handle leak on failure on windows.
   367 
   368 - PEP 372:  Added collections.OrderedDict().
   369 
   370 - The _asdict() for method for namedtuples now returns an OrderedDict().
   371 
   372 - configparser now defaults to using an ordered dictionary.
   373 
   374 - Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
   375   import guess_extension`` was used.
   376 
   377 - Issue #1733986: Fixed mmap crash in accessing elements of second map object
   378   with same tagname but larger size than first map. (Windows)
   379 
   380 - Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer
   381   overrun.
   382 
   383 - Issue #1533164: Installed but not listed *.pyo was breaking Distutils
   384   bdist_rpm command.
   385 
   386 - Issue #5378: added --quiet option to Distutils bdist_rpm command.
   387 
   388 - Issue #5052: make Distutils compatible with 2.3 again.
   389 
   390 - Issue #5316: Fixed buildbot failures introduced by multiple inheritance
   391   in Distutils tests.
   392 
   393 - Issue #5287: Add exception handling around findCaller() call to help out
   394   IronPython.
   395 
   396 - Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
   397   The file was resized to wrong size.
   398 
   399 - Issue #5292: Fixed mmap crash on its boundary access m[len(m)].
   400 
   401 - Issue #2279: distutils.sdist.add_defaults now add files
   402   from the package_data and the data_files metadata.
   403 
   404 - Issue #5257: refactored all tests in distutils, so they use
   405   support.TempdirManager, to avoid writing in the tests directory.
   406 
   407 - Issue #4524: distutils build_script command failed with --with-suffix=3.
   408   Initial patch by Amaury Forgeot d'Arc.
   409 
   410 - Issue #2461: added tests for distutils.util
   411 
   412 - Issue #4998: The memory saving effect of __slots__ had been lost on Fractions
   413   which inherited from numbers.py which did not have __slots__ defined.  The
   414   numbers hierarchy now has its own __slots__ declarations.
   415 
   416 - Issue #4631: Fix urlopen() result when an HTTP response uses chunked
   417   encoding.
   418 
   419 - Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
   420   function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).
   421 
   422 - Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored
   423   under NT and OS2. Patch by Philip Jenvey.
   424 
   425 - Issue #5128: Make compileall properly inspect bytecode to determine if needs
   426   to be recreated. This avoids a timing hole thanks to the old reliance on the
   427   ctime of the files involved.
   428 
   429 - Issue #5122: Synchronize tk load failure check to prevent a potential
   430   deadlock.
   431 
   432 - Issue #1818: collections.namedtuple() now supports a keyword argument
   433   'rename' which lets invalid fieldnames be automatically converted to
   434   positional names in the form, _1, _2, ...
   435 
   436 - Issue #4890: Handle empty text search pattern in Tkinter.Text.search.
   437 
   438 - Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a
   439   public documented method ``ZipImporter.get_filename()``.
   440 
   441 - Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support
   442   the execution of packages by looking for and executing a ``__main__``
   443   submodule when a package name is supplied. Initial patch by Andi
   444   Vajda.
   445 
   446 - Issue #1731706: Call Tcl_ConditionFinalize for Tcl_Conditions that will
   447   not be used again (this requires Tcl/Tk 8.3.1), also fix a memory leak in
   448   Tkapp_Call when calling from a thread different than the one that created
   449   the Tcl interpreter. Patch by Robert Hancock.
   450 
   451 - Issue #4285: Change sys.version_info to be a named tuple. Patch by
   452   Ross Light.
   453 
   454 - Issue #1520877: Now distutils.sysconfig reads $AR from the
   455   environment/Makefile. Patch by Douglas Greiman.
   456 
   457 - Issue #1276768: The verbose option was not used in the code of
   458   distutils.file_util and distutils.dir_util.
   459 
   460 - Issue #5132: Fixed trouble building extensions under Solaris with
   461   --enabled-shared activated. Initial patch by Dave Peterson.
   462 
   463 - Issue #1581476: Always use the Tcl global namespace when calling into Tcl.
   464 
   465 - The shelve module now defaults to pickle protocol 3.
   466 
   467 - Fix a bug in the trace module where a bytes object from co_lnotab had its
   468   items being passed through ord().
   469 
   470 - Issue #2047: shutil.move() could believe that its destination path was
   471   inside its source path if it began with the same letters (e.g. "src" vs.
   472   "src.new").
   473 
   474 - Added the ttk module. See issue #2983: Ttk support for Tkinter.
   475 
   476 - Removed isSequenceType(), isMappingType, and isNumberType() from the
   477   operator module; use the abstract base classes instead.  Also removed
   478   the repeat() function; use mul() instead.
   479 
   480 - Issue 5021:  doctest.testfile() did not create __name__ and
   481   collections.namedtuple() relied on __name__ being defined.
   482 
   483 - Backport importlib from Python 3.1. Only the import_module() function has
   484   been backported to help facilitate transitions from 2.7 to 3.1.
   485 
   486 - Issue #1885: distutils. When running sdist with --formats=tar,gztar
   487   the tar file was overriden by the gztar one.
   488 
   489 - Issue #4863: distutils.mwerkscompiler has been removed.
   490 
   491 - Added a new itertools functions:  combinations_with_replacement()
   492   and compress().
   493 
   494 - Issue 5032:  added a step argument to itertools.count() and
   495   allowed non-integer arguments.
   496 
   497 - Fix and properly document the multiprocessing module's logging
   498   support, expose the internal levels and provide proper usage
   499   examples.
   500 
   501 - Issue #1672332: fix unpickling of subnormal floats, which was
   502   producing a ValueError on some platforms.
   503 
   504 - Issue #3881: Help Tcl to load even when started through the
   505   unreadable local symlink to "Program Files" on Vista.
   506 
   507 - Issue #4710: Extract directories properly in the zipfile module;
   508   allow adding directories to a zipfile.
   509 
   510 - Issue #3807: _multiprocessing build fails when configure is passed
   511   --without-threads argument. When this occurs, _multiprocessing will
   512   be disabled, and not compiled.
   513 
   514 - Issue #5008: When a file is opened in append mode with the new IO library,
   515   do an explicit seek to the end of file (so that e.g. tell() returns the
   516   file size rather than 0). This is consistent with the behaviour of the
   517   traditional 2.x file object.
   518 
   519 - Issue #5013: Fixed a bug in FileHandler which occurred when the delay
   520   parameter was set.
   521 
   522 - Issue #4842: Always append a trailing 'L' when pickling longs using
   523   pickle protocol 0.  When reading, the 'L' is optional.
   524 
   525 - Add the importlib package.
   526 
   527 - Issue #4301: Patch the logging module to add processName support, remove
   528   _check_logger_class from multiprocessing.
   529 
   530 - Issue #3325: Remove python2.x try: except: imports for old cPickle from
   531   multiprocessing.
   532 
   533 - Issue #4959: inspect.formatargspec now works for keyword only arguments
   534   without defaults.
   535 
   536 - Issue #3321: _multiprocessing.Connection() doesn't check handle; added checks
   537   for *nix machines for negative handles and large int handles. Without this check
   538   it is possible to segfault the interpreter.
   539 
   540 - Issue #4449: AssertionError in mp_benchmarks.py, caused by an underlying issue
   541   in sharedctypes.py.
   542 
   543 - Issue #1225107: inspect.isclass() returned True for instances with a custom
   544   __getattr__.
   545 
   546 - Issue #3826 and #4791: The socket module now closes the underlying socket
   547   appropriately when it is being used via socket.makefile() objects
   548   rather than delaying the close by waiting for garbage collection to do it.
   549 
   550 - Issue #1696199:  Add collections.Counter() for rapid and convenient
   551   counting.
   552 
   553 - Issue #3860: GzipFile and BZ2File now support the context manager protocol.
   554 
   555 - Issue #4867: Fixed a crash in ctypes when passing a string to a
   556   function without defining argtypes.
   557 
   558 - Issue #4272: Add an optional argument to the GzipFile constructor to override
   559   the timestamp in the gzip stream. The default value remains the current time.
   560   The information can be used by e.g. gunzip when decompressing. Patch by
   561   Jacques Frechet.
   562 
   563 - Restore Python 2.3 compatibility for decimal.py.
   564 
   565 - Issue #3638: Remove functions from _tkinter module level that depend on
   566   TkappObject to work with multiple threads.
   567 
   568 - Issue #4718: Adapt the wsgiref package so that it actually works with
   569   Python 3.x, in accordance with the `official amendments of the spec
   570   <http://www.wsgi.org/wsgi/Amendments_1.0>`_.
   571 
   572 - Issue #4796: Added Decimal.from_float() and Context.create_decimal_from_float()
   573   to the decimal module.
   574 
   575 - Fractions.from_float() no longer loses precision for integers too big to
   576   cast as floats.
   577 
   578 - Issue #4812: add missing underscore prefix to some internal-use-only
   579   constants in the decimal module.  (Dec_0 becomes _Dec_0, etc.)
   580 
   581 - Issue 4790: The nsmallest() and nlargest() functions in the heapq module
   582   did unnecessary work in the common case where no key function was specified.
   583 
   584 - Issue #4795: inspect.isgeneratorfunction() returns False instead of None when
   585   the function is not a generator.
   586 
   587 - Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
   588   no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
   589 
   590 - Issue #4646: distutils was choking on empty options arg in the setup
   591   function. Original patch by Thomas Heller.
   592 
   593 - Issue #3767: Convert Tk object to string in tkColorChooser.
   594 
   595 - Issue #3248: Allow placing ScrolledText in a PanedWindow.
   596 
   597 - Issue #4444: Allow assertRaises() to be used as a context handler, so that
   598   the code under test can be written inline if more practical.
   599 
   600 - Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@')
   601   works as expected in the interactive environment.
   602 
   603 - Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by
   604   Gabriel Genellina.
   605 
   606 - Issue #4574: reading an UTF16-encoded text file crashes if \r on 64-char
   607   boundary.
   608 
   609 - Issue #4223: inspect.getsource() will now correctly display source code
   610   for packages loaded via zipimport (or any other conformant PEP 302
   611   loader). Original patch by Alexander Belopolsky.
   612 
   613 - Issue #4201: pdb can now access and display source code loaded via
   614   zipimport (or any other conformant PEP 302 loader). Original patch by
   615   Alexander Belopolsky.
   616 
   617 - Issue #4197: doctests in modules loaded via zipimport (or any other PEP
   618   302 conformant loader) will now work correctly in most cases (they
   619   are still subject to the constraints that exist for all code running
   620   from inside a module loaded via a PEP 302 loader and attempting to
   621   perform IO operations based on __file__). Original patch by
   622   Alexander Belopolsky.
   623 
   624 - Issues #4082 and #4512: Add runpy support to zipimport in a manner that
   625   allows backporting to maintenance branches. Original patch by
   626   Alexander Belopolsky.
   627 
   628 - Issue #4163: textwrap module: allow word splitting on a hyphen preceded by
   629   a non-ASCII letter.
   630 
   631 - Issue #4616: TarFile.utime(): Restore directory times on Windows.
   632 
   633 - Issue #4021: tokenize.detect_encoding() now raises a SyntaxError when the
   634   codec cannot be found.  This is for compatibility with the builtin behavior.
   635 
   636 - Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to
   637   give correct results in the case where one argument is a quiet NaN
   638   and the other is a finite number that requires rounding.
   639 
   640 - Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
   641   libs.
   642 
   643 - Added the subprocess.check_call_output() convenience function to get output
   644   from a subprocess on success or raise an exception on error.
   645 
   646 - Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
   647   support unusual filenames (such as those containing semi-colons) in
   648   Content-Disposition headers.
   649 
   650 - Issue #4384: Added logging integration with warnings module using
   651   captureWarnings(). This change includes a NullHandler which does nothing;
   652   it will be of use to library developers who want to avoid the "No handlers
   653   could be found for logger XXX" message which can appear if the library user
   654   doesn't configure logging.
   655 
   656 - Issue #3741: DISTUTILS_USE_SDK set causes msvc9compiler.py to raise an
   657   exception.
   658 
   659 - Issue #4529: fix the parser module's validation of try-except-finally
   660   statements.
   661 
   662 - Issue #4458: getopt.gnu_getopt() now recognizes a single "-" as an argument,
   663   not a malformed option.
   664 
   665 - Added the subprocess.check_output() convenience function to get output
   666   from a subprocess on success or raise an exception on error.
   667 
   668 - Issue #4542: On Windows, binascii.crc32 still accepted str as binary input;
   669   the corresponding tests now pass.
   670 
   671 - Issue #4537: webbrowser.UnixBrowser would fail to open the browser because
   672   it was calling the wrong open() function.
   673 
   674 - Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
   675   support unusual filenames (such as those containing semi-colons) in
   676   Content-Disposition headers.
   677 
   678 - Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on
   679   biarch systems. Try to rely on ldconfig only, without using objdump and gcc.
   680 
   681 - Issue #5104: The socket module now raises OverflowError when 16-bit port and
   682   protocol numbers are supplied outside the allowed 0-65536 range on bind()
   683   and getservbyport().
   684 
   685 Tools/Demos
   686 -----------
   687 
   688 - Issue #4704: remove use of cmp() in pybench, bump its version number to 2.1,
   689   and make it 2.6-compatible.
   690 
   691 - Ttk demos added in Demo/tkinter/ttk/
   692 
   693 - Issue #4677: add two list comprehension tests to pybench.
   694 
   695 
   696 Build
   697 -----
   698 
   699 - Link the shared python library with $(MODLIBS).
   700 
   701 - Issue #5134: Silence compiler warnings when compiling sqlite with VC++.
   702 
   703 - Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.
   704 
   705 - Issue #4895: Use _strdup on Windows CE.
   706 
   707 - Issue #4472: "configure --enable-shared" now works on OSX
   708 
   709 - Issues #4728 and #4060: WORDS_BIGEDIAN is now correct in Universal builds.
   710 
   711 - Issue #4389: Add icon to the uninstall entry in "add-and-remove-programs".
   712 
   713 - Issue #4289: Remove Cancel button from AdvancedDlg.
   714 
   715 - Issue #1656675: Register a drop handler for .py* files on Windows.
   716 
   717 - Issue #4120: Exclude manifest from extension modules in VS2008.
   718 
   719 - Issue #4091: Install pythonxy.dll in system32 again.
   720 
   721 - Issue #4018: Disable "for me" installations on Vista.
   722 
   723 - Issue #3758: Add ``patchcheck`` build target to .PHONY.
   724 
   725 - Issue #4204: Fixed module build errors on FreeBSD 4.
   726 
   727 
   728 C-API
   729 -----
   730 
   731 - Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError
   732   for negative arguments.  Previously, it raised TypeError.
   733 
   734 - Issue #4720: The format for PyArg_ParseTupleAndKeywords can begin with '|'.
   735 
   736 - Issue #3632: from the gdb debugger, the 'pyo' macro can now be called when
   737   the GIL is released, or owned by another thread.
   738 
   739 - Issue #4122: On Windows, fix a compilation error when using the
   740   Py_UNICODE_ISSPACE macro in an extension module.
   741 
   742 
   743 Extension Modules
   744 -----------------
   745 
   746 - Issue #3745: Fix hashlib to always reject unicode and non buffer-api
   747   supporting objects as input no matter how it was compiled (built in
   748   implementations or external openssl library).
   749 
   750 - Issue #4397: Fix occasional test_socket failure on OS X.
   751 
   752 - Issue #4279: Fix build of parsermodule under Cygwin.
   753 
   754 - Issue #4751: hashlib now releases the GIL when hashing large buffers
   755   (with a hardwired threshold of 2048 bytes), allowing better parallelization
   756   on multi-CPU systems. Contributed by Lukas Lueg (ebfe) and Victor Stinner.
   757 
   758 - Issue #4051: Prevent conflict of UNICODE macros in cPickle.
   759 
   760 - Issue #4738: Each zlib object now has a separate lock, allowing to compress
   761   or decompress several streams at once on multi-CPU systems. Also, the GIL
   762   is now released when computing the CRC of a large buffer. Patch by ebfe.
   763 
   764 - Issue #4228: Pack negative values the same way as 2.4 in struct's L format.
   765 
   766 - Issue #1040026: Fix os.times result on systems where HZ is incorrect.
   767 
   768 - Issues #3167, #3682: Fix test_math failures for log, log10 on Solaris,
   769   OpenBSD.
   770 
   771 - Issue #4583: array.array would not always prohibit resizing when a buffer
   772   has been exported, resulting in an interpreter crash when accessing the
   773   buffer.
   774 
   775 
   776 - Issue #5228: Make functools.partial objects can now be pickled.
   777 
   778 Tests
   779 -----
   780 
   781 - regrtest no longer treats ImportError as equivalent to SkipTest.  Imports
   782   that should cause a test to be skipped are now done using import_module 
   783   from test support, which does the conversion.
   784 
   785 - Issue #5083: New 'gui' resource for regrtest.
   786 
   787 
   788 Docs
   789 ----
   790 
   791 
   792 **(For information about older versions, consult the HISTORY file.)**