diff --git a/Misc/NEWS b/Misc/NEWS index 36db4faadc1..b81dd204708 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,39 +12,38 @@ What's New in Python 3.2 Alpha 2? Core and Builtins ----------------- -- Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replaced - by the new (and simpler) DUP_TOP_TWO. Performance isn't changed, but - our bytecode is a bit simplified. Patch by Demur Rumed. +- Issue #9225: Remove the ROT_FOUR and DUP_TOPX opcode, the latter replaced by + the new (and simpler) DUP_TOP_TWO. Performance isn't changed, but our + bytecode is a bit simplified. Patch by Demur Rumed. - Issue #9766: Rename poorly named variables exposed by _warnings to prevent confusion with the proper variables names from 'warnings' itself. -- Issue #9212: dict_keys and dict_items now provide the isdisjoint() - method, to conform to the Set ABC. Patch by Daniel Urban. +- Issue #9212: dict_keys and dict_items now provide the isdisjoint() method, to + conform to the Set ABC. Patch by Daniel Urban. -- Issue #9737: Fix a crash when trying to delete a slice or an item from - a memoryview object. +- Issue #9737: Fix a crash when trying to delete a slice or an item from a + memoryview object. -- Issue #9549: sys.setdefaultencoding() and PyUnicode_SetDefaultEncoding() - are now removed, since their effect was inexistent in 3.x (the default - encoding is hardcoded to utf-8 and cannot be changed). +- Issue #9549: sys.setdefaultencoding() and PyUnicode_SetDefaultEncoding() are + now removed, since their effect was inexistent in 3.x (the default encoding is + hardcoded to utf-8 and cannot be changed). - Issue #7415: PyUnicode_FromEncodedObject() now uses the new buffer API properly. Patch by Stefan Behnel. -- Issue #5553: The Py_LOCAL_INLINE macro now results in inlining on - most platforms. Previously, it inlined when using Microsoft - Visual C. +- Issue #5553: The Py_LOCAL_INLINE macro now results in inlining on most + platforms. Previously, it inlined only when using Microsoft Visual C. - Issue #9712: Fix tokenize on identifiers that start with non-ascii names. - Issue #9688: __basicsize__ and __itemsize__ must be accessed as Py_ssize_t. -- Issue #9684: Added a definition for SIZEOF_WCHAR_T to PC/pyconfig.h, - to match the pyconfig.h generated by configure on other systems. +- Issue #9684: Added a definition for SIZEOF_WCHAR_T to PC/pyconfig.h, to match + the pyconfig.h generated by configure on other systems. -- Issue #9666: Only catch AttributeError in hasattr(). All other exceptions - that occur during attribute lookup are now propagated to the caller. +- Issue #9666: Only catch AttributeError in hasattr(). All other exceptions that + occur during attribute lookup are now propagated to the caller. - Issue #8622: Add PYTHONFSENCODING environment variable to override the filesystem encoding. @@ -64,35 +63,34 @@ Core and Builtins - Issue #9612: The set object is now 64-bit clean under Windows. -- Issue #8202: sys.argv[0] is now set to '-m' instead of '-c' when searching - for the module file to be executed with the -m command line option. +- Issue #8202: sys.argv[0] is now set to '-m' instead of '-c' when searching for + the module file to be executed with the -m command line option. -- Issue #9599: Create PySys_FormatStdout() and PySys_FormatStderr() functions - to write a message formatted by PyUnicode_FromFormatV() to sys.stdout and +- Issue #9599: Create PySys_FormatStdout() and PySys_FormatStderr() functions to + write a message formatted by PyUnicode_FromFormatV() to sys.stdout and sys.stderr. - Issue #9542: Create PyUnicode_FSDecoder() function, a ParseTuple converter: - decode bytes objects to unicode using PyUnicode_DecodeFSDefaultAndSize(); - str objects are output as-is. + decode bytes objects to unicode using PyUnicode_DecodeFSDefaultAndSize(); str + objects are output as-is. -- Issue #9203: Computed gotos are now enabled by default on supported - compilers (which are detected by the configure script). They can still - be disable selectively by specifying --without-computed-gotos. +- Issue #9203: Computed gotos are now enabled by default on supported compilers + (which are detected by the configure script). They can still be disable + selectively by specifying --without-computed-gotos. -- Issue #9425: Create PyErr_WarnFormat() function, similar to PyErr_WarnEx() - but use PyUnicode_FromFormatV() to format the warning message. +- Issue #9425: Create PyErr_WarnFormat() function, similar to PyErr_WarnEx() but + use PyUnicode_FromFormatV() to format the warning message. -- Issue #8530: Prevent stringlib fastsearch from reading beyond the front - of an array. +- Issue #8530: Prevent stringlib fastsearch from reading beyond the front of an + array. -- Issue #5319: Print an error if flushing stdout fails at interpreter - shutdown. +- Issue #5319: Print an error if flushing stdout fails at interpreter shutdown. -- Issue #9337: The str() of a float or complex number is now identical - to its repr(). +- Issue #9337: The str() of a float or complex number is now identical to its + repr(). -- Issue #9416: Fix some issues with complex formatting where the - output with no type specifier failed to match the str output: +- Issue #9416: Fix some issues with complex formatting where the output with no + type specifier failed to match the str output: - format(complex(-0.0, 2.0), '-') omitted the real part from the output, - format(complex(0.0, 2.0), '-') included a sign and parentheses. @@ -103,103 +101,100 @@ Extensions - Issue #8734: Avoid crash in msvcrt.get_osfhandle() when an invalid file descriptor is provided. Patch by Pascal Chambon. -- Issue #7736: Release the GIL around calls to opendir() and closedir() - in the posix module. Patch by Marcin Bachry. +- Issue #7736: Release the GIL around calls to opendir() and closedir() in the + posix module. Patch by Marcin Bachry. -- Issue #4835: make PyLong_FromSocket_t() and PyLong_AsSocket_t() private - to the socket module, and fix the width of socket descriptors to be - correctly detected under 64-bit Windows. +- Issue #4835: make PyLong_FromSocket_t() and PyLong_AsSocket_t() private to the + socket module, and fix the width of socket descriptors to be correctly + detected under 64-bit Windows. -- Issue #1027206: Support IDNA in gethostbyname, gethostbyname_ex, - getaddrinfo and gethostbyaddr. getnameinfo is now restricted to numeric - addresses as input. +- Issue #1027206: Support IDNA in gethostbyname, gethostbyname_ex, getaddrinfo + and gethostbyaddr. getnameinfo is now restricted to numeric addresses as + input. -- Issue #9214: Set operations on a KeysView or ItemsView in collections - now correctly return a set. (Patch by Eli Bendersky.) +- Issue #9214: Set operations on a KeysView or ItemsView in collections now + correctly return a set. Patch by Eli Bendersky. - Issue #5737: Add Solaris-specific mnemonics in the errno module. Patch by Matthew Ahrens. -- Restore GIL in nis_cat in case of error. Decode NIS data to fs encoding, - using the surrogate error handler. +- Restore GIL in nis_cat in case of error. Decode NIS data to fs encoding, using + the surrogate error handler. -- Issue #665761: ``functools.reduce()`` will no longer mask exceptions - other than ``TypeError`` raised by the iterator argument. +- Issue #665761: ``functools.reduce()`` will no longer mask exceptions other + than ``TypeError`` raised by the iterator argument. - Issue #9570: Use PEP 383 decoding in os.mknod and os.mkfifo. -- Issue #6915: Under Windows, os.listdir() didn't release the Global - Interpreter Lock around all system calls. Original patch by Ryan Kelly. +- Issue #6915: Under Windows, os.listdir() didn't release the Global Interpreter + Lock around all system calls. Original patch by Ryan Kelly. -- Issue #8524: Add a detach() method to socket objects, so as to put the - socket into the closed state without closing the underlying file - descriptor. +- Issue #8524: Add a detach() method to socket objects, so as to put the socket + into the closed state without closing the underlying file descriptor. - Issue #477863: Print a warning at shutdown if gc.garbage is not empty. - Issue #6869: Fix a refcount problem in the _ctypes extension. -- Issue #5504: ctypes should now work with systems where mmap can't - be PROT_WRITE and PROT_EXEC. +- Issue #5504: ctypes should now work with systems where mmap can't be + PROT_WRITE and PROT_EXEC. -- Issue #9507: Named tuple repr will now automatically display the right - name in a tuple subclass. +- Issue #9507: Named tuple repr will now automatically display the right name in + a tuple subclass. -- Issue #9324: Add parameter validation to signal.signal on Windows in order - to prevent crashes. +- Issue #9324: Add parameter validation to signal.signal on Windows in order to + prevent crashes. -- Issue #9526: Remove some outdated (int) casts that were preventing - the array module from working correctly with arrays of more than - 2**31 elements. +- Issue #9526: Remove some outdated (int) casts that were preventing the array + module from working correctly with arrays of more than 2**31 elements. - Fix memory leak in ssl._ssl._test_decode_cert. -- Issue #8065: Fix memory leak in readline module (from failure to - free the result of history_get_history_state()). +- Issue #8065: Fix memory leak in readline module (from failure to free the + result of history_get_history_state()). - Issue #9450: Fix memory leak in readline.replace_history_item and readline.remove_history_item for readline version >= 5.0. - Issue #8105: Validate file descriptor passed to mmap.mmap on Windows. -- Issue #8046: Add context manager protocol support and .closed property - to mmap objects. +- Issue #8046: Add context manager protocol support and .closed property to mmap + objects. Library ------- -- Issue #7451: Improve decoding performance of JSON objects, and reduce - the memory consumption of said decoded objects when they use the same - strings as keys. +- Issue #7451: Improve decoding performance of JSON objects, and reduce the + memory consumption of said decoded objects when they use the same strings as + keys. -- Issue #1100562: Fix deep-copying of objects derived from the list and - dict types. Patch by Michele Orrù and Björn Lindqvist. +- Issue #1100562: Fix deep-copying of objects derived from the list and dict + types. Patch by Michele Orrù and Björn Lindqvist. -- Issue #9753: Fixed socket.dup, which did not always work correctly - on Windows. +- Issue #9753: Fixed socket.dup, which did not always work correctly on Windows. -- Issue #9421: Made the get methods consistently accept the vars - and default arguments on all parser classes. +- Issue #9421: Made the get methods consistently accept the vars and + default arguments on all parser classes. - Issue #7005: Fixed output of None values for RawConfigParser.write and ConfigParser.write. - Issue #8990: array.fromstring() and array.tostring() get renamed to frombytes() and tobytes(), respectively, to avoid confusion. Furthermore, - array.frombytes(), array.extend() as well as the array.array() - constructor now accept bytearray objects. Patch by Thomas Jollans. + array.frombytes(), array.extend() as well as the array.array() constructor now + accept bytearray objects. Patch by Thomas Jollans. -- Issue #808164: Fixed socket.close to avoid references to globals, to - avoid issues when socket.close is called from a __del__ method. +- Issue #808164: Fixed socket.close to avoid references to globals, to avoid + issues when socket.close is called from a __del__ method. -- Issue #9706: ssl module provides a better error handling in various +- Issue #9706: ssl module provides a better error handling in various circumstances. -- Issue #1868: Eliminate subtle timing issues in thread-local objects by - getting rid of the cached copy of thread-local attribute dictionary. +- Issue #1868: Eliminate subtle timing issues in thread-local objects by getting + rid of the cached copy of thread-local attribute dictionary. -- Issue #1512791: In setframerate() in the wave module, non-integral - frame rates are rounded to the nearest integer. +- Issue #1512791: In setframerate() in the wave module, non-integral frame rates + are rounded to the nearest integer. - Issue #8797: urllib2 does a retry for Basic Authentication failure instead of falling into recursion. @@ -210,54 +205,53 @@ Library - Issue #8750: Fixed MutableSet's methods to correctly handle reflexive operations on its self, namely x -= x and x ^= x. -- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing - error handling when accepting a new connection. +- Issue #9129: smtpd.py is vulnerable to DoS attacks deriving from missing error + handling when accepting a new connection. - Issue #9601: ftplib now provides a workaround for non-compliant - implementations such as IIS shipped with Windows server 2003 returning - invalid response codes for MKD and PWD commands. + implementations such as IIS shipped with Windows server 2003 returning invalid + response codes for MKD and PWD commands. - Issue #658749: asyncore's connect() method now correctly interprets winsock errors. - Issue #9501: Fixed logging regressions in cleanup code. -- Fix functools.total_ordering() to skip methods inherited from object(). +- Fix functools.total_ordering() to skip methods inherited from object. -- Issue #9572: Importlib should not raise an exception if a directory it - thought it needed to create was done concurrently by another process. +- Issue #9572: Importlib should not raise an exception if a directory it thought + it needed to create was done concurrently by another process. - Issue #9617: Signals received during a low-level write operation aren't ignored by the buffered IO layer anymore. - Issue #843590: Make "macintosh" an alias to the "mac_roman" encoding. -- Create os.fsdecode(): decode from the filesystem encoding with - surrogateescape error handler, or strict error handler on Windows. +- Create os.fsdecode(): decode from the filesystem encoding with surrogateescape + error handler, or strict error handler on Windows. -- Issue #3488: Provide convenient shorthand functions ``gzip.compress`` - and ``gzip.decompress``. Original patch by Anand B. Pillai. +- Issue #3488: Provide convenient shorthand functions ``gzip.compress`` and + ``gzip.decompress``. Original patch by Anand B. Pillai. -- Issue #8807: poplib.POP3_SSL class now accepts a context parameter, which is - a ssl.SSLContext object allowing bundling SSL configuration options, +- Issue #8807: poplib.POP3_SSL class now accepts a context parameter, which is a + ssl.SSLContext object allowing bundling SSL configuration options, certificates and private keys into a single (potentially long-lived) structure. - Issue #8866: parameters passed to socket.getaddrinfo can now be specified as single keyword arguments. -- Address XXX comment in dis.py by having inspect.py prefer to reuse the - dis.py compiler flag values over defining its own +- Address XXX comment in dis.py by having inspect.py prefer to reuse the dis.py + compiler flag values over defining its own. -- Issue #9147: Added dis.code_info() which is similar to show_code() - but returns formatted code information in a string rather than - displaying on screen. +- Issue #9147: Added dis.code_info() which is similar to show_code() but returns + formatted code information in a string rather than displaying on screen. - Issue #9567: functools.update_wrapper now adds a __wrapped__ attribute - pointing to the original callable + pointing to the original callable. -- Issue #3445: functools.update_wrapper now tolerates missing attributes - on wrapped callables +- Issue #3445: functools.update_wrapper now tolerates missing attributes on + wrapped callables. - Issue #5867: Add abc.abstractclassmethod and abc.abstractstaticmethod. @@ -268,79 +262,79 @@ Library encoding and surrogateescape error handler. Patch written by David Watson. - Issue #9603: posix.ttyname() and posix.ctermid() decode the terminal name - using the filesystem encoding and surrogateescape error handler. Patch - written by David Watson. + using the filesystem encoding and surrogateescape error handler. Patch written + by David Watson. -- Issue #7647: The posix module now has the ST_RDONLY and ST_NOSUID - constants, for use with the statvfs() function. Patch by Adam Jackson. +- Issue #7647: The posix module now has the ST_RDONLY and ST_NOSUID constants, + for use with the statvfs() function. Patch by Adam Jackson. -- Issue #8688: MANIFEST files created by distutils now include a magic - comment indicating they are generated. Manually maintained MANIFESTs - without this marker will not be overwritten or removed. +- Issue #8688: MANIFEST files created by distutils now include a magic comment + indicating they are generated. Manually maintained MANIFESTs without this + marker will not be overwritten or removed. -- Issue #7467: when reading a file from a ZIP archive, its CRC is checked - and a BadZipfile error is raised if it doesn't match (as used to be the - case in Python 2.5 and earlier). +- Issue #7467: when reading a file from a ZIP archive, its CRC is checked and a + BadZipfile error is raised if it doesn't match (as used to be the case in + Python 2.5 and earlier). -- Issue #9550: a BufferedReader could issue an additional read when the - original read request had been satisfied, which could block indefinitely - when the underlying raw IO channel was e.g. a socket. Report and original - patch by Jason V. Miller. +- Issue #9550: a BufferedReader could issue an additional read when the original + read request had been satisfied, which could block indefinitely when the + underlying raw IO channel was e.g. a socket. Report and original patch by + Jason V. Miller. - Issue #3757: thread-local objects now support cyclic garbage collection. - Thread-local objects involved in reference cycles will be deallocated - timely by the cyclic GC, even if the underlying thread is still running. + Thread-local objects involved in reference cycles will be deallocated timely + by the cyclic GC, even if the underlying thread is still running. - Issue #9452: Add read_file, read_string, and read_dict to the configparser API; new source attribute to exceptions. -- Issue #6231: Fix xml.etree.ElementInclude to include the tail of the - current node. +- Issue #6231: Fix xml.etree.ElementInclude to include the tail of the current + node. - Issue #8047: Fix the xml.etree serializer to return bytes by default. Use ``encoding="unicode"`` to generate a Unicode string. -- Issue #8280: urllib2's Request method will remove fragments in the url. - This is how it is supposed to work, wget and curl do the same. Previous - behavior was wrong. +- Issue #8280: urllib2's Request method will remove fragments in the url. This + is how it is supposed to work, wget and curl do the same. Previous behavior + was wrong. - Issue #6683: For SMTP logins we now try all authentication methods advertised by the server. Many servers are buggy and advertise authentication methods they do not support in reality. -- Issue #8814: function annotations (the ``__annotations__`` attribute) - are now included in the set of attributes copied by default by - functools.wraps and functools.update_wrapper. Patch by Terrence Cole. +- Issue #8814: function annotations (the ``__annotations__`` attribute) are now + included in the set of attributes copied by default by functools.wraps and + functools.update_wrapper. Patch by Terrence Cole. - Issue #2944: asyncore doesn't handle connection refused correctly. -- Issue #4184: Private attributes on smtpd.SMTPChannel made public and - deprecate the private attributes. Add tests for smtpd module. +- Issue #4184: Private attributes on smtpd.SMTPChannel made public and deprecate + the private attributes. Add tests for smtpd module. -- Issue #3196: email header decoding is now forgiving if an RFC2047 - encoded word encoded in base64 is lacking padding. +- Issue #3196: email header decoding is now forgiving if an RFC2047 encoded word + encoded in base64 is lacking padding. -- Issue #9444: Argparse now uses the first element of prefix_chars as - the option character for the added 'h/help' option if prefix_chars - does not contain a '-', instead of raising an error. +- Issue #9444: Argparse now uses the first element of prefix_chars as the option + character for the added 'h/help' option if prefix_chars does not contain a + '-', instead of raising an error. -- Issue #7372: Fix pstats regression when stripping paths from profile - data generated with the profile module. +- Issue #7372: Fix pstats regression when stripping paths from profile data + generated with the profile module. -- Issue #9428: Fix running scripts with the profile/cProfile modules from - the command line. +- Issue #9428: Fix running scripts with the profile/cProfile modules from the + command line. -- Issue #7781: Fix restricting stats by entry counts in the pstats - interactive browser. +- Issue #7781: Fix restricting stats by entry counts in the pstats interactive + browser. -- Issue #9209: Do not crash in the pstats interactive browser on invalid - regular expressions. +- Issue #9209: Do not crash in the pstats interactive browser on invalid regular + expressions. -- Update collections.OrderedDict to match the implementation in Py2.7 - (based on lists instead of weakly referenced Link objects). +- Update collections.OrderedDict to match the implementation in Py2.7 (based on + lists instead of weakly referenced Link objects). -- Issue #8397: Raise an error when attempting to mix iteration and regular - reads on a BZ2File object, rather than returning incorrect results. +- Issue #8397: Raise an error when attempting to mix iteration and regular reads + on a BZ2File object, rather than returning incorrect results. - Issue #9448: Fix a leak of OS resources (mutexes or semaphores) when re-initializing a buffered IO object by calling its ``__init__`` method. @@ -356,19 +350,19 @@ Library - Issue #8230: Fix Lib/test/sortperf.py. -- Issue #8620: when a Cmd is fed input that reaches EOF without a final - newline, it no longer truncates the last character of the last command line. +- Issue #8620: when a Cmd is fed input that reaches EOF without a final newline, + it no longer truncates the last character of the last command line. - Issue #5146: Handle UID THREAD command correctly in imaplib. - Issue #5147: Fix the header generated for cookie files written by http.cookiejar.MozillaCookieJar. -- Issue #8198: In pydoc, output all help text to the correct stream - when sys.stdout is reassigned. +- Issue #8198: In pydoc, output all help text to the correct stream when + sys.stdout is reassigned. -- Issue #7909: Do not touch paths with the special prefixes ``\\.\`` - or ``\\?\`` in ntpath.normpath(). +- Issue #7909: Do not touch paths with the special prefixes ``\\.\`` or ``\\?\`` + in ntpath.normpath(). - Issue #1286: Allow using fileinput.FileInput as a context manager. @@ -405,9 +399,8 @@ Build - Issue #9193: PEP 3149 is accepted. -- Issue #3101: Helper functions _add_one_to_index_C() and - _add_one_to_index_F() become _Py_add_one_to_index_C() and - _Py_add_one_to_index_F(), respectively. +- Issue #3101: Helper functions _add_one_to_index_C() and _add_one_to_index_F() + become _Py_add_one_to_index_C() and _Py_add_one_to_index_F(), respectively. - Issue #9700: define HAVE_BROKEN_POSIX_SEMAPHORES under AIX 6.x. Patch by Sébastien Sablé.