summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS1682
1 files changed, 1169 insertions, 513 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index f79e57a..14bf253 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,10 +2,10 @@
Python News
+++++++++++
-What's New in Python 3.2.3?
-===========================
+What's New in Python 3.3 Alpha 1?
+=================================
-*Release date: XX-XXX-2011*
+*Release date: XX-XXX-20XX*
Core and Builtins
-----------------
@@ -14,23 +14,61 @@ Core and Builtins
stream. It was already the case with Python 2. However, the corresponding
sys module entries are now set to None (instead of an unusable file object).
+- Issue #11849: Ensure that free()d memory arenas are really released
+ on POSIX systems supporting anonymous memory mappings. Patch by
+ Charles-François Natali.
+
+- Issue #13452: PyUnicode_EncodeDecimal() doesn't support error handlers
+ different than "strict" anymore. The caller was unable to compute the
+ size of the output buffer: it depends on the error handler.
+
+- PEP 3155 / issue #13448: Qualified name for classes and functions.
+
- Issue #13436: Fix a bogus error message when an AST object was passed
an invalid integer value.
+- Issue #13411: memoryview objects are now hashable when the underlying
+ object is hashable.
+
- Issue #13338: Handle all enumerations in _Py_ANNOTATE_MEMORY_ORDER
to allow compiling extension modules with -Wswitch-enum on gcc.
Initial patch by Floris Bruynooghe.
+- Issue #10227: Add an allocation cache for a single slice object. Patch by
+ Stefan Behnel.
+
+- Issue #13393: BufferedReader.read1() now asks the full requested size to
+ the raw stream instead of limiting itself to the buffer size.
+
+- Issue #13392: Writing a pyc file should now be atomic under Windows as well.
+
- Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder
already accepts them).
+- Issue #13389: Full garbage collection passes now clear the freelists for
+ list and dict objects. They already cleared other freelists in the
+ interpreter.
+
+- Issue #13327: Remove the need for an explicit None as the second argument
+ to os.utime, os.lutimes, os.futimes, os.futimens, os.futimesat, in
+ order to update to the current time. Also added keyword argument
+ handling to os.utimensat in order to remove the need for explicit None.
+
+- Issue #13350: Simplify some C code by replacing most usages of
+ PyUnicode_Format by PyUnicode_FromFormat.
+
- Issue #13342: input() used to ignore sys.stdin's and sys.stdout's unicode
error handler in interactive mode (when calling into PyOS_Readline()).
+- Issue #9896: Add start, stop, and step attributes to range objects.
+
- Issue #13343: Fix a SystemError when a lambda expression uses a global
variable in the default value of a keyword-only argument:
(lambda *, arg=GLOBAL_NAME: None)
+- Issue #12797: Added custom opener parameter to builtin open() and
+ FileIO.open().
+
- Issue #10519: Avoid unnecessary recursive function calls in
setobject.c.
@@ -39,21 +77,43 @@ Core and Builtins
- Issue #13018: Fix reference leaks in error paths in dictobject.c.
Patch by Suman Saha.
+- Issue #13201: Define '==' and '!=' to compare range objects based on
+ the sequence of values they define (instead of comparing based on
+ object identity).
+
- Issue #1294232: In a few cases involving metaclass inheritance, the
interpreter would sometimes invoke the wrong metaclass when building a new
class object. These cases now behave correctly. Patch by Daniel Urban.
+- Issue #12753: Add support for Unicode name aliases and named sequences.
+ Both :func:`unicodedata.lookup()` and '\N{...}' now resolve aliases,
+ and :func:`unicodedata.lookup()` resolves named sequences too.
+
+- Issue #12170: The count(), find(), rfind(), index() and rindex() methods
+ of bytes and bytearray objects now accept an integer between 0 and 255
+ as their first argument. Patch by Petri Lehtinen.
+
- Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler
warnings. Patch by Josh Triplett and Petri Lehtinen.
+- Issue #12281: Rewrite the MBCS codec to handle correctly replace and ignore
+ error handlers on all Windows versions. The MBCS codec is now supporting all
+ error handlers, instead of only replace to encode and ignore to decode.
+
- Issue #13188: When called without an explicit traceback argument,
generator.throw() now gets the traceback from the passed exception's
``__traceback__`` attribute. Patch by Petri Lehtinen.
+- Issue #13146: Writing a pyc file is now atomic under POSIX.
+
- Issue #7833: Extension modules built using distutils on Windows will no
longer include a "manifest" to prevent them failing at import time in some
embedded situations.
+- PEP 3151 / issue #12555: reworking the OS and IO exception hierarchy.
+
+- Add internal API for static strings (_Py_identifier et al.).
+
- Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described
as "The pipe is being closed") is now mapped to POSIX errno EPIPE
(previously EINVAL).
@@ -61,6 +121,13 @@ Core and Builtins
- Issue #12911: Fix memory consumption when calculating the repr() of huge
tuples or lists.
+- PEP 393: flexible string representation. Thanks to Torsten Becker for the
+ initial implementation, and Victor Stinner for various bug fixes.
+
+- Issue #13012: The 'keepends' parameter to str.splitlines may now be passed
+ as a keyword argument: "my_string.splitlines(keepends=True)". The same
+ change also applies to bytes.splitlines and bytearray.splitlines.
+
- Issue #7732: Don't open a directory as a file anymore while importing a
module. Ignore the direcotry if its name matchs the module name (e.g.
"__init__.py") and raise a ImportError instead.
@@ -72,6 +139,9 @@ Core and Builtins
list_repeat (listobject.c) and islice_next (itertoolsmodule.c). These bugs
caused test failures with recent versions of Clang.
+- Issue #12904: os.utime, os.futimes, os.lutimes, and os.futimesat now write
+ atime and mtime with nanosecond precision on modern POSIX platforms.
+
- Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now
mapped to POSIX errno ENOTDIR (previously EINVAL).
@@ -81,9 +151,251 @@ Core and Builtins
- Issue #12791: Break reference cycles early when a generator exits with
an exception.
+- Issue #12773: Make __doc__ mutable on user-defined classes.
+
+- Issue #12766: Raise a ValueError when creating a class with a class variable
+ that conflicts with a name in __slots__.
+
- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase
titlecased and cased non-letter characters.
+- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
+ outside the BMP.
+
+- Issue #12575: Validate user-generated AST before it is compiled.
+
+- Make type(None), type(Ellipsis), and type(NotImplemented) callable. They
+ return the respective singleton instances.
+
+- Forbid summing bytes with sum().
+
+- Verify the types of AST strings and identifiers provided by the user before
+ compiling them.
+
+- Issue #12647: The None object now has a __bool__() method that returns False.
+ Formerly, bool(None) returned False only because of special case logic
+ in PyObject_IsTrue().
+
+- Issue #12579: str.format_map() now raises a ValueError if used on a
+ format string that contains positional fields. Initial patch by
+ Julian Berman.
+
+- Issue #10271: Allow warnings.showwarning() be any callable.
+
+- Issue #11627: Fix segfault when __new__ on a exception returns a
+ non-exception class.
+
+- Issue #12149: Update the method cache after a type's dictionary gets
+ cleared by the garbage collector. This fixes a segfault when an instance
+ and its type get caught in a reference cycle, and the instance's
+ deallocator calls one of the methods on the type (e.g. when subclassing
+ IOBase). Diagnosis and patch by Davide Rizzo.
+
+- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
+
+- Issue #9642: Uniformize the tests on the availability of the mbcs codec, add
+ a new HAVE_MBCS define.
+
+- Issue #9642: Fix filesystem encoding initialization: use the ANSI code page
+ on Windows if the mbcs codec is not available, and fail with a fatal error if
+ we cannot get the locale encoding (if nl_langinfo(CODESET) is not available)
+ instead of using UTF-8.
+
+- When a generator yields, do not retain the caller's exception state on the
+ generator.
+
+- Issue #12475: Prevent generators from leaking their exception state into the
+ caller's frame as they return for the last time.
+
+- Issue #12291: You can now load multiple marshalled objects from a stream,
+ with other data interleaved between marshalled objects.
+
+- Issue #12356: When required positional or keyword-only arguments are not
+ given, produce a informative error message which includes the name(s) of the
+ missing arguments.
+
+- Issue #12370: Fix super with no arguments when __class__ is overriden in the
+ class body.
+
+- Issue #12084: os.stat on Windows now works properly with relative symbolic
+ links when called from any directory.
+
+- Loosen type restrictions on the __dir__ method. __dir__ can now return any
+ sequence, which will be converted to a list and sorted by dir().
+
+- Issue #12265: Make error messages produced by passing an invalid set of
+ arguments to a function more informative.
+
+- Issue #12225: Still allow Python to build if Python is not in its hg repo or
+ mercurial is not installed.
+
+- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix
+ the following case: sys.stdin.read() stopped with CTRL+d (end of file),
+ raw_input() interrupted by CTRL+c.
+
+- Issue #12216: Allow unexpected EOF errors to happen on any line of the file.
+
+- Issue #12199: The TryExcept and TryFinally and AST nodes have been unified
+ into a Try node.
+
+- Issue #9670: Increase the default stack size for secondary threads on
+ Mac OS X and FreeBSD to reduce the chances of a crash instead of a
+ "maximum recursion depth" RuntimeError exception.
+ (patch by Ronald Oussoren)
+
+- Issue #12106: The use of the multiple-with shorthand syntax is now reflected
+ in the AST.
+
+- Issue #12190: Try to use the same filename object when compiling unmarshalling
+ a code objects in the same file.
+
+- Issue #12166: Move implementations of dir() specialized for various types into
+ the __dir__() methods of those types.
+
+- Issue #5715: In socketserver, close the server socket in the child process.
+
+- Correct lookup of __dir__ on objects. Among other things, this causes errors
+ besides AttributeError found on lookup to be propagated.
+
+- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
+ module. Patch written by Charles-François Natali.
+
+- Issue #1746656: Added the if_nameindex, if_indextoname, if_nametoindex
+ methods to the socket module.
+
+- Issue #12044: Fixed subprocess.Popen when used as a context manager to
+ wait for the process to end when exiting the context to avoid unintentionally
+ leaving zombie processes around.
+
+- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
+ clear the end-of-file indicator after CTRL+d.
+
+- Issue #1856: Avoid crashes and lockups when daemon threads run while the
+ interpreter is shutting down; instead, these threads are now killed when
+ they try to take the GIL.
+
+- Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
+ the check of the object type doesn't read the __class__ attribute anymore.
+ Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
+ str type). Patch written by Andreas Stührk.
+
+- Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_*
+ APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch
+ by Charles-François Natali.
+
+- Issue #10914: Initialize correctly the filesystem codec when creating a new
+ subinterpreter to fix a bootstrap issue with codecs implemented in Python, as
+ the ISO-8859-15 codec.
+
+- Issue #11918: OS/2 and VMS are no more supported because of the lack of
+ maintainer.
+
+- Issue #6780: fix starts/endswith error message to mention that tuples are
+ accepted too.
+
+- Issue #5057: fix a bug in the peepholer that led to non-portable pyc files
+ between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP
+ chars (e.g. "\U00012345"[0]).
+
+- Issue #11845: Fix typo in rangeobject.c that caused a crash in
+ compute_slice_indices. Patch by Daniel Urban.
+
+- Issue #5673: Added a `timeout` keyword argument to subprocess.Popen.wait,
+ subprocess.Popen.communicated, subprocess.call, subprocess.check_call, and
+ subprocess.check_output. If the blocking operation takes more than `timeout`
+ seconds, the `subprocess.TimeoutExpired` exception is raised.
+
+- Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
+ (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
+ written by Charles-Francois Natali.
+
+- Issue #9319: Include the filename in "Non-UTF8 code ..." syntax error.
+
+- Issue #10785: Store the filename as Unicode in the Python parser.
+
+- Issue #11619: _PyImport_LoadDynamicModule() doesn't encode the path to bytes
+ on Windows.
+
+- Issue #10998: Remove mentions of -Q, sys.flags.division_warning and
+ Py_DivisionWarningFlag left over from Python 2.
+
+- Issue #11244: Remove an unnecessary peepholer check that was preventing
+ negative zeros from being constant-folded properly.
+
+- Issue #11395: io.FileIO().write() clamps the data length to 32,767 bytes on
+ Windows if the file is a TTY to workaround a Windows bug. The Windows console
+ returns an error (12: not enough space error) on writing into stdout if
+ stdout mode is binary and the length is greater than 66,000 bytes (or less,
+ depending on heap usage).
+
+- Issue #11320: fix bogus memory management in Modules/getpath.c, leading to
+ a possible crash when calling Py_SetPath().
+
+- Issue #11432: A bug was introduced in subprocess.Popen on posix systems with
+ 3.2.0 where the stdout or stderr file descriptor being the same as the stdin
+ file descriptor would raise an exception. webbrowser.open would fail. fixed.
+
+- Issue #9856: Change object.__format__ with a non-empty format string
+ to be a DeprecationWarning. In 3.2 it was a PendingDeprecationWarning.
+ In 3.4 it will be a TypeError.
+
+- Issue #11244: The peephole optimizer is now able to constant-fold
+ arbitrarily complex expressions. This also fixes a 3.2 regression where
+ operations involving negative numbers were not constant-folded.
+
+- Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when
+ there are many tags (e.g. when using mq). Patch by Nadeem Vawda.
+
+- Issue #11335: Fixed a memory leak in list.sort when the key function
+ throws an exception.
+
+- Issue #8923: When a string is encoded to UTF-8 in strict mode, the result is
+ cached into the object. Examples: str.encode(), str.encode('utf-8'),
+ PyUnicode_AsUTF8String() and PyUnicode_AsEncodedString(unicode, "utf-8",
+ NULL).
+
+- Issue #10831: PyUnicode_FromFormat() supports %li, %lli and %zi formats.
+
+- Issue #10829: Refactor PyUnicode_FromFormat(), use the same function to parse
+ the format string in the 3 steps, fix crashs on invalid format strings.
+
+- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
+
+- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
+ UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
+ Patch written by Ray Allen.
+
+- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with
+ a buffer struct having a NULL data pointer.
+
+- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
+ sys.stdin uses universal newline (replace '\r\n' by '\n').
+
+- issue #11828: startswith and endswith don't accept None as slice index.
+ Patch by Torsten Becker.
+
+- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
+ narrow build.
+
+- Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx().
+ It encoded the Unicode filename to UTF-8, but the encoding fails on
+ undecodable filename (on surrogate characters) which raises an unexpected
+ UnicodeEncodeError on recursion limit.
+
+- Issue #11187: Remove bootstrap code (use ASCII) of
+ PyUnicode_AsEncodedString(), it was replaced by a better fallback (use the
+ locale encoding) in PyUnicode_EncodeFSDefault().
+
+- Check for NULL result in PyType_FromSpec.
+
+- Issue #10516: New copy() and clear() methods for lists and bytearrays.
+
+- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
+ empty, instead of OverflowError.
+
+- Issue #12380: The rjust, ljust and center methods of bytes and bytearray
+ now accept a bytearray argument.
+
Library
-------
@@ -93,15 +405,31 @@ Library
- Issue #13444: When stdout has been closed explicitly, we should not attempt
to flush it at shutdown and print an error.
+- Issue #12567: The curses module uses Unicode functions for Unicode arguments
+ when it is linked to the ncurses library. It encodes also Unicode strings to
+ the locale encoding instead of UTF-8.
+
- Issue #12856: Ensure child processes do not inherit the parent's random
seed for filename generation in the tempfile module. Patch by Brian
Harring.
+- Issue #9957: SpooledTemporaryFile.truncate() now accepts an optional size
+ parameter, as other file-like objects. Patch by Ryan Kelly.
+
- Issue #13458: Fix a memory leak in the ssl module when decoding a
certificate with a subjectAltName. Patch by Robert Xiao.
- Issue #13415: os.unsetenv() doesn't ignore errors anymore.
+- Issue #13245: sched.scheduler class constructor's timefunc and
+ delayfunct parameters are now optional.
+ scheduler.enter and scheduler.enterabs methods gained a new kwargs parameter.
+ Patch contributed by Chris Clark.
+
+- Issue #12328: Under Windows, refactor handling of Ctrl-C events and
+ make _multiprocessing.win32.WaitForMultipleObjects interruptible when
+ the wait_flag parameter is false. Patch by sbt.
+
- Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is
raised when the wrapped raw file is non-blocking and the write would block.
Previous code assumed that the raw write() would raise BlockingIOError, but
@@ -114,14 +442,26 @@ Library
node when it is the only child of an element. Initial patch by Dan
Kenigsberg.
+- Issue #13374: The Windows bytes API has been deprecated in the os module. Use
+ Unicode filenames instead of bytes filenames to not depend on the ANSI code
+ page anymore and to support any filename.
+
+- Issue #13297: Use bytes type to send and receive binary data through XMLRPC.
+
+- Issue #6397: Support "/dev/poll" polling objects in select module,
+ under Solaris & derivatives.
+
- Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly
handles non-valid attributes, including adjacent and unquoted attributes.
-- Issue #13193: Fix distutils.filelist.FileList under Windows. The
- "recursive-include" directive now recognizes both legal path separators.
+- Issue #13193: Fix distutils.filelist.FileList and
+ packaging.manifest.Manifest under Windows. The "recursive-include"
+ directive now recognizes both legal path separators.
- Issue #13384: Remove unnecessary __future__ import in Lib/random.py
+- Issue #13149: Speed up append-only StringIO objects.
+
- Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely
when called with a timeout. Patch by Arnaud Ysmal.
@@ -137,11 +477,20 @@ Library
- Issue #13339: Fix compile error in posixmodule.c due to missing semicolon.
Thanks to Robert Xiao.
+- Byte compilation in packaging is now isolated from the calling Python -B or
+ -O options, instead of being disallowed under -B or buggy under -O.
+
- Issue #10570: curses.putp() and curses.tparm() are now expecting a byte
string, instead of a Unicode string.
+- Issue #13295: http.server now produces valid HTML 4.01 strict.
+
- Issue #2892: preserve iterparse events in case of SyntaxError.
+- Issue #13287: urllib.request and urllib.error now contains an __all__
+ attribute to expose only relevant classes and functions. Patch by Florent
+ Xicluna.
+
- Issue #670664: Fix HTMLParser to correctly handle the content of
``<script>...</script>`` and ``<style>...</style>``.
@@ -151,6 +500,9 @@ Library
- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart.
(Patch by Roger Serwy)
+- Fix the xmlrpc.client user agent to return something similar to
+ urllib.request user agent: "Python-xmlrpc/3.3".
+
- Issue #13293: Better error message when trying to marshal bytes using
xmlrpc.client.
@@ -161,51 +513,81 @@ Library
- Issue #13273: fix a bug that prevented HTMLParser to properly detect some
tags when strict=False.
+- Issue #11183: Add finer-grained exceptions to the ssl module, so that
+ you don't have to inspect the exception's attributes in the common case.
+
+- Issue #13216: Add cp65001 codec, the Windows UTF-8 (CP_UTF8).
+
+- Issue #13226: Add RTLD_xxx constants to the os module. These constants can be
+ used with sys.setdlopenflags().
+
+- Issue #10278: Add clock_getres(), clock_gettime() and CLOCK_xxx constants to
+ the time module. time.clock_gettime(time.CLOCK_MONOTONIC) provides a
+ monotonic clock
+
- Issue #10332: multiprocessing: fix a race condition when a Pool is closed
before all tasks have completed.
- Issue #13255: wrong docstrings in array module.
+- Issue #8540: Remove deprecated Context._clamp attribute in Decimal module.
+
+- Issue #13235: Added PendingDeprecationWarning to warn() method and function.
+
- Issue #9168: now smtpd is able to bind privileged port.
- Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
semicolons together. Patch by Ben Darnell and Petri Lehtinen.
-- Issue #12448: smtplib now flushes stdout while running ``python -m smtplib``
- in order to display the prompt correctly.
+- Issue #13227: functools.lru_cache() now has a option to distinguish
+ calls with different argument types.
- Issue #6090: zipfile raises a ValueError when a document with a timestamp
earlier than 1980 is provided. Patch contributed by Petri Lehtinen.
+- Issue #13150: sysconfig no longer parses the Makefile and config.h files
+ when imported, instead doing it at build time. This makes importing
+ sysconfig faster and reduces Python startup time by 20%.
+
+- Issue #12448: smtplib now flushes stdout while running ``python -m smtplib``
+ in order to display the prompt correctly.
+
+- Issue #12454: The mailbox module is now using ASCII, instead of the locale
+ encoding, to read and write MH mailboxes (.mh_sequences files).
+
- Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are
now available on Windows.
+- issue #1673007: urllib2 to support HEAD request via new method argument.
+ Patch contributions by David Stanek, Patrick Westerhoff and Ezio Melotti.
+
+- Issue #12386: packaging does not fail anymore when writing the RESOURCES
+ file.
+
- Issue #13158: Fix decoding and encoding of GNU tar specific base-256 number
fields in tarfile.
-- Issue #13177: Functools lru_cache() no longer calls the original function
- inside an exception handler. This makes tracebacks easier to read because
- chained exceptions are avoided.
-
- Issue #13025: mimetypes is now reading MIME types using the UTF-8 encoding,
instead of the locale encoding.
- Issue #10653: On Windows, use strftime() instead of wcsftime() because
wcsftime() doesn't format time zone correctly.
+- Issue #13150: The tokenize module doesn't compile large regular expressions
+ at startup anymore.
+
- Issue #11171: Fix distutils.sysconfig.get_makefile_filename when Python was
configured with different prefix and exec-prefix.
-- Issue #11254: Teach distutils to compile .pyc and .pyo files in
+- Issue #11254: Teach distutils and packaging to compile .pyc and .pyo files in
PEP 3147-compliant __pycache__ directories.
-- Issue #11250: Back port fix from 3.3 branch, so that 2to3 can handle files
- with line feeds. This was ported from the sandbox to the 3.3 branch, but
- didn't make it into 3.2.
-
- Issue #7367: Fix pkgutil.walk_paths to skip directories whose
contents cannot be read.
+- Issue #3163: The struct module gets new format characters 'n' and 'N'
+ supporting C integer types ``ssize_t`` and ``size_t``, respectively.
+
- Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale.
Reported and diagnosed by Thomas Kluyver.
@@ -226,13 +608,29 @@ Library
with invalid hex escape sequences, like b'\x0'.
(Original patch by Claudiu Popa.)
-- Issue #8933: distutils' PKG-INFO files will now correctly report
- Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is
- present.
+- Issue #12306: Expose the runtime version of the zlib C library as a constant,
+ ZLIB_RUNTIME_VERSION, in the zlib module. Patch by Torsten Landschoff.
+
+- Issue #12959: Add collections.ChainMap to collections.__all__.
-- Issue #9561: distutils now reads and writes egg-info files using UTF-8,
+- Issue #8933: distutils' PKG-INFO files and packaging's METADATA files will
+ now correctly report Metadata-Version: 1.1 instead of 1.0 if a Classifier or
+ Download-URL field is present.
+
+- Issue #12567: Add curses.unget_wch() function. Push a character so the next
+ get_wch() will return it.
+
+- Issue #9561: distutils and packaging now writes egg-info files using UTF-8,
instead of the locale encoding.
+- Issue #8286: The distutils command sdist will print a warning message instead
+ of crashing when an invalid path is given in the manifest template.
+
+- Issue #12841: tarfile unnecessarily checked the existence of numerical user
+ and group ids on extraction. If one of them did not exist the respective id
+ of the current user (i.e. root) was used for the file and ownership
+ information was lost.
+
- Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape
more than 128 entities. Patch by Peter Otten.
@@ -240,6 +638,16 @@ Library
- Issue #12636: IDLE reads the coding cookie when executing a Python script.
+- Issue #12494: On error, call(), check_call(), check_output() and
+ getstatusoutput() functions of the subprocess module now kill the process,
+ read its status (to avoid zombis) and close pipes.
+
+- Issue #12720: Expose low-level Linux extended file attribute functions in os.
+
+- Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi
+ now respect a --skip-build option given to bdist. The packaging commands
+ were fixed too.
+
- Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in
the C pickle implementation.
@@ -249,154 +657,47 @@ Library
- Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
greater than FD_SETSIZE.
-- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
- Pipe.
-
-- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers.
-
-- Issue #12213: Fix a buffering bug with interleaved reads and writes that
- could appear on BufferedRandom streams.
-
-- Issue #12650: Fix a race condition where a subprocess.Popen could leak
- resources (FD/zombie) when killed at the wrong time.
-
-- Issue #10860: http.client now correctly handles an empty port after port
- delimiter in URLs.
-
-Build
------
-
-- Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
-
-Tests
------
-
-- Issue #13304: Skip test case if user site-packages disabled (-s or
- PYTHONNOUSERSITE). (Patch by Carl Meyer)
-
-- Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
-
-- Issue #12821: Fix test_fcntl failures on OpenBSD 5.
-
-- Re-enable lib2to3's test_parser.py tests, though with an expected failure
- (see issue 13125).
-
-Extension Modules
------------------
-
-- Issue #13159: FileIO and BZ2File now use a linear-time buffer growth
- strategy instead of a quadratic-time one.
-
-- Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
- would be finalized after the reference to its underlying BufferedRWPair's
- writer got cleared by the GC.
-
-- Issue #12881: ctypes: Fix segfault with large structure field names.
-
-- Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
- Thomas Jarosch.
-
-- Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
- Thanks to Suman Saha for finding the bug and providing a patch.
-
-- Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that
- file descriptor was actually received.
-
-- Issue #12483: ctypes: Fix a crash when the destruction of a callback
- object triggers the garbage collector.
-
-- Issue #12950: Fix passing file descriptors in multiprocessing, under
- OpenIndiana/Illumos.
-
-Documentation
--------------
-
-- Issue #13237: Reorganise subprocess documentation to emphasise convenience
- functions and the most commonly needed arguments to Popen.
-
-- Issue #13141: Demonstrate recommended style for socketserver examples.
-
-
-What's New in Python 3.2.2?
-===========================
-
-*Release date: 03-Sep-2011*
-
-Core and Builtins
------------------
-
-- Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python
- is compiled on Linux 3.
-
-- Accept bytes for the AST string type. This is temporary until a proper fix in
- 3.3.
-
-Library
--------
-
-- Issue #8286: The distutils command sdist will print a warning message instead
- of crashing when an invalid path is given in the manifest template.
-
-- Issue #12841: tarfile unnecessarily checked the existence of numerical user
- and group ids on extraction. If one of them did not exist the respective id
- of the current user (i.e. root) was used for the file and ownership
- information was lost.
-
-- Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi
- now respect a --skip-build option given to bdist.
-
- Issue #12839: Fix crash in zlib module due to version mismatch.
Fix by Richard M. Tew.
-Extension Modules
------------------
-
-- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
- some functions like file.write().
-
-
-
-What's New in Python 3.2.2 release candidate 1?
-===============================================
+- Issue #9923: The mailcap module now correctly uses the platform path
+ separator for the MAILCAP environment variable on non-POSIX platforms.
-*Release date: 14-Aug-2011*
+- Issue #12835: Follow up to #6560 that unconditionally prevents use of the
+ unencrypted sendmsg/recvmsg APIs on SSL wrapped sockets. Patch by David
+ Watson.
-Core and Builtins
------------------
+- Issue #12803: SSLContext.load_cert_chain() now accepts a password argument
+ to be used if the private key is encrypted. Patch by Adam Simpkins.
-- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall
- outside the BMP.
-
-- Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by
- Andreas Stührk.
+- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing
+ Pipe.
-- Issue #11321: Fix a crash with multiple imports of the _pickle module when
- embedding Python. Patch by Andreas Stührk.
+- Issue #12811: tabnanny.check() now promptly closes checked files. Patch by
+ Anthony Briggs.
-- Verify the types of AST strings and identifiers provided by the user before
- compiling them.
+- Issue #6560: The sendmsg/recvmsg API is now exposed by the socket module
+ when provided by the underlying platform, supporting processing of
+ ancillary data in pure Python code. Patch by David Watson and Heiko Wundram.
-- Issue #12579: str.format_map() now raises a ValueError if used on a
- format string that contains positional fields. Initial patch by
- Julian Berman.
+- Issue #12326: On Linux, sys.platform doesn't contain the major version
+ anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending
+ on the Linux version used to build Python.
-- Issue #11627: Fix segfault when __new__ on a exception returns a
- non-exception class.
+- Issue #12213: Fix a buffering bug with interleaved reads and writes that
+ could appear on BufferedRandom streams.
-- Issue #12149: Update the method cache after a type's dictionary gets
- cleared by the garbage collector. This fixes a segfault when an instance
- and its type get caught in a reference cycle, and the instance's
- deallocator calls one of the methods on the type (e.g. when subclassing
- IOBase). Diagnosis and patch by Davide Rizzo.
+- Issue #12778: Reduce memory consumption when JSON-encoding a large
+ container of many small objects.
-- When a generator yields, do not retain the caller's exception state on the
- generator.
+- Issue #12650: Fix a race condition where a subprocess.Popen could leak
+ resources (FD/zombie) when killed at the wrong time.
-- Issue #12475: Prevent generators from leaking their exception state into the
- caller's frame as they return for the last time.
+- Issue #12744: Fix inefficient representation of integers between 2**31 and
+ 2**63 on systems with a 64-bit C "long".
-Library
--------
+- Issue #12646: Add an 'eof' attribute to zlib.Decompress, to make it easier to
+ detect truncated input streams.
- Issue #11513: Fix exception handling ``tarfile.TarFile.gzopen()`` when
the file cannot be opened.
@@ -409,18 +710,42 @@ Library
- Issue #12540: Prevent zombie IDLE processes on Windows due to changes
in os.kill().
+- Add support for unary plus and unary minus to collections.Counter().
+ Issue #13121: Also add support for inplace math operators.
+
- Issue #12683: urlparse updated to include svn as schemes that uses relative
paths. (svn from 1.5 onwards support relative path).
+- Issue #12655: Expose functions from sched.h in the os module: sched_yield(),
+ sched_setscheduler(), sched_getscheduler(), sched_setparam(),
+ sched_get_min_priority(), sched_get_max_priority(), sched_rr_get_interval(),
+ sched_getaffinity(), sched_setaffinity().
+
+- Add ThreadError to threading.__all__.
+
- Issues #11104, #8688: Fix the behavior of distutils' sdist command with
manually-maintained MANIFEST files.
+- Issue #11281: smtplib.STMP gets source_address parameter, which adds the
+ ability to bind to specific source address on a machine with multiple
+ interfaces. Patch by Paulo Scardine.
+
- Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow
symlinks: fix it. Patch by Petri Lehtinen.
- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod')
in Python code) now finds the doc of the method.
+- Issue #10968: Remove indirection in threading. The public names (Thread,
+ Condition, etc.) used to be factory functions returning instances of hidden
+ classes (_Thread, _Condition, etc.), because (if Guido recalls correctly) this
+ code pre-dates the ability to subclass extension types. It is now possible to
+ inherit from Thread and other classes, without having to import the private
+ underscored names like multiprocessing did.
+
+- Issue #9723: Add shlex.quote functions, to escape filenames and command
+ lines.
+
- Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime.
- Issue #12514: Use try/finally to assure the timeit module restores garbage
@@ -435,201 +760,127 @@ Library
- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
Connection:close header.
+- Issue #12102: Document that buffered files must be flushed before being used
+ with mmap. Patch by Steffen Daode Nurpmeso.
+
+- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
+
- Issue #1813: Fix codec lookup under Turkish locales.
- Issue #12591: Improve support of "universal newlines" in the subprocess
module: the piped streams can now be properly read from or written to.
- Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without
- a read1() method), and add an undocumented *write_through* parameter to
- mandate unbuffered writes.
-
-- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows.
+ a read1() method), and add a *write_through* parameter to mandate
+ unbuffered writes.
- Issue #10883: Fix socket leaks in urllib.request when using FTP.
-- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
- directory, so that "import DLFCN" and other similar imports work on
- Linux 3.0.
-
-- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN
- commands; they aren't required and in fact postfix doesn't support that form.
-
-- Close the call queue in concurrent.futures.ProcessPoolExecutor when
- shutdown() is called, without waiting for the garbage collector to kick in.
-
-- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
-
-- Issue #4376: ctypes now supports nested structures with an endianness
- different than that of the parent structure. Patch by Vlad Riscutia.
-
-- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
- TextIOWrapper to a huge value, not TypeError.
-
-- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
- if the process has only one pipe.
-
-- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
- Python modules using a encoding different than UTF-8 (reading the coding
- cookie of the module).
-
-- Issue #12451: pydoc: importfile() now opens the Python module in binary mode,
- instead of text mode using the locale encoding, to avoid encoding issues.
-
-- Issue #12451: runpy: run_path() now opens the Python module in binary mode,
- instead of text mode using the locale encoding, to support other encodings
- than UTF-8 (modules using the coding cookie).
-
-- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
- of the text mode (using the locale encoding) to avoid encoding issues.
-
-Extension Modules
------------------
-
-- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
- a string.
-
-- Issue #11241: subclasses of ctypes.Array can now be subclassed.
-
-- Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
- signature. Without this, architectures where sizeof void* != sizeof int are
- broken. Patch given by Hallvard B Furuseth.
-
-C-API
------
-
-Build
------
-
-- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
-
- Issue #12592: Make Python build on OpenBSD 5 (and future major releases).
- Issue #12372: POSIX semaphores are broken on AIX: don't use them.
-Tools/Demos
------------
+- Issue #12551: Provide a get_channel_binding() method on SSL sockets so as
+ to get channel binding data for the current SSL session (only the
+ "tls-unique" channel binding is implemented). This allows the implementation
+ of certain authentication mechanisms such as SCRAM-SHA-1-PLUS. Patch by
+ Jacek Konieczny.
-- Issue #10639: reindent.py no longer converts newlines and will raise
- an error if attempting to convert a file with mixed newlines.
+- Issue #665194: email.utils now has format_datetime and parsedate_to_datetime
+ functions, allowing for round tripping of RFC2822 format dates.
-Tests
------
+- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2
+ directory, so that "import DLFCN" and other similar imports work on
+ Linux 3.0.
-- Issue #12331: The test suite for lib2to3 can now run from an installed
- Python.
+- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN
+ commands; they aren't required and in fact postfix doesn't support that form.
-- Issue #12626: In regrtest, allow to filter tests using a glob filter
- with the ``-m`` (or ``--match``) option. This works with all test cases
- using the unittest module. This is useful with long test suites
- such as test_io or test_subprocess.
+- Issue #12273: Remove ast.__version__. AST changes can be accounted for by
+ checking sys.version_info or sys._mercurial.
-- Issue #12624: It is now possible to fail after the first failure when
- running in verbose mode (``-v`` or ``-W``), by using the ``--failfast``
- (or ``-G``) option to regrtest. This is useful with long test suites
- such as test_io or test_subprocess.
+- Silence spurious "broken pipe" tracebacks when shutting down a
+ ProcessPoolExecutor.
-- Issue #12587: Correct faulty test file and reference in test_tokenize.
- (Patch by Robert Xiao)
+- Fix potential resource leaks in concurrent.futures.ProcessPoolExecutor
+ by joining all queues and processes when shutdown() is called.
-- Try harder to reap dangling threads in test.support.reap_threads().
+- Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by
+ Andreas Stührk.
-- Issue #12573: Add resource checks for dangling Thread and Process objects.
+- Issue #11321: Fix a crash with multiple imports of the _pickle module when
+ embedding Python. Patch by Andreas Stührk.
-- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
- as the processor type on some Mac systems.
+- Issue #6755: Add get_wch() method to curses.window class. Patch by Iñigo
+ Serna.
-- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
- an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
- Web site.
+- Add cgi.closelog() function to close the log file.
-- Issue #12440: When testing whether some bits in SSLContext.options can be
- reset, check the version of the OpenSSL headers Python was compiled against,
- rather than the runtime version of the OpenSSL library.
+- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets.
-- Issue #12497: Install test/data to prevent failures of the various codecmaps
- tests.
+- Issue #4376: ctypes now supports nested structures in a endian different than
+ the parent structure. Patch by Vlad Riscutia.
-- Issue #12496: Install test/capath directory to prevent test_connect_capath
- testcase failure in test_ssl.
+- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a
+ TextIOWrapper to a huge value, not TypeError.
-- Issue #12469: Run "wakeup" signal tests in subprocess to run the test in a
- fresh process with only one thread and to not change signal handling of the
- parent process.
+- Issue #12504: Close file handles in a timely manner in packaging.database.
+ This fixes a bug with the remove (uninstall) feature on Windows.
-- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
- test_tk or test_ttk_guionly under a username that is not currently logged
- in to the console windowserver (as may be the case under buildbot or ssh).
+- Issues #12169 and #10510: Factor out code used by various packaging commands
+ to make HTTP POST requests, and make sure it uses CRLF.
+- Issue #12016: Multibyte CJK decoders now resynchronize faster. They only
+ ignore the first byte of an invalid byte sequence. For example,
+ b'\xff\n'.decode('gb2312', 'replace') gives '\ufffd\n' instead of '\ufffd'.
-What's New in Python 3.2.1?
-===========================
+- Issue #12459: time.sleep() now raises a ValueError if the sleep length is
+ negative, instead of an infinite sleep on Windows or raising an IOError on
+ Linux for example, to have the same behaviour on all platforms.
-*Release date: 10-Jul-2011*
+- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support
+ Python scripts using a encoding different than UTF-8 (read the coding cookie
+ of the script).
-Library
--------
+- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors
+ if the process has only one pipe.
- Issue #12467: warnings: fix a race condition if a warning is emitted at
shutdown, if globals()['__file__'] is None.
-Tests
------
-
-- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
- failure in name resolution.
-
-- Issue #11812: Solve transient socket failure to connect to 'localhost'
- in test_telnetlib.py.
-
-- Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
-
-- Avoid failing in test_urllibnet.test_bad_address when some overzealous
- DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test
- is now skipped instead.
-
-
-What's New in Python 3.2.1 release candidate 2?
-===============================================
-
-*Release date: 03-Jul-2011*
-
-Core and Builtins
------------------
-
-- Issue #12291: You can now load multiple marshalled objects from a stream, with
- other data interleaved between marshalled objects.
-
-- Issue #12084: os.stat on Windows now works properly with relative symbolic
- links when called from any directory.
-
-- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix
- the following case: sys.stdin.read() stopped with CTRL+d (end of file),
- raw_input() interrupted by CTRL+c.
+- Issue #12451: pydoc: importfile() now opens the Python script in binary mode,
+ instead of text mode using the locale encoding, to avoid encoding issues.
-- Issue #9670: Increase the default stack size for secondary threads on Mac OS X
- and FreeBSD to reduce the chances of a crash instead of a "maximum recursion
- depth" RuntimeError exception (patch by Ronald Oussoren).
+- Issue #12451: runpy: run_path() now opens the Python script in binary mode,
+ instead of text mode using the locale encoding, to support other encodings
+ than UTF-8 (scripts using the coding cookie).
-Library
--------
+- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead
+ of the text mode (using the locale encoding) to avoid encoding issues.
- Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better
- conformance to the RFCs: correctly handle Sender and Resent headers.
+ conformance to the RFCs: correctly handle Sender and Resent- headers.
- Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by
the garbage collector while the Heap lock is held.
+- Issue #12462: time.sleep() now calls immediatly the (Python) signal handler
+ if it is interrupted by a signal, instead of having to wait until the next
+ instruction.
+
+- Issue #12442: new shutil.disk_usage function, providing total, used and free
+ disk space statistics.
+
- Issue #12451: The XInclude default loader of xml.etree now decodes files from
UTF-8 instead of the locale encoding if the encoding is not specified. It now
- also opens XML files for the parser in binary mode instead of the text mode to
- avoid encoding issues.
-
-- Issue #12451: doctest.debug_script() doesn't create a temporary file anymore
+ also opens XML files for the parser in binary mode instead of the text mode
to avoid encoding issues.
-- Issue #12451: pydoc.synopsis() now reads the encoding cookie if available, to
- read the Python module from the right encoding.
+- Issue #12451: doctest.debug_script() doesn't create a temporary file
+ anymore to avoid encoding issues.
+
+- Issue #12451: pydoc.synopsis() now reads the encoding cookie if available,
+ to read the Python script from the right encoding.
- Issue #12451: distutils now opens the setup script in binary mode to read the
encoding cookie, instead of opening it in UTF-8.
@@ -643,14 +894,32 @@ Library
still possible to globally override the default by setting
MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be
greater or equal to the default value, the value with which the interpreter
- was built.
+ was built. Also, implement the same handling in packaging.
+
+- Issue #12422: In the copy module, don't store objects that are their own copy
+ in the memo dict.
+
+- Issue #12303: Add sigwaitinfo() and sigtimedwait() to the signal module.
+
+- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
+ Kitada.
+
+- Issue #1874: email now detects and reports as a defect the presence of
+ any CTE other than 7bit, 8bit, or binary on a multipart.
- Issue #12383: Fix subprocess module with env={}: don't copy the environment
variables, start with an empty environment.
-- Issue #11584: email.header.decode_header no longer fails if the header passed
- to it is a Header object, and Header/make_header no longer fail if given
- binary unknown-8bit input.
+- Issue #11637: Fix support for importing packaging setup hooks from the
+ project directory.
+
+- Issue #6771: Moved the curses.wrapper function from the single-function
+ wrapper module into __init__, eliminating the module. Since __init__ was
+ already importing the function to curses.wrapper, there is no API change.
+
+- Issue #11584: email.header.decode_header no longer fails if the header
+ passed to it is a Header object, and Header/make_header no longer fail
+ if given binary unknown-8bit input.
- Issue #11700: mailbox proxy object close methods can now be called multiple
times without error.
@@ -661,117 +930,136 @@ Library
connection if its getresponse() method fails with a socket error. Patch
written by Ezio Melotti.
+- Issue #12240: Allow multiple setup hooks in packaging's setup.cfg files.
+ Original patch by Erik Bray.
+
- Issue #9284: Allow inspect.findsource() to find the source of doctest
functions.
+- Issue #11595: Fix assorted bugs in packaging.util.cfg_to_args, a
+ compatibility helper for the distutils-packaging transition. Original patch
+ by Erik Bray.
+
+- Issue #12287: In ossaudiodev, check that the device isn't closed in several
+ methods.
+
- Issue #12009: Fixed regression in netrc file comment handling.
+- Issue #12246: Warn and fail when trying to install a third-party project from
+ an uninstalled Python (built in a source checkout). Original patch by
+ Tshepang Lekhonkhobe.
+
- Issue #10694: zipfile now ignores garbage at the end of a zipfile.
- Issue #12283: Fixed regression in smtplib quoting of leading dots in DATA.
+- Issue #10424: Argparse now includes the names of the missing required
+ arguments in the missing arguments error message.
+
- Issue #12168: SysLogHandler now allows NUL termination to be controlled using
a new 'append_nul' attribute on the handler.
- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
instead of os.stat.
-- Named tuples now work correctly with vars().
-
-- Issue #12085: Fix an attribute error in subprocess.Popen destructor if the
- constructor has failed, e.g. because of an undeclared keyword argument. Patch
- written by Oleg Oshmyan.
+- Issue #12021: Make mmap's read() method argument optional. Patch by Petri
+ Lehtinen.
-- Issue #985064: Make plistlib more resilient to faulty input plists. Patch by
- Mher Movsisyan.
+- Issue #9205: concurrent.futures.ProcessPoolExecutor now detects killed
+ children and raises BrokenProcessPool in such a situation. Previously it
+ would reliably freeze/deadlock.
-- Issue #12175: RawIOBase.readall() now returns None if read() returns None.
+- Issue #12040: Expose a new attribute ``sentinel`` on instances of
+ :class:`multiprocessing.Process`. Also, fix Process.join() to not use
+ polling anymore, when given a timeout.
-- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
- if the file is closed.
+- Issue #11893: Remove obsolete internal wrapper class ``SSLFakeFile`` in the
+ smtplib module. Patch by Catalin Iacob.
-- Issue #12070: Fix the Makefile parser of the sysconfig module to handle
- correctly references to "bogus variable" (e.g. "prefix=$/opt/python").
+- Issue #12080: Fix a Decimal.power() case that took an unreasonably long time
+ to compute.
-- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
- their encode() method anymore, but continue to call the reset() method if the
- final argument is True.
+- Issue #12221: Remove __version__ attributes from pyexpat, pickle, tarfile,
+ pydoc, tkinter, and xml.parsers.expat. This were useless version constants
+ left over from the Mercurial transition
-- Issue #5715: In socketserver, close the server socket in the child process.
+- Named tuples now work correctly with vars().
-- Correct lookup of __dir__ on objects. Among other things, this causes errors
- besides AttributeError found on lookup to be propagated.
+- Issue #12085: Fix an attribute error in subprocess.Popen destructor if the
+ constructor has failed, e.g. because of an undeclared keyword argument. Patch
+ written by Oleg Oshmyan.
-- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
- to be able to unload the module.
+- Issue #12028: Make threading._get_ident() public, rename it to
+ threading.get_ident() and document it. This function was already used using
+ _thread.get_ident().
-- Issue #12065: connect_ex() on an SSL socket now returns the original errno
- when the socket's timeout expires (it used to return None).
+- Issue #12171: IncrementalEncoder.reset() of CJK codecs (multibytecodec) calls
+ encreset() instead of decreset().
-Extension Modules
------------------
+- Issue #12218: Removed wsgiref.egg-info.
-- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira
- Kitada.
+- Issue #12196: Add pipe2() to the os module.
-- Issue #12221: Replace pyexpat.__version__ with the Python version.
+- Issue #985064: Make plistlib more resilient to faulty input plists.
+ Patch by Mher Movsisyan.
-Build
------
+- Issue #1625: BZ2File and bz2.decompress() now support multi-stream files.
+ Initial patch by Nir Aides.
-- Issue #8746: Correct faulty configure checks so that os.chflags() and
- os.lchflags() are once again built on systems that support these functions
- (*BSD and OS X). Also add new stat file flags for OS X (UF_HIDDEN and
- UF_COMPRESSED).
+- Issue #12175: BufferedReader.read(-1) now calls raw.readall() if available.
-- Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds, ensure
- "make install" creates symlinks in --prefix bin for the "-32" files in the
- framework bin directory like the installer does.
+- Issue #12175: FileIO.readall() now only reads the file position and size
+ once.
+- Issue #12175: RawIOBase.readall() now returns None if read() returns None.
-Tests
------
+- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
+ if the file is closed.
-- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
+- Issue #11109: New service_action method for BaseServer, used by ForkingMixin
+ class for cleanup. Initial Patch by Justin Wark.
-- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
- the output and displays it on failure instead. regrtest -v doesn't print the
- error twice anymore if there is only one error.
+- Issue #12045: Avoid duplicate execution of command in
+ ctypes.util._get_soname(). Patch by Sijin Joseph.
-- Issue #12141: Install a copy of template C module file so that test_build_ext
- of test_distutils is no longer silently skipped when run outside of a build
- directory.
+- Issue #10818: Remove the Tk GUI and the serve() function of the pydoc module,
+ pydoc -g has been deprecated in Python 3.2 and it has a new enhanced web
+ server.
-- Issue #8746: Add additional tests for os.chflags() and os.lchflags(). Patch
- by Garrett Cooper.
+- Issue #1441530: In imaplib, read the data in one chunk to speed up large
+ reads and simplify code.
-- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9 on Mac
- OS X. (Patch by Ronald Oussoren)
+- Issue #12070: Fix the Makefile parser of the sysconfig module to handle
+ correctly references to "bogus variable" (e.g. "prefix=$/opt/python").
-- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2,
- iso2022_kr).
+- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
+ their encode() method anymore, but continue to call the reset() method if the
+ final argument is True.
+- Issue #12049: Add RAND_bytes() and RAND_pseudo_bytes() functions to the ssl
+ module.
-What's New in Python 3.2.1 release candidate 1?
-===============================================
+- Issue #6501: os.device_encoding() returns None on Windows if the application
+ has no console.
-*Release date: 15-May-2011*
+- Issue #12105: Add O_CLOEXEC to the os module.
-Core and Builtins
------------------
+- Issue #12079: Decimal('Infinity').fma(Decimal('0'), (3.91224318126786e+19+0j))
+ now raises TypeError (reflecting the invalid type of the 3rd argument) rather
+ than Decimal.InvalidOperation.
-- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal
- module. Patch written by Charles-François Natali.
+- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore
+ to be able to unload the module.
-- Issue #12044: Fixed subprocess.Popen when used as a context manager to
- wait for the process to end when exiting the context to avoid unintentionally
- leaving zombie processes around.
+- Add the packaging module, an improved fork of distutils (also known as
+ distutils2).
-- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c,
- clear the end-of-file indicator after CTRL+d.
+- Issue #12065: connect_ex() on an SSL socket now returns the original errno
+ when the socket's timeout expires (it used to return None).
-Library
--------
+- Issue #8809: The SMTP_SSL constructor and SMTP.starttls() now support
+ passing a ``context`` argument pointing to an ssl.SSLContext instance.
+ Patch by Kasun Herath.
- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX
with Tk 8.5.
@@ -779,8 +1067,6 @@ Library
- Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET
is set in shell.
-- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
-
- Issue #8650: Make zlib module 64-bit clean. compress(), decompress() and
their incremental counterparts now raise OverflowError if given an input
larger than 4GB, instead of silently truncating the input and returning
@@ -794,12 +1080,16 @@ Library
writing, then seeking before the previous write but still within buffered
data, and writing again).
+- Issue #9971: Write an optimized implementation of BufferedReader.readinto().
+ Patch by John O'Connor.
+
- Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError.
With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused
IDLE to exit. Converted to valid Unicode null in PythonCmd().
-- Issue #11169: compileall module uses repr() to format filenames and paths to
- escape surrogate characters and show spaces.
+- Issue #11799: urllib.request Authentication Handlers will raise a ValueError
+ when presented with an unsupported Authentication Scheme. Patch contributed
+ by Yuval Greenfield.
- Issue #10419, #6011: build_scripts command of distutils handles correctly
non-ASCII path (path to the Python executable). Open and write the script in
@@ -809,133 +1099,68 @@ Library
- Issue #8498: In socket.accept(), allow to specify 0 as a backlog value in
order to accept exactly one connection. Patch by Daniel Evers.
-- Issue #11164: Stop trying to use _xmlplus in the xml module.
-
-Build
------
-
-- Issue #11347: Use --no-as-needed when linking libpython3.so.
-
-Tools/Demos
------------
-
-- Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and
- add a smarter "py-bt" command printing a classic Python traceback.
-
-Tests
------
-
-- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch
- written by Charles-François Natali.
-
-- Issue #11614: import __hello__ prints "Hello World!". Patch written by
- Andreas Stührk.
-
-- Issue #5723: Improve json tests to be executed with and without accelerations.
-
-- Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing.
-
-
-What's New in Python 3.2.1 beta 1?
-==================================
-
-*Release date: 08-May-2011*
-
-Core and Builtins
------------------
-
-- Issue #1856: Avoid crashes and lockups when daemon threads run while the
- interpreter is shutting down; instead, these threads are now killed when they
- try to take the GIL.
-
-- Issue #9756: When calling a method descriptor or a slot wrapper descriptor,
- the check of the object type doesn't read the __class__ attribute anymore.
- Fix a crash if a class override its __class__ attribute (e.g. a proxy of the
- str type). Patch written by Andreas Stührk.
-
-- Issue #10914: Initialize correctly the filesystem codec when creating a new
- subinterpreter to fix a bootstrap issue with codecs implemented in Python, as
- the ISO-8859-15 codec.
-
-- Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_*
- APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch by
- Charles-François Natali.
-
-- Issue #6780: fix starts/endswith error message to mention that tuples are
- accepted too.
-
-- Issue #5057: fix a bug in the peepholer that led to non-portable pyc files
- between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP chars
- (e.g. "\U00012345"[0]).
-
-- Issue #11845: Fix typo in rangeobject.c that caused a crash in
- compute_slice_indices. Patch by Daniel Urban.
-
-- Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted
- (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch
- written by Charles-Francois Natali.
-
-- Issue #11395: io.FileIO().write() clamps the data length to 32,767 bytes on
- Windows if the file is a TTY to workaround a Windows bug. The Windows console
- returns an error (12: not enough space error) on writing into stdout if stdout
- mode is binary and the length is greater than 66,000 bytes (or less, depending
- on heap usage).
-
-- Issue #11320: fix bogus memory management in Modules/getpath.c, leading to a
- possible crash when calling Py_SetPath().
-
-- Issue #11510: Fixed optimizer bug which turned "a,b={1,1}" into "a,b=(1,1)".
-
-- Issue #11432: A bug was introduced in subprocess.Popen on posix systems with
- 3.2.0 where the stdout or stderr file descriptor being the same as the stdin
- file descriptor would raise an exception. webbrowser.open would fail. fixed.
-
-- Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when there
- are many tags (e.g. when using mq). Patch by Nadeem Vawda.
-
-- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from
- UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode).
- Patch written by Ray Allen.
+- Issue #12011: signal.signal() and signal.siginterrupt() raise an OSError,
+ instead of a RuntimeError: OSError has an errno attribute.
-- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with a
- buffer struct having a NULL data pointer.
+- Issue #3709: a flush_headers method to BaseHTTPRequestHandler which manages
+ the sending of headers to output stream and flushing the internal headers
+ buffer. Patch contribution by Andrew Schaaf
-- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
- sys.stdin uses universal newline (replace '\r\n' by '\n').
+- Issue #11743: Rewrite multiprocessing connection classes in pure Python.
-- issue #11828: startswith and endswith don't accept None as slice index. Patch
- by Torsten Becker.
+- Issue #11164: Stop trying to use _xmlplus in the xml module.
-- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
- narrow build.
+- Issue #11888: Add log2 function to math module. Patch written by Mark
+ Dickinson.
-- Check for NULL result in PyType_FromSpec.
+- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional.
-- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is
- empty, instead of OverflowError.
+- Issue #8407: The signal handler writes the signal number as a single byte
+ instead of a nul byte into the wakeup file descriptor. So it is possible to
+ wait more than one signal and know which signals were raised.
-Library
--------
+- Issue #8407: Add pthread_kill(), sigpending() and sigwait() functions to the
+ signal module.
-- Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch by
- Kasun Herath.
+- Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch
+ by Kasun Herath.
- Issue #12002: ftplib's abort() method raises TypeError.
+- Issue #11916: Add a number of MacOSX specific definitions to the errno module.
+ Patch by Pierre Carrier.
+
- Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to
detect mtime changes by comparing to the system clock instead of to the
previous value of the mtime.
+- Issue #11072: added MLSD command (RFC-3659) support to ftplib.
+
+- Issue #8808: The IMAP4_SSL constructor now allows passing an SSLContext
+ parameter to control parameters of the secure channel. Patch by Sijin
+ Joseph.
+
- ntpath.samefile failed to notice that "a.txt" and "A.TXT" refer to the same
file on Windows XP. As noticed in issue #10684.
-- Issue #12000: When a SSL certificate has a subjectAltName without any dNSName
- entry, ssl.match_hostname() should use the subject's commonName. Patch by
- Nicolas Bareil.
+- Issue #12000: When a SSL certificate has a subjectAltName without any
+ dNSName entry, ssl.match_hostname() should use the subject's commonName.
+ Patch by Nicolas Bareil.
+
+- Issue #10775: assertRaises, assertRaisesRegex, assertWarns, and
+ assertWarnsRegex now accept a keyword argument 'msg' when used as context
+ managers. Initial patch by Winston Ewert.
+
+- Issue #10684: shutil.move used to delete a folder on case insensitive
+ filesystems when the source and destination name where the same except
+ for the case.
+
+- Issue #11647: objects created using contextlib.contextmanager now support
+ more than one call to the function when used as a decorator. Initial patch
+ by Ysj Ray.
-- Issue #11647: objects created using contextlib.contextmanager now support more
- than one call to the function when used as a decorator. Initial patch by Ysj
- Ray.
+- Issue #11930: Removed deprecated time.accept2dyear variable.
+ Removed year >= 1000 restriction from datetime.strftime.
- logging: don't define QueueListener if Python has no thread support.
@@ -944,16 +1169,39 @@ Library
- Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get
around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso.
+- Issue #8407: Add signal.pthread_sigmask() function to fetch and/or change the
+ signal mask of the calling thread.
+
- Issue #11858: configparser.ExtendedInterpolation expected lower-case section
names.
- Issue #11324: ConfigParser(interpolation=None) now works correctly.
+- Issue #11811: ssl.get_server_certificate() is now IPv6-compatible. Patch
+ by Charles-François Natali.
+
- Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the
strings are too long.
- Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal.
+- Issue #11856: Speed up parsing of JSON numbers.
+
+- Issue #11005: threading.RLock()._release_save() raises a RuntimeError if the
+ lock was not acquired.
+
+- Issue #11258: Speed up ctypes.util.find_library() under Linux by a factor
+ of 5 to 10. Initial patch by Jonas H.
+
+- Issue #11382: Trivial system calls, such as dup() or pipe(), needn't
+ release the GIL. Patch by Charles-François Natali.
+
+- Issue #11223: Add threading._info() function providing informations about
+ the thread implementation.
+
+- Issue #11731: simplify/enhance email parser/generator API by introducing
+ policy objects.
+
- Issue #11768: The signal handler of the signal module only calls
Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or
parallel calls. PyErr_SetInterrupt() writes also into the wake up file.
@@ -973,6 +1221,10 @@ Library
- Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows.
Patch by Santoso Wijaya.
+- Issue #11684: complete email.parser bytes API by adding BytesHeaderParser.
+
+- The bz2 module now handles 4GiB+ input buffers correctly.
+
- Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when
_json is not available.
@@ -984,17 +1236,33 @@ Library
- Issue #10019: Fixed regression in json module where an indent of 0 stopped
adding newlines and acted instead like 'None'.
+- Issue #11186: pydoc ignores a module if its name contains a surrogate
+ character in the index of modules.
+
+- Issue #11815: Use a light-weight SimpleQueue for the result queue in
+ concurrent.futures.ProcessPoolExecutor.
+
- Issue #5162: Treat services like frozen executables to allow child spawning
from multiprocessing.forking on Windows.
+- logging.basicConfig now supports an optional 'handlers' argument taking an
+ iterable of handlers to be added to the root logger. Additional parameter
+ checks were also added to basicConfig.
+
- Issue #11814: Fix likely typo in multiprocessing.Pool._terminate().
- Issue #11747: Fix range formatting in difflib.context_diff() and
difflib.unified_diff().
- Issue #8428: Fix a race condition in multiprocessing.Pool when terminating
- worker processes: new processes would be spawned while the pool is being shut
- down. Patch by Charles-François Natali.
+ worker processes: new processes would be spawned while the pool is being
+ shut down. Patch by Charles-François Natali.
+
+- Issue #2650: re.escape() no longer escapes the '_'.
+
+- Issue #11757: select.select() now raises ValueError when a negative timeout
+ is passed (previously, a select.error with EINVAL would be raised). Patch
+ by Charles-François Natali.
- Issue #7311: fix html.parser to accept non-ASCII attribute values.
@@ -1002,21 +1270,50 @@ Library
multipart subparts with an 8-bit CTE into unicode instead of preserving the
bytes.
+- Issue #1690608: email.util.formataddr is now RFC 2047 aware: it now has a
+ charset parameter that defaults to utf-8 and is used as the charset for RFC
+ 2047 encoding when the realname contains non-ASCII characters.
+
- Issue #10963: Ensure that subprocess.communicate() never raises EPIPE.
+- Issue #10791: Implement missing method GzipFile.read1(), allowing GzipFile
+ to be wrapped in a TextIOWrapper. Patch by Nadeem Vawda.
+
+- Issue #11707: Added a fast C version of functools.cmp_to_key().
+ Patch by Filip Gruszczyński.
+
+- Issue #11688: Add sqlite3.Connection.set_trace_callback(). Patch by
+ Torsten Landschoff.
+
- Issue #11746: Fix SSLContext.load_cert_chain() to accept elliptic curve
private keys.
+- Issue #5863: Rewrite BZ2File in pure Python, and allow it to accept
+ file-like objects using a new ``fileobj`` constructor argument. Patch by
+ Nadeem Vawda.
+
+- unittest.TestCase.assertSameElements has been removed.
+
- sys.getfilesystemencoding() raises a RuntimeError if initfsencoding() was not
called yet: detect bootstrap (startup) issues earlier.
+- Issue #11393: Add the new faulthandler module.
+
- Issue #11618: Fix the timeout logic in threading.Lock.acquire() under Windows.
+- Removed the 'strict' argument to email.parser.Parser, which has been
+ deprecated since Python 2.4.
+
- Issue #11256: Fix inspect.getcallargs on functions that take only keyword
arguments.
- Issue #11696: Fix ID generation in msilib.
+- itertools.accumulate now supports an optional *func* argument for
+ a user-supplied binary function.
+
+- Issue #11692: Remove unnecessary demo functions in subprocess module.
+
- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when
trying to pack a negative (in-range) integer.
@@ -1032,7 +1329,26 @@ Library
- Issue #11635: Don't use polling in worker threads and processes launched by
concurrent.futures.
-- Issue #11628: cmp_to_key generated class should use __slots__
+- Issue #6811: Allow importlib to change a code object's co_filename attribute
+ to match the path to where the source code currently is, not where the code
+ object originally came from.
+
+- Issue #8754: Have importlib use the repr of a module name in error messages.
+
+- Issue #11591: Prevent "import site" from modifying sys.path when python
+ was started with -S.
+
+- collections.namedtuple() now adds a _source attribute to the generated
+ class. This make the source more accessible than the outdated
+ "verbose" option which prints to stdout but doesn't make the source
+ string available.
+
+- Issue #11371: Mark getopt error messages as localizable. Patch by Filip
+ Gruszczyński.
+
+- Issue #11333: Add __slots__ to collections ABCs.
+
+- Issue #11628: cmp_to_key generated class should use __slots__.
- Issue #11666: let help() display named tuple attributes and methods
that start with a leading underscore.
@@ -1043,6 +1359,10 @@ Library
- Issue #5537: Fix time2isoz() and time2netscape() functions of
httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
+- Issue #4391: Use proper gettext plural forms in optparse.
+
+- Issue #11127: Raise a TypeError when trying to pickle a socket object.
+
- Issue #11563: Connection:close header is sent by requests using URLOpener
class which helps in closing of sockets after connection is over. Patch
contributions by Jeff McNeil and Nadeem Vawda.
@@ -1053,6 +1373,8 @@ Library
- Issue #5421: Fix misleading error message when one of socket.sendto()'s
arguments has the wrong type. Patch by Nikita Vetoshkin.
+- Issue #10812: Add some extra posix functions to the os module.
+
- Issue #10979: unittest stdout buffering now works with class and module
setup and teardown.
@@ -1065,75 +1387,154 @@ Library
relative to Python2 and the result is now the same as it was in Python2.
- Issue #9298: base64 bodies weren't being folded to line lengths less than 78,
- which was a regression relative to Python2. Unlike Python2, the last line of
- the folded body now ends with a carriage return.
+ which was a regression relative to Python2. Unlike Python2, the last line
+ of the folded body now ends with a carriage return.
- Issue #11560: shutil.unpack_archive now correctly handles the format
parameter. Patch by Evan Dandrea.
+- Issue #5870: Add `subprocess.DEVNULL` constant.
+
- Issue #11133: fix two cases where inspect.getattr_static can trigger code
execution. Patch by Andreas Stührk.
- Issue #11569: use absolute path to the sysctl command in multiprocessing to
- ensure that it will be found regardless of the shell PATH. This ensures that
- multiprocessing.cpu_count works on default installs of MacOSX.
+ ensure that it will be found regardless of the shell PATH. This ensures
+ that multiprocessing.cpu_count works on default installs of MacOSX.
- Issue #11501: disutils.archive_utils.make_zipfile no longer fails if zlib is
not installed. Instead, the zipfile.ZIP_STORED compression is used to create
the ZipFile. Patch by Natalia B. Bidart.
+- Issue #11289: `smtp.SMTP` class becomes a context manager so it can be used
+ in a `with` statement. Contributed by Giampaolo Rodola.
+
- Issue #11554: Fixed support for Japanese codecs; previously the body output
encoding was not done if euc-jp or shift-jis was specified as the charset.
-- Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified IP
- addresses in the proxy exception list.
+- Issue #11509: Significantly increase test coverage of fileinput.
+ Patch by Denver Coneybeare at PyCon 2011 Sprints.
+
+- Issue #11407: `TestCase.run` returns the result object used or created.
+ Contributed by Janathan Hartley.
+
+- Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified
+ IP addresses in the proxy exception list.
+
+- Issue #11491: dbm.error is no longer raised when dbm.open is called with
+ the "n" as the flag argument and the file exists. The behavior matches
+ the documentation and general logic.
-- Issue #11491: dbm.error is no longer raised when dbm.open is called with the
- "n" as the flag argument and the file exists. The behavior matches the
- documentation and general logic.
+- Issue #1162477: Postel Principle adjustment to email date parsing: handle the
+ fact that some non-compliant MUAs use '.' instead of ':' in time specs.
-- Issue #11131: Fix sign of zero in decimal.Decimal plus and minus operations
- when the rounding mode is ROUND_FLOOR.
+- Issue #11131: Fix sign of zero in decimal.Decimal plus and minus
+ operations when the rounding mode is ROUND_FLOOR.
+
+- Issue #9935: Speed up pickling of instances of user-defined classes.
- Issue #5622: Fix curses.wrapper to raise correct exception if curses
initialization fails.
+- Issue #11408: In threading.Lock.acquire(), only call gettimeofday() when
+ really necessary. Patch by Charles-François Natali.
+
- Issue #11391: Writing to a mmap object created with
``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a
TypeError. Patch by Charles-François Natali.
-- Issue #11306: mailbox in certain cases adapts to an inability to open certain
- files in read-write mode. Previously it detected this by checking for EACCES,
- now it also checks for EROFS.
+- Issue #9795: add context manager protocol support for nntplib.NNTP class.
+
+- Issue #11306: mailbox in certain cases adapts to an inability to open
+ certain files in read-write mode. Previously it detected this by
+ checking for EACCES, now it also checks for EROFS.
-- Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on
- accept(), send() and recv().
+- Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors
+ on accept(), send() and recv().
+
+- Issue #11377: Deprecate platform.popen() and reimplement it with os.popen().
+
+- Issue #8513: On UNIX, subprocess supports bytes command string.
+
+- Issue #10866: Add socket.sethostname(). Initial patch by Ross Lagerwall.
+
+- Issue #11140: Lock.release() now raises a RuntimeError when attempting
+ to release an unacquired lock, as claimed in the threading documentation.
+ The _thread.error exception is now an alias of RuntimeError. Patch by
+ Filip Gruszczyński. Patch for _dummy_thread by Aymeric Augustin.
+
+- Issue #8594: ftplib now provides a source_address parameter to specify which
+ (address, port) to bind to before connecting.
- Issue #11326: Add the missing connect_ex() implementation for SSL sockets,
and make it work for non-blocking connects.
+- Issue #11297: Add collections.ChainMap().
+
+- Issue #10755: Add the posix.fdlistdir() function. Patch by Ross Lagerwall.
+
+- Issue #4761: Add the *at() family of functions (openat(), etc.) to the posix
+ module. Patch by Ross Lagerwall.
+
- Issue #7322: Trying to read from a socket's file-like object after a timeout
occurred now raises an error instead of silently losing data.
+- Issue #11291: poplib.POP no longer suppresses errors on quit().
+
+- Issue #11177: asyncore's create_socket() arguments can now be omitted.
+
+- Issue #6064: Add a ``daemon`` keyword argument to the threading.Thread
+ and multiprocessing.Process constructors in order to override the
+ default behaviour of inheriting the daemonic property from the current
+ thread/process.
+
- Issue #10956: Buffered I/O classes retry reading or writing after a signal
has arrived and the handler returned successfully.
+- Issue #10784: New os.getpriority() and os.setpriority() functions.
+
+- Issue #11114: Fix catastrophic performance of tell() on text files (up
+ to 1000x faster in some cases). It is still one to two order of magnitudes
+ slower than binary tell().
+
+- Issue #10882: Add os.sendfile function.
+
+- Issue #10868: Allow usage of the register method of an ABC as a class
+ decorator.
+
- Issue #11224: Fixed a regression in tarfile that affected the file-like
objects returned by TarFile.extractfile() regarding performance, memory
consumption and failures with the stream interface.
+- Issue #10924: Adding salt and Modular Crypt Format to crypt library.
+ Moved old C wrapper to _crypt, and added a Python wrapper with
+ enhanced salt generation and simpler API for password generation.
+
- Issue #11074: Make 'tokenize' so it can be reloaded.
+- Issue #11085: Moved collections abstract base classes into a separate
+ module called collections.abc, following the pattern used by importlib.abc.
+ For backwards compatibility, the names are imported into the collections
+ module.
+
- Issue #4681: Allow mmap() to work on file sizes and offsets larger than
4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for
32-bit Windows.
+- Issue #11169: compileall module uses repr() to format filenames and paths to
+ escape surrogate characters and show spaces.
+
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
with large config files.
- Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers
larger than 4GB. Patch by Nadeem Vawda.
+- Issue #11388: Added a clear() method to MutableSequence
+
+- Issue #11174: Add argparse.MetavarTypeHelpFormatter, which uses type names
+ for the names of optional and positional arguments in help messages.
+
- Issue #9348: Raise an early error if argparse nargs and metavar don't match.
- Issue #8982: Improve the documentation for the argparse Namespace object.
@@ -1145,28 +1546,113 @@ Library
- Issue #9347: Fix formatting for tuples in argparse type= error messages.
+- Issue #12191: Added shutil.chown() to change user and/or group owner of a
+ given path also specifying their names.
+
Build
-----
+- Issue #13326: Clean __pycache__ directories correctly on OpenBSD.
+
+- PEP 393: the configure option --with-wide-unicode is removed.
+
+- Issue #12852: Set _XOPEN_SOURCE to 700, instead of 600, to get POSIX 2008
+ functions on OpenBSD (e.g. fdopendir).
+
+- Issue #11863: Remove support for legacy systems deprecated in Python 3.2
+ (following PEP 11). These systems are systems using Mach C Threads,
+ SunOS lightweight processes, GNU pth threads and IRIX threads.
+
+- Issue #8746: Correct faulty configure checks so that os.chflags() and
+ os.lchflags() are once again built on systems that support these
+ functions (*BSD and OS X). Also add new stat file flags for OS X
+ (UF_HIDDEN and UF_COMPRESSED).
+
+- Issue #10645: Installing Python does no longer create a
+ Python-X.Y.Z-pyX.Y.egg-info file in the lib-dynload directory.
+
+- Do not accidentally include the directory containing sqlite.h twice when
+ building sqlite3.
+
+- Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds,
+ ensure "make install" creates symlinks in --prefix bin for the "-32"
+ files in the framework bin directory like the installer does.
+
+- Issue #11347: Use --no-as-needed when linking libpython3.so.
+
- Issue #11411: Fix 'make DESTDIR=' with a relative destination.
-- Issue #11268: Prevent Mac OS X Installer failure if Documentation package had
- previously been installed.
+- Issue #11268: Prevent Mac OS X Installer failure if Documentation
+ package had previously been installed.
+
+- Issue #11495: OSF support is eliminated. It was deprecated in Python 3.2.
+
IDLE
----
-- Issue #11718: IDLE's open module dialog couldn't find the __init__.py file in
- a package.
+- Issue #11718: IDLE's open module dialog couldn't find the __init__.py
+ file in a package.
Tools/Demos
-----------
+- Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and
+ add a smarter "py-bt" command printing a classic Python traceback.
+
- Issue #11179: Make ccbench work under Python 3.1 and 2.7 again.
+- Issue #10639: reindent.py no longer converts newlines and will raise
+ an error if attempting to convert a file with mixed newlines.
+ "--newline" option added to specify new line character.
+
Extension Modules
-----------------
+- Issue #7777: socket: Add Reliable Datagram Sockets (PF_RDS) support.
+
+- Issue #13159: FileIO and BZ2Compressor/BZ2Decompressor now use a linear-time
+ buffer growth strategy instead of a quadratic-time one.
+
+- Issue #10141: socket: Add SocketCAN (PF_CAN) support. Initial patch by
+ Matthias Fuchs, updated by Tiago Gonçalves.
+
+- Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle
+ would be finalized after the reference to its underlying BufferedRWPair's
+ writer got cleared by the GC.
+
+- Issue #12881: ctypes: Fix segfault with large structure field names.
+
+- Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by
+ Thomas Jarosch.
+
+- Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype.
+ Thanks to Suman Saha for finding the bug and providing a patch.
+
+- Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that
+ file descriptor was actually received.
+
+- Issue #1172711: Add 'long long' support to the array module.
+ Initial patch by Oren Tirosh and Hirokazu Yamamoto.
+
+- Issue #12483: ctypes: Fix a crash when the destruction of a callback
+ object triggers the garbage collector.
+
+- Issue #12950: Fix passing file descriptors in multiprocessing, under
+ OpenIndiana/Illumos.
+
+- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not
+ a string.
+
+- Issue #11241: subclasses of ctypes.Array can now be subclassed.
+
+- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to
+ some functions like file.write().
+
+- Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper
+ signature. Without this, architectures where sizeof void* != sizeof int are
+ broken. Patch given by Hallvard B Furuseth.
+
- Issue #12051: Fix segfault in json.dumps() while encoding highly-nested
objects using the C accelerations.
@@ -1179,35 +1665,177 @@ Extension Modules
Tests
-----
+- Issue #13304: Skip test case if user site-packages disabled (-s or
+ PYTHONNOUSERSITE). (Patch by Carl Meyer)
+
+- Issue #5661: Add a test for ECONNRESET/EPIPE handling to test_asyncore. Patch
+ by Xavier de Gaye.
+
+- Issue #13218: Fix test_ssl failures on Debian/Ubuntu.
+
+- Re-enable lib2to3's test_parser.py tests, though with an expected failure
+ (see issue 13125).
+
+- Issue #12656: Add tests for IPv6 and Unix sockets to test_asyncore.
+
+- Issue #6484: Add unit tests for mailcap module (patch by Gregory Nofi)
+
+- Issue #11651: Improve the Makefile test targets to run more of the test suite
+ more quickly. The --multiprocess option is now enabled by default, reducing
+ the amount of time needed to run the tests. "make test" and "make quicktest"
+ now include some resource-intensive tests, but no longer run the test suite
+ twice to check for bugs in .pyc generation. Tools/scripts/run_test.py provides
+ an easy platform-independent way to run test suite with sensible defaults.
+
+- Issue #12331: The test suite for the packaging module can now run from an
+ installed Python.
+
+- Issue #12331: The test suite for lib2to3 can now run from an installed
+ Python.
+
+- Issue #12626: In regrtest, allow to filter tests using a glob filter
+ with the ``-m`` (or ``--match``) option. This works with all test cases
+ using the unittest module. This is useful with long test suites
+ such as test_io or test_subprocess.
+
+- Issue #12624: It is now possible to fail after the first failure when
+ running in verbose mode (``-v`` or ``-W``), by using the ``--failfast``
+ (or ``-G``) option to regrtest. This is useful with long test suites
+ such as test_io or test_subprocess.
+
+- Issue #12587: Correct faulty test file and reference in test_tokenize.
+ (Patch by Robert Xiao)
+
+- Issue #12573: Add resource checks for dangling Thread and Process objects.
+
+- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64'
+ as the processor type on some Mac systems.
+
+- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary
+ failure in name resolution.
+
+- Issue #11812: Solve transient socket failure to connect to 'localhost'
+ in test_telnetlib.py.
+
+- Solved a potential deadlock in test_telnetlib.py. Related to issue #11812.
+
+- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
+ an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
+ Web site.
+
+- Avoid failing in test_urllibnet.test_bad_address when some overzealous
+ DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test
+ is now skipped instead.
+
+- Issue #12440: When testing whether some bits in SSLContext.options can be
+ reset, check the version of the OpenSSL headers Python was compiled against,
+ rather than the runtime version of the OpenSSL library.
+
+- Issue #11512: Add a test suite for the cgitb module. Patch by Robbie Clemons.
+
+- Issue #12497: Install test/data to prevent failures of the various codecmaps
+ tests.
+
+- Issue #12496: Install test/capath directory to prevent test_connect_capath
+ testcase failure in test_ssl.
+
+- Issue #12469: Run wakeup and pending signal tests in a subprocess to run the
+ test in a fresh process with only one thread and to not change signal
+ handling of the parent process.
+
+- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run
+ test_tk or test_ttk_guionly under a username that is not currently logged
+ in to the console windowserver (as may be the case under buildbot or ssh).
+
+- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows.
+
+- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures
+ the output and displays it on failure instead. regrtest -v doesn't print the
+ error twice anymore if there is only one error.
+
+- Issue #12141: Install copies of template C module file so that
+ test_build_ext of test_distutils and test_command_build_ext of
+ test_packaging are no longer silently skipped when
+ run outside of a build directory.
+
+- Issue #8746: Add additional tests for os.chflags() and os.lchflags().
+ Patch by Garrett Cooper.
+
+- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9
+ 2.8 + on Mac OS X. (Patch by Ronald Oussoren)
+
+- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2,
+ iso2022_kr).
+
+- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch
+ written by Charles-François Natali.
+
+- Issue #11614: import __hello__ prints "Hello World!". Patch written by
+ Andreas Stührk.
+
+- Issue #5723: Improve json tests to be executed with and without accelerations.
+
+- Issue #12041: Make test_wait3 more robust.
+
- Issue #11873: Change regex in test_compileall to fix occasional failures when
when the randomly generated temporary path happened to match the regex.
+- Issue #11958: Fix FTP tests for IPv6, bind to "::1" instead of "localhost".
+ Patch written by Charles-Francois Natali.
+
+- Issue #8407, #11859: Fix tests of test_io using threads and an alarm: use
+ pthread_sigmask() to ensure that the SIGALRM signal is received by the main
+ thread.
+
+- Issue #11811: Factor out detection of IPv6 support on the current host
+ and make it available as ``test.support.IPV6_ENABLED``. Patch by
+ Charles-François Natali.
+
- Issue #10914: Add a minimal embedding test to test_capi.
-- Issue #11790: Fix sporadic failures in
- test_multiprocessing.WithProcessesTestCondition.
+- Issue #11223: Skip test_lock_acquire_interruption() and
+ test_rlock_acquire_interruption() of test_threadsignals if a thread lock is
+ implemented using a POSIX mutex and a POSIX condition variable. A POSIX
+ condition variable cannot be interrupted by a signal (e.g. on Linux, the
+ futex system call is restarted).
+
+- Issue #11790: Fix sporadic failures in test_multiprocessing.WithProcessesTestCondition.
- Fix possible "file already exists" error when running the tests in parallel.
- Issue #11719: Fix message about unexpected test_msilib skip on non-Windows
platforms. Patch by Nadeem Vawda.
+- Issue #11727: Add a --timeout option to regrtest: if a test takes more than
+ TIMEOUT seconds, dumps the traceback of all threads and exits.
+
- Issue #11653: fix -W with -j in regrtest.
+- The email test suite now lives in the Lib/test/test_email package. The test
+ harness code has also been modernized to allow use of new unittest features.
+
+- regrtest now discovers test packages as well as test modules.
+
- Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov.
+- New test_crashers added to exercise the scripts in the Lib/test/crashers
+ directory and confirm they fail as expected
+
- Issue #11578: added test for the timeit module. Patch by Michael Henry.
- Issue #11503: improve test coverage of posixpath.py. Patch by Evan Dandrea.
-- Issue #11505: improves test coverage of string.py. Patch by Alicia
- Arlen.
+- Issue #11505: improves test coverage of string.py, increases granularity of
+ string.Formatter tests. Initial patch by Alicia Arlen.
- Issue #11548: Improve test coverage of the shutil module. Patch by
Evan Dandrea.
- Issue #11554: Reactivated test_email_codecs.
+- Issue #11505: improves test coverage of string.py. Patch by Alicia
+ Arlen
+
- Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a
false positive if the last directory in the path is inaccessible.
@@ -1220,12 +1848,40 @@ Tests
- Issue #9931: Fix hangs in GUI tests under Windows in certain conditions.
Patch by Hirokazu Yamamoto.
+- Issue #10512: Properly close sockets under test.test_cgi.
+
+- Issue #10992: Make tests pass under coverage.
+
- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
to open door files.
+- Issue #10990: Prevent tests from clobbering a set trace function.
+
+C-API
+-----
+
+- Issue #10542: Add 4 macros to work with surrogates: Py_UNICODE_IS_SURROGATE,
+ Py_UNICODE_IS_HIGH_SURROGATE, Py_UNICODE_IS_LOW_SURROGATE,
+ Py_UNICODE_JOIN_SURROGATES.
+
+- Issue #12724: Add Py_RETURN_NOTIMPLEMENTED macro for returning NotImplemented.
+
+- PY_PATCHLEVEL_REVISION has been removed, since it's meaningless with
+ Mercurial.
+
+- Issue #12173: The first argument of PyImport_ImportModuleLevel is now `const
+ char *` instead of `char *`.
+
+- Issue #12380: PyArg_ParseTuple now accepts a bytearray for the 'c' format.
+
Documentation
-------------
+- Issue #13237: Reorganise subprocess documentation to emphasise convenience
+ functions and the most commonly needed arguments to Popen.
+
+- Issue #13141: Demonstrate recommended style for socketserver examples.
+
- Issue #11818: Fix tempfile examples for Python 3.
@@ -1457,10 +2113,6 @@ Library
- Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead
of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD.
-- Issue #10684: shutil.move used to delete a folder on case insensitive
- filesystems when the source and destination name where the same except
- for the case.
-
- Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather
than the currently problematic Apple-supplied one, when running with the
64-/32-bit installer variant.
@@ -1668,6 +2320,8 @@ Tools/Demos
Tests
-----
+- Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing.
+
- Fix test_startfile to wait for child process to terminate before finishing.
- Issue #10822: Fix test_posix:test_getgroups failure under Solaris. Patch
@@ -2168,6 +2822,8 @@ Core and Builtins
Library
-------
+- Issue #12943: python -m tokenize support has been added to tokenize.
+
- Issue #10465: fix broken delegating of attributes by gzip._PaddedFile.
- Issue #10356: Decimal.__hash__(-1) should return -2.