summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS590
1 files changed, 486 insertions, 104 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 5ab616e..429df08 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,29 +2,42 @@
Python News
+++++++++++
-What's New in Python 3.3.2?
-===========================
-
-.. *Release date: XXXX-XX-XX*
+What's New in Python 3.4.0 Alpha 1?
+===================================
-*Not yet released, see sections below for changes released in 3.3.1*
+*Relase date: 2014-XX-XX*
Core and Builtins
-----------------
+- Issue #17722: When looking up __round__, resolve descriptors.
+
+- Issue #16061: Speed up str.replace() for replacing 1-character strings.
+
- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
method.
+- Issue #17643: Add __callback__ attribute to weakref.ref.
+
- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
class.
- Issue #17669: Fix crash involving finalization of generators using yield from.
+- Issue #14439: Python now prints the traceback on runpy failure at startup.
+
+- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
+ when running on valgrind.
+
- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
+- Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
+ the importlib transition.
+
- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
-- Issue #17357: Add missing verbosity output when using -v/-vv.
+- Issue #17323: The "[X refs, Y blocks]" printed by debug builds has been
+ disabled by default. It can be re-enabled with the `-X showrefcount` option.
Library
-------
@@ -39,61 +52,58 @@ Library
- Issue #16804: Fix a bug in the 'site' module that caused running
'python -S -m site' to incorrectly throw an exception.
+- Issue #15480: Remove the deprecated and unused TYPE_INT64 code from marshal.
+ Initial patch by Daniel Riti.
+
+- Issue #2118: SMTPException is now a subclass of IOError.
+
- Issue #17016: Get rid of possible pointer wraparounds and integer overflows
in the re module. Patch by Nickolai Zeldovich.
- Issue #16658: add missing return to HTTPConnection.send()
Patch by Jeff Knupp.
+- Issue #9556: Allowed specifying a time-of-day for a TimedRotatingFileHandler
+ to rotate.
+
- Issue #14971: unittest test discovery no longer gets confused when a function
has a different __name__ than its name in the TestCase class dictionary.
-- Issue #17678: Fix DeprecationWarning in the http/cookiejar.py by changing the
- usage of get_origin_req_host() to origin_req_host.
-
-- Issue #17666: Fix reading gzip files with an extra field.
-
-- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
- Patch by Michael Foord.
-
-- Issue #17572: Avoid chained exceptions while passing bad directives to
- time.strptime(). Initial patch by Claudiu Popa.
+- Issue #17487: The wave getparams method now returns a namedtuple rather than
+ a plain tuple.
-- Issue #17435: threading.Timer's __init__ method no longer uses mutable
- default values for the args and kwargs parameters.
+- Issue #17675: socket repr() provides local and remote addresses (if any).
+ Patch by Giampaolo Rodola'
-- Issue #17526: fix an IndexError raised while passing code without filename to
- inspect.findsource(). Initial patch by Tyler Doyle.
-
-- Issue #16550: Update the opcode descriptions of pickletools to use unsigned
- integers where appropriate. Initial patch by Serhiy Storchaka.
+- Issue #17093: Make the ABCs in importlib.abc provide default values or raise
+ reasonable exceptions for their methods to make them more amenable to super()
+ calls.
-IDLE
-----
+- Issue #17566: Make importlib.abc.Loader.module_repr() optional instead of an
+ abstractmethod and raising NotImplementedError so as to be ignored by default.
-- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
-
-- Issue #17657: Show full Tk version in IDLE's about dialog.
- Patch by Todd Rovito.
-
-- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
-
-- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+- Issue #17678: Remove the use of deprecated method in http/cookiejar.py.
+ Changing the usage of get_origin_req_host() to origin_req_host.
-- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
+- Issue #17666: Fix reading gzip files with an extra field.
-- Issue #17625: In IDLE, close the replace dialog after it is used.
+- Issue #16475: Support object instancing, recursion and interned strings
+ in marshal
-- Issue #14254: IDLE now handles readline correctly across shell restarts.
+- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
-- Issue #17614: IDLE no longer raises exception when quickly closing a file.
+- Issue #16795: On the ast.arguments object, unify vararg with varargannotation
+ and kwarg and kwargannotation. Change the column offset of ast.Attribute to be
+ at the attribute name.
-- Issue #6698: IDLE now opens just an editor window when configured to do so.
+- Issue #17434: Properly raise a SyntaxError when a string occurs between future
+ imports.
-- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
- raises an exception.
+- Issue #17117: Import and @importlib.util.set_loader now set __loader__ when
+ it has a value of None or the attribute doesn't exist.
-- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
+ error message has been removed. Patch by Ram Rachum.
Tests
-----
@@ -107,29 +117,15 @@ Tests
- Issue #17692: test_sqlite now works with unittest test discovery.
Patch by Zachary Ware.
-Documentation
--------------
-
-- Issue #15940: Specify effect of locale on time functions.
-
- Issue #6696: add documentation for the Profile objects, and improve
profile/cProfile docs. Patch by Tom Pinckney.
-
-What's New in Python 3.3.1?
-===========================
-
-*Release date: 07-Apr-2013*
-
-Build
+C-API
-----
-- Issue #17550: Fix the --enable-profiling configure switch.
+- Issue #17522: Add the PyGILState_Check() API.
-IDLE
--------
-
-- Issue #17625: In IDLE, close the replace dialog after it is used.
+- Issue #17327: Add PyDict_SetDefault.
What's New in Python 3.3.1 release candidate 1?
@@ -142,24 +138,23 @@ Core and Builtins
- Issue #17328: Fix possible refleak in dict.setdefault.
-- Issue #17223: Fix PyUnicode_FromUnicode() for string of 1 character outside
- the range U+0000-U+10ffff.
-
-- Issue #1692335: Move initial args assignment to
- BaseException.__new__ to help pickling of naive subclasses.
-
- Issue #17275: Corrected class name in init error messages of the C version of
BufferedWriter and BufferedRandom.
- Issue #7963: Fixed misleading error message that issued when object is
called without arguments.
+- Issue #8745: Small speed up zipimport on Windows. Patch by Catalin Iacob.
+
- Issue #5308: Raise ValueError when marshalling too large object (a sequence
with size >= 2**31), instead of producing illegal marshal data.
- Issue #12983: Bytes literals with invalid \x escape now raise a SyntaxError
and a full traceback including line number.
+- Issue #16967: In function definition, evaluate positional defaults before
+ keyword-only defaults.
+
- Issue #17173: Remove uses of locale-dependent C functions (isalpha() etc.)
in the interpreter.
@@ -174,6 +169,10 @@ Core and Builtins
- Issue #16979: Fix error handling bugs in the unicode-escape-decode decoder.
+- Issue #16772: The base argument to the int constructor no longer accepts
+ floats, or other non-integer objects with an __int__ method. Objects
+ with an __index__ method are now accepted.
+
- Issue #10156: In the interpreter's initialization phase, unicode globals
are now initialized dynamically as needed.
@@ -201,12 +200,6 @@ Core and Builtins
- Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB.
-- Issue #16455: On FreeBSD and Solaris, if the locale is C, the
- ASCII/surrogateescape codec is now used, instead of the locale encoding, to
- decode the command line arguments. This change fixes inconsistencies with
- os.fsencode() and os.fsdecode() because these operating systems announces an
- ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
-
- Issue #16761: Calling int() with base argument only now raises TypeError.
- Issue #16759: Support the full DWORD (unsigned long) range in Reg2Py
@@ -216,24 +209,51 @@ Core and Builtins
- Issue #14420: Support the full DWORD (unsigned long) range in Py2Reg
when passed a REG_DWORD value. Fixes OverflowError in winreg.SetValueEx.
+- Issue #11939: Set the st_dev attribute of stat_result to allow Windows to
+ take advantage of the os.path.samefile/sameopenfile/samestat implementations
+ used by other platforms.
+
+- Issue #16772: The int() constructor's second argument (base) no longer
+ accepts non integer values. Consistent with the behavior in Python 2.
+
+- Issue #14470: Remove w9xpopen support per PEP 11.
+
+- Issue #9856: Replace deprecation warning with raising TypeError
+ in object.__format__. Patch by Florent Xicluna.
+
- Issue #16597: In buffered and text IO, call close() on the underlying stream
if invoking flush() fails.
- Issue #16722: In the bytes() constructor, try to call __bytes__ on the
argument before __index__.
+- Issue #16421: loading multiple modules from one shared object is now
+ handled correctly (previously, the first module loaded from that file
+ was silently returned). Patch by Václav Šmilauer.
+
- Issue #16602: When a weakref's target was part of a long deallocation
chain, the object could remain reachable through its weakref even though
its refcount had dropped to zero.
-- Issue #16416: On Mac OS X, operating system data are now always
- encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
- (which may be ASCII if no locale environment variable is set), to avoid
- inconsistencies with os.fsencode() and os.fsdecode() functions which are
- already using UTF-8/surrogateescape.
+- Issue #16495: Remove extraneous NULL encoding check from bytes_decode().
+
+- Issue #16619: Create NameConstant AST class to represent None, True, and False
+ literals. As a result, these constants are never loaded at runtime from
+ builtins.
+
+- Issue #16455: On FreeBSD and Solaris, if the locale is C, the
+ ASCII/surrogateescape codec is now used, instead of the locale encoding, to
+ decode the command line arguments. This change fixes inconsistencies with
+ os.fsencode() and os.fsdecode() because these operating systems announces an
+ ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
+
+- Issue #16562: Optimize dict equality testing. Patch by Serhiy Storchaka.
- Issue #16588: Silence unused-but-set warnings in Python/thread_pthread
+- Issue #16592: stringlib_bytes_join doesn't raise MemoryError on allocation
+ failure.
+
- Issue #16546: Fix: ast.YieldFrom argument is now mandatory.
- Issue #16514: Fix regression causing a traceback when sys.path[0] is None
@@ -245,11 +265,23 @@ Core and Builtins
- Issue #16215: Fix potential double memory free in str.replace(). Patch
by Serhiy Storchaka.
+- Issue #16290: A float return value from the __complex__ special method is no
+ longer accepted in the complex() constructor.
+
+- Issue #16416: On Mac OS X, operating system data are now always
+ encoded/decoded to/from UTF-8/surrogateescape, instead of the locale encoding
+ (which may be ASCII if no locale environment variable is set), to avoid
+ inconsistencies with os.fsencode() and os.fsdecode() functions which are
+ already using UTF-8/surrogateescape.
+
- Issue #16453: Fix equality testing of dead weakref objects.
- Issue #9535: Fix pending signals that have been received but not yet
handled by Python to not persist after os.fork() in the child process.
+- Issue #14794: Fix slice.indices to return correct results for huge values,
+ rather than raising OverflowError.
+
- Issue #15001: fix segfault on "del sys.modules['__main__']". Patch by Victor
Stinner.
@@ -269,23 +301,43 @@ Core and Builtins
- Issue #8401: assigning an int to a bytearray slice (e.g. b[3:4] = 5) now
raises an error.
+- Issue #7317: Display full tracebacks when an error occurs asynchronously.
+ Patch by Alon Horev with update by Alexey Kachayev.
+
+- Issue #16309: Make PYTHONPATH="" behavior the same as if PYTHONPATH
+ not set at all.
+
+- Issue #10189: Improve the error reporting of SyntaxErrors related to global
+ and nonlocal statements.
+
- Fix segfaults on setting __qualname__ on builtin types and attempting to
delete it on any type.
+- Issue #14625: Rewrite the UTF-32 decoder. It is now 3x to 4x faster. Patch
+ written by Serhiy Storchaka.
+
- Issue #16345: Fix an infinite loop when ``fromkeys`` on a dict subclass
received a nonempty dict from the constructor.
- Issue #16271: Fix strange bugs that resulted from __qualname__ appearing in a
class's __dict__ and on type.
+- Issue #12805: Make bytes.join and bytearray.join faster when the separator
+ is empty. Patch by Serhiy Storchaka.
+
- Issue #6074: Ensure cached bytecode files can always be updated by the
user that created them, even when the source file is read-only.
+- Issue #15958: bytes.join and bytearray.join now accept arbitrary buffer
+ objects.
+
- Issue #14783: Improve int() docstring and switch docstrings for str(),
range(), and slice() to use multi-line signatures.
- Issue #16160: Subclass support now works for types.SimpleNamespace.
+- Upgrade Unicode data (UCD) to version 6.2.
+
- Issue #15379: Fix passing of non-BMP characters as integers for the charmap
decoder (already working as unicode strings). Patch by Serhiy Storchaka.
@@ -298,25 +350,50 @@ Core and Builtins
- Issue #15839: Convert SystemErrors in `super()` to RuntimeErrors.
+- Issue #15448: Buffered IO now frees the buffer when closed, instead
+ of when deallocating.
+
- Issue #15846: Fix SystemError which happened when using `ast.parse()` in an
exception handler on code with syntax errors.
+- Issue #15897: zipimport.c doesn't check return value of fseek().
+ Patch by Felipe Cruz.
+
- Issue #15801: Make sure mappings passed to '%' formatting are actually
subscriptable.
-- Issue #15111: __import__ should let ImportError propagate when a module that
- is imported as a side-effect of using fromlist tries to import a module
- that cannot be found.
+- Issue #15111: __import__ should propagate ImportError when raised as a
+ side-effect of a module triggered from using fromlist.
+- Issue #15022: Add pickle and comparison support to types.SimpleNamespace.
Library
-------
+- Issue #15596: Faster pickling of unicode strings.
+
+- Issue #17572: Avoid chained exceptions while passing bad directives to
+ time.strptime(). Initial patch by Claudiu Popa.
+
+- Issue #17435: threading.Timer's __init__ method no longer uses mutable
+ default values for the args and kwargs parameters.
+
+- Issue #17526: fix an IndexError raised while passing code without filename to
+ inspect.findsource(). Initial patch by Tyler Doyle.
+
- Issue #17540: Added style to formatter configuration by dict.
+- Issue #16692: The ssl module now supports TLS 1.1 and TLS 1.2. Initial
+ patch by Michele Orrù.
+
+- Issue #17025: multiprocessing: Reduce Queue and SimpleQueue contention.
+
- Issue #17536: Add to webbrowser's browser list: www-browser, x-www-browser,
iceweasel, iceape.
+- Issue #17150: pprint now uses line continuations to wrap long string
+ literals.
+
- Issue #17488: Change the subprocess.Popen bufsize parameter default value
from unbuffered (0) to buffering (-1) to match the behavior existing code
expects and match the behavior of the subprocess module in Python 2 to avoid
@@ -335,6 +412,18 @@ Library
sending mail by closing the socket and reporting the 421 error code via the
exception appropriate to the command that received the error response.
+- Issue #16997: unittest.TestCase now provides a subTest() context manager
+ to procedurally generate, in an easy way, small test instances.
+
+- Issue #17485: Also delete the Request Content-Length header if the data
+ attribute is deleted. (Follow on to issue 16464).
+
+- Issue #15927: CVS now correctly parses escaped newlines and carriage
+ when parsing with quoting turned off.
+
+- Issue #17467: add readline and readlines support to mock_open in
+ unittest.mock.
+
- Issue #17192: Update the ctypes module's libffi to v3.0.13. This
specifically addresses a stack misalignment issue on x86 and issues on
some more recent platforms.
@@ -348,20 +437,51 @@ Library
- Issue #17476: Fixed regression relative to Python2 in undocumented pydoc
'allmethods'; it was missing unbound methods on the class.
+- Issue #17474: Remove the deprecated methods of Request class.
+
+- Issue #16709: unittest discover order is no-longer filesystem specific. Patch
+ by Jeff Ramnani.
+
+- Use the HTTPS PyPI url for upload, overriding any plain HTTP URL in pypirc.
+
+- Issue #5024: sndhdr.whichhdr now returns the frame count for WAV files
+ rather than -1.
+
+- Issue #17460: Remove the strict argument of HTTPConnection and removing the
+ DeprecationWarning being issued from 3.2 onwards.
+
- Issue #16880: Do not assume _imp.load_dynamic() is defined in the imp module.
- Issue #16389: Fixed a performance regression relative to Python 3.1 in the
caching of compiled regular expressions.
+- Added missing FeedParser and BytesFeedParser to email.parser.__all__.
+
- Issue #17431: Fix missing import of BytesFeedParser in email.parser.
+- Issue #12921: http.server's send_error takes an explain argument to send more
+ information in response. Patch contributed by Karl.
+
+- Issue #17414: Add timeit, repeat, and default_timer to timeit.__all__.
+
- Issue #1285086: Get rid of the refcounting hack and speed up
urllib.parse.unquote() and urllib.parse.unquote_to_bytes().
+- Issue #17099: Have importlib.find_loader() raise ValueError when __loader__
+ is not set, harmonizing with what happens when the attribute is set to None.
+
+- Expose the O_PATH constant in the os module if it is available.
+
- Issue #17368: Fix an off-by-one error in the Python JSON decoder that caused
a failure while decoding empty object literals when object_pairs_hook was
specified.
+- Issue #17385: Fix quadratic behavior in threading.Condition. The FIFO
+ queue now uses a deque instead of a list.
+
+- Issue #15806: Add contextlib.ignored(). This creates a context manager
+ to ignore specified exceptions, replacing the "except Exc: pass" idiom.
+
- Issue #14645: The email generator classes now produce output using the
specified linesep throughout. Previously if the prolog, epilog, or
body were stored with a different linesep, that linesep was used. This
@@ -373,18 +493,30 @@ Library
- Issue #16962: Use getdents64 instead of the obsolete getdents syscall
in the subprocess module on Linux.
+- Issue #16935: unittest now counts the module as skipped if it raises SkipTest,
+ instead of counting it as an error. Patch by Zachary Ware.
+
- Issue #17018: Make Process.join() retry if os.waitpid() fails with EINTR.
- Issue #17223: array module: Fix a crasher when converting an array containing
invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
+- Issue #17197: profile/cProfile modules refactored so that code of run() and
+ runctx() utility functions is not duplicated in both modules.
+
- Issue #14720: sqlite3: Convert datetime microseconds correctly.
Patch by Lowe Thiderman.
+- Issue #15132: Allow a list for the defaultTest argument of
+ unittest.TestProgram. Patch by Jyrki Pulliainen.
+
- Issue #17225: JSON decoder now counts columns in the first line starting
with 1, as in other lines.
+- Issue #6623: Added explicit DeprecationWarning for ftplib.netrc, which has
+ been deprecated and undocumented for a long time.
+
- Issue #13700: Fix byte/string handling in imaplib authentication when an
authobject is specified.
@@ -401,11 +533,19 @@ Library
- Issue #17143: Fix a missing import in the trace module. Initial patch by
Berker Peksag.
+- Issue #15220: email.feedparser's line splitting algorithm is now simpler and
+ faster.
+
- Issue #16743: Fix mmap overflow check on 32 bit Windows.
+- Issue #16996: webbrowser module now uses shutil.which() to find a
+ web-browser on the executable search path.
+
- Issue #16800: tempfile.gettempdir() no longer left temporary files when
the disk is full. Original patch by Amir Szekely.
+- Issue #17192: Import libffi-3.0.12.
+
- Issue #16564: Fixed regression relative to Python2 in the operation of
email.encoders.encode_7or8bit when used with binary data.
@@ -423,6 +563,9 @@ Library
- Issue #6975: os.path.realpath() now correctly resolves multiple nested
symlinks on POSIX platforms.
+- Issue #13773: sqlite3.connect() gets a new `uri` parameter to pass the
+ filename as a URI, allowing to pass custom options.
+
- Issue #16564: Fixed regression relative to Python2 in the operation of
email.encoders.encode_noop when used with binary data.
@@ -441,6 +584,9 @@ Library
- Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
is automatically closed.
+- Issue #15359: Add CAN_BCM protocol support to the socket module. Patch by
+ Brian Thorne.
+
- Issue #16948: Fix quoted printable body encoding for non-latin1 character
sets in the email package.
@@ -465,6 +611,10 @@ Library
stream or a decoder produces data of an unexpected type (i.e. when
io.TextIOWrapper initialized with text stream or use bytes-to-bytes codec).
+- Issue #17015: When it has a spec, a Mock object now inspects its signature
+ when matching calls, so that arguments can be matched positionally or
+ by name.
+
- Issue #15633: httplib.HTTPResponse is now mark closed when the server
sends less than the advertised Content-Length.
@@ -484,6 +634,11 @@ Library
- Issue #12004: Fix an internal error in PyZipFile when writing an invalid
Python file. Patch by Ben Morgan.
+- Have py_compile use importlib as much as possible to avoid code duplication.
+
+- Issue #180022: Have site.addpackage() consider already known paths even when
+ none are explicitly passed in. Bug report and fix by Kirill.
+
- Issue #1602133: on Mac OS X a shared library build (``--enable-shared``)
now fills the ``os.environ`` variable correctly.
@@ -515,8 +670,6 @@ Library
- Issue #15861: tkinter now correctly works with lists and tuples containing
strings with whitespaces, backslashes or unbalanced braces.
-- Issue #10527: Use poll() instead of select() for multiprocessing pipes.
-
- Issue #9720: zipfile now writes correct local headers for files larger than
4 GiB.
@@ -525,6 +678,13 @@ Library
- SSLContext.load_dh_params() now properly closes the input file.
+- Issue #15031: Refactor some .pyc management code to cut down on code
+ duplication. Thanks to Ronan Lamy for the report and taking an initial stab
+ at the problem.
+
+- Issue #16398: Optimize deque.rotate() so that it only moves pointers
+ and doesn't touch the underlying data with increfs and decrefs.
+
- Issue #16900: Issue a ResourceWarning when an ssl socket is left unclosed.
- Issue #13899: \A, \Z, and \B now correctly match the A, Z, and B literals
@@ -534,12 +694,29 @@ Library
failing if the connection used a row factory (such as sqlite3.Row) that
produced unsortable objects. (Regression was introduced by fix for 9750).
+- fcntl: add F_DUPFD_CLOEXEC constant, available on Linux 2.6.24+.
+
- Issue #15972: Fix error messages when os functions expecting a file name or
file descriptor receive the incorrect type.
+- Issue #8109: The ssl module now has support for server-side SNI, thanks
+ to a :meth:`SSLContext.set_servername_callback` method. Patch by Daniel
+ Black.
+
+- Issue #16860: In tempfile, use O_CLOEXEC when available to set the
+ close-on-exec flag atomically.
+
+- Issue #16674: random.getrandbits() is now 20-40% faster for small integers.
+
+- Issue #16009: JSON error messages now provide more information.
+
- Issue #16828: Fix error incorrectly raised by bz2.compress(b'') and
bz2.BZ2Compressor.compress(b''). Initial patch by Martin Packman.
+- Issue #16833: In http.client.HTTPConnection, do not concatenate the request
+ headers and body when the payload exceeds 16 KB, since it can consume more
+ memory for no benefit. Patch by Benno Leslie.
+
- Issue #16541: tk_setPalette() now works with keyword arguments.
- Issue #16820: In configparser, `parser.popitem()` no longer raises ValueError.
@@ -555,14 +732,21 @@ Library
- Issue #9586: Redefine SEM_FAILED on MacOSX to keep compiler happy.
+- Issue #16787: Increase asyncore and asynchat default output buffers size, to
+ decrease CPU usage and increase throughput.
+
- Issue #10527: make multiprocessing use poll() instead of select() if available.
- Issue #16688: Now regexes contained backreferences correctly work with
non-ASCII strings. Patch by Matthew Barnett.
+- Issue #16486: Make aifc files act as context managers.
+
- Issue #16485: Now file descriptors are closed if file header patching failed
on closing an aifc file.
+- Issue #16640: Run less code under a lock in sched module.
+
- Issue #16165: sched.scheduler.run() no longer blocks a scheduler for other
threads.
@@ -572,6 +756,8 @@ Library
- Issue #16618: Make glob.glob match consistently across strings and bytes
regarding leading dots. Patch by Serhiy Storchaka.
+- Issue #16788: Add samestat to Lib/ntpath.py
+
- Issue #16713: Parsing of 'tel' urls using urlparse separates params from
path.
@@ -593,10 +779,25 @@ Library
supports all None default values present in decimal.py. These values were
largely undocumented.
+- Issue #11175: argparse.FileType now accepts encoding and errors
+ arguments. Patch by Lucas Maystre.
+
+- Issue #16488: epoll() objects now support the `with` statement. Patch
+ by Serhiy Storchaka.
+
- Issue #16298: In HTTPResponse.read(), close the socket when there is no
Content-Length and the incoming stream is finished. Patch by Eran
Rundstein.
+- Add abc.ABC class to use inheritance rather than a direct invocation of
+ ABCMeta metaclass. Patch by Bruno Dupuis.
+
+- Expose the TCP_FASTOPEN and MSG_FASTOPEN flags in socket when they're
+ available.
+
+- Issue #15701: Add a .headers attribute to urllib.error.HTTPError. Patch
+ contributed by Berker Peksag.
+
- Issue #15872: Fix 3.3 regression introduced by the new fd-based shutil.rmtree
that caused it to not ignore certain errors when ignore_errors was set.
Patch by Alessandro Moura and Serhiy Storchaka.
@@ -604,6 +805,9 @@ Library
- Issue #16248: Disable code execution from the user's home directory by
tkinter when the -E flag is passed to Python. Patch by Zachary Ware.
+- Issue #13390: New function :func:`sys.getallocatedblocks()` returns the
+ number of memory blocks currently allocated.
+
- Issue #16628: Fix a memory leak in ctypes.resize().
- Issue #13614: Fix setup.py register failure with invalid rst in description.
@@ -624,6 +828,9 @@ Library
- Issue #10182: The re module doesn't truncate indices to 32 bits anymore.
Patch by Serhiy Storchaka.
+- Issue #16333: use (",", ": ") as default separator when indent is specified
+ to avoid trailing whitespace. Patch by Serhiy Storchaka.
+
- Issue #16573: In 2to3, treat enumerate() like a consuming call, so superfluous
list() calls aren't added to filter(), map(), and zip() which are directly
passed enumerate().
@@ -632,17 +839,46 @@ Library
lengths as unsigned 32-bit integers, like the C implementation does.
Patch by Serhiy Storchaka.
+- Issue #16423: urllib.request now has support for ``data:`` URLs. Patch by
+ Mathias Panzenböck.
+
+- Issue #4473: Add a POP3.stls() to switch a clear-text POP3 session into
+ an encrypted POP3 session, on supported servers. Patch by Lorenzo Catucci.
+
+- Issue #4473: Add a POP3.capa() method to query the capabilities advertised
+ by the POP3 server. Patch by Lorenzo Catucci.
+
+- Issue #4473: Ensure the socket is shutdown cleanly in POP3.close().
+ Patch by Lorenzo Catucci.
+
+- Issue #16522: added FAIL_FAST flag to doctest.
+
+- Issue #15627: Add the importlib.abc.SourceLoader.source_to_code() method.
+
- Issue #16408: Fix file descriptors not being closed in error conditions
in the zipfile module. Patch by Serhiy Storchaka.
+- Issue #14631: Add a new :class:`weakref.WeakMethod` to simulate weak
+ references to bound methods.
+
+- Issue #16469: Fix exceptions from float -> Fraction and Decimal -> Fraction
+ conversions for special values to be consistent with those for float -> int
+ and Decimal -> int. Patch by Alexey Kachayev.
+
- Issue #16481: multiprocessing no longer leaks process handles on Windows.
+- Issue #12428: Add a pure Python implementation of functools.partial().
+ Patch by Brian Thorne.
+
- Issue #16140: The subprocess module no longer double closes its child
subprocess.PIPE parent file descriptors on child error prior to exec().
- Remove a bare print to stdout from the subprocess module that could have
happened if the child process wrote garbage to its pre-exec error pipe.
+- The subprocess module now raises its own SubprocessError instead of a
+ RuntimeError in various error situations which should not normally happen.
+
- Issue #16327: The subprocess module no longer leaks file descriptors
used for stdin/stdout/stderr pipes to the child when fork() fails.
@@ -663,6 +899,9 @@ Library
- Issue #16431: Use the type information when constructing a Decimal subtype
from a Decimal argument.
+- Issue #15641: Clean up deprecated classes from importlib
+ Patch by Taras Lyapun.
+
- Issue #16350: zlib.decompressobj().decompress() now accumulates data from
successive calls after EOF in unused_data, instead of only saving the argument
to the last call. decompressobj().flush() now correctly sets unused_data and
@@ -675,30 +914,57 @@ Library
- Issue #16152: fix tokenize to ignore whitespace at the end of the code when
no newline is found. Patch by Ned Batchelder.
+- Issue #16284: Prevent keeping unnecessary references to worker functions
+ in concurrent.futures ThreadPoolExecutor.
+
- Issue #16230: Fix a crash in select.select() when one the lists changes
size while iterated on. Patch by Serhiy Storchaka.
- Issue #16228: Fix a crash in the json module where a list changes size
while it is being encoded. Patch by Serhiy Storchaka.
+- Issue #16351: New function gc.get_stats() returns per-generation collection
+ statistics.
+
- Issue #14897: Enhance error messages of struct.pack and
struct.pack_into. Patch by Matti Mäki.
+- Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions.
+ Patch by Serhiy Storchaka.
+
- Issue #12890: cgitb no longer prints spurious <p> tags in text
mode when the logdir option is specified.
- Issue #16307: Fix multiprocessing.Pool.map_async not calling its callbacks.
Patch by Janne Karila.
-- Issue #16250: Fix URLError invocation with proper args.
+- Issue #16305: Fix a segmentation fault occurring when interrupting
+ math.factorial.
- Issue #16116: Fix include and library paths to be correct when building C
extensions in venvs.
- Issue #16245: Fix the value of a few entities in html.entities.html5.
+- Issue #16301: Fix the localhost verification in urllib/request.py for file://
+ urls.
+
+- Issue #16250: Fix the invocations of URLError which had misplaced filename
+ attribute for exception.
+
+- Issue #10836: Fix exception raised when file not found in urlretrieve
+ Initial patch by Ezio Melotti.
+
- Issue #14398: Fix size truncation and overflow bugs in the bz2 module.
+- Issue #12692: Fix resource leak in urllib.request when talking to an HTTP
+ server that does not include a "Connection: close" header in its responses.
+
+- Issue #12034: Fix bogus caching of result in check_GetFinalPathNameByHandle.
+ Patch by Atsuo Ishimoto.
+
+- Improve performance of `lzma.LZMAFile`.
+
- Issue #16220: wsgiref now always calls close() on an iterable response.
Patch by Brent Tubbs.
@@ -710,27 +976,37 @@ Library
- Issue #16176: Properly identify Windows 8 via platform.platform()
+- Issue #16088: BaseHTTPRequestHandler's send_error method includes a
+ Content-Length header in it's response now. Patch by Antoine Pitrou.
+
- Issue #16114: The subprocess module no longer provides a misleading error
message stating that args[0] did not exist when either the cwd or executable
keyword arguments specified a path that did not exist.
- Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror.
-- Issue #16076: Made _elementtree.Element pickleable in a way that is compatible
- with the Python Element. Pickling/unpickling of xml.etree.ElementTree.Element
- works again - this was a temporary regression from 3.2 where the by-default
- imported _elementtree had no pickling capability.
+- Issue #1492704: shutil.copyfile() raises a distinct SameFileError now if
+ source and destination are the same file. Patch by Atsuo Ishimoto.
+
+- Issue #13896: Make shelf instances work with 'with' as context managers.
+ Original patch by Filip Gruszczyński.
+
+- Issue #15417: Add support for csh and fish in venv activation scripts.
+
+- Issue #14377: ElementTree.write and some of the module-level functions have
+ a new parameter - *short_empty_elements*. It controls how elements with no
+ contents are emitted.
- Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element
element_factory (fixes a regression in SimpleTAL).
-- Issue #16913: Fix Element.itertext()'s handling of text with XML entities.,
+- Issue #9650: List commonly used format codes in time.strftime and
+ time.strptime docsttings. Original patch by Mike Hoy.
- Issue #16034: Fix performance regressions in the new `bz2.BZ2File`
implementation. Initial patch by Serhiy Storchaka.
-- Issue #16112: platform.architecture does not correctly escape argument to
- /usr/bin/file. Patch by David Benjamin.
+- `pty.spawn()` now returns the child process status returned by `os.waitpid()`.
- Issue #15756: `subprocess.poll()` now properly handles `errno.ECHILD` to
return a returncode of 0 when the child has already exited or cannot be waited
@@ -750,6 +1026,9 @@ Library
- Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after
`datetime.MAXYEAR`. Patch by Cédric Krier.
+- Issue #16112: platform.architecture does not correctly escape argument to
+ /usr/bin/file. Patch by David Benjamin.
+
- Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML
elements 'meta' and 'param'.
@@ -772,22 +1051,58 @@ Library
Popen when ``%action`` substitutions produce empty strings.
- Issue #12776, issue #11839: Call `argparse` type function (specified by
- add_argument) only once. Before, the type function was called twice in the
+ add_argument) only once. Before, the type function was called twice in the
case where the default was specified and the argument was given as well. This
was especially problematic for the FileType type, as a default file would
always be opened, even if a file argument was specified on the command line.
-- Issue #15906: Fix a regression in `argparse` caused by the preceding change,
+- Issue #15906: Fix a regression in argparse caused by the preceding change,
when ``action='append'``, ``type='str'`` and ``default=[]``.
+- Issue #16113: Added sha3 module based on the Keccak reference implementation
+ 3.2. The `hashlib` module has four additional hash algorithms: `sha3_224`,
+ `sha3_256`, `sha3_384` and `sha3_512`. As part of the patch some common
+ code was moved from _hashopenssl.c to hashlib.h.
+
+- ctypes.call_commethod was removed, since its only usage was in the defunct
+ samples directory.
+
+- Issue #16692: Added TLSv1.1 and TLSv1.2 support for the ssl modules.
+
IDLE
----
+- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
+
+- Issue #17657: Show full Tk version in IDLE's about dialog.
+ Patch by Todd Rovito.
+
+- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
+
+- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
+
+- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
+
+- Issue #17625: In IDLE, close the replace dialog after it is used.
+
+- Issue #14254: IDLE now handles readline correctly across shell restarts.
+
+- Issue #17614: IDLE no longer raises exception when quickly closing a file.
+
+- Issue #6698: IDLE now opens just an editor window when configured to do so.
+
+- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
+ raises an exception.
+
+- Issue #6649: Fixed missing exit status in IDLE. Patch by Guilherme Polo.
+
- Issue #17114: IDLE now uses non-strict config parser.
- Issue #9290: In IDLE the sys.std* streams now implement io.TextIOBase
interface and support all mandatory methods and properties.
+- Issue #5066: Update IDLE docs. Patch by Todd Rovito.
+
- Issue #16829: IDLE printing no longer fails if there are spaces or other
special characters in the file path.
@@ -804,6 +1119,9 @@ IDLE
- Issue #1207589: Add Cut/Copy/Paste items to IDLE right click Context Menu
Patch by Todd Rovito.
+- Issue #16123: IDLE - deprecate running without a subprocess.
+ Patch by Roger Serwy.
+
Tests
-----
@@ -824,8 +1142,15 @@ Tests
- Issue #13898: test_ssl no longer prints a spurious stack trace on Ubuntu.
+- Issue #17283: Share code between `__main__.py` and `regrtest.py` in
+ `Lib/test`.
+
- Issue #17249: convert a test in test_capi to use unittest and reap threads.
+- Issue #17107: Test client-side SNI support in urllib.request thanks to
+ the new server-side SNI support in the ssl module. Initial patch by
+ Daniel Black.
+
- Issue #17041: Fix testing when Python is configured with the
--without-doc-strings.
@@ -833,6 +1158,8 @@ Tests
- Issue #15539: Added regression tests for Tools/scripts/pindent.py.
+- Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host.
+
- Issue #17479: test_io now works with unittest test discovery.
Patch by Zachary Ware.
@@ -892,6 +1219,11 @@ Tests
- Issue #16748: test_heapq now works with unittest test discovery.
+- Issue #10646: Tests rearranged for os.samefile/samestat to check for not
+ just symlinks but also hard links.
+
+- Issue #15302: Switch regrtest from using getopt to using argparse.
+
- Issue #15324: Fix regrtest parsing of --fromfile, --match, and --randomize
options.
@@ -901,6 +1233,9 @@ Tests
- Issue #16664: Add regression tests for glob's behaviour concerning entries
starting with a ".". Patch by Sebastian Kreft.
+- Issue #13390: The ``-R`` option to regrtest now also checks for memory
+ allocation leaks, using :func:`sys.getallocatedblocks()`.
+
- Issue #16559: Add more tests for the json module, including some from the
official test suite at json.org. Patch by Serhiy Storchaka.
@@ -919,7 +1254,7 @@ Tests
- Issue #15802: Fix test logic in `TestMaildir.test_create_tmp()`. Patch by
Serhiy Storchaka.
-- Issue #15557: Add a test suite for the `webbrowser` module, thanks to Anton
+- Issue #15557: Added a test suite for the webbrowser module, thanks to Anton
Barkovsky.
- Issue #16698: Skip posix test_getgroups when built with OS X
@@ -928,6 +1263,9 @@ Tests
Build
-----
+- Issue #17591: Use lowercase filenames when including Windows header files.
+ Patch by Roumen Petrov.
+
- Issue #17550: Fix the --enable-profiling configure switch.
- Issue #17425: Build with openssl 1.0.1d on Windows.
@@ -943,6 +1281,10 @@ Build
- Issue #3718: Use AC_ARG_VAR to set MACHDEP in configure.ac.
+- Issue #16235: Implement python-config as a shell script.
+
+- Issue #16769: Remove outdated Visual Studio projects.
+
- Issue #17031: Fix running regen in cross builds.
- Issue #3754: fix typo in pthread AC_CACHE_VAL.
@@ -950,12 +1292,14 @@ Build
- Issue #15484: Fix _PYTHON_PROJECT_BASE for srcdir != builddir builds;
use _PYTHON_PROJECT_BASE in distutils/sysconfig.py.
+- Drop support for Windows 2000.
+
- Issue #17029: Let h2py search the multiarch system include directory.
- Issue #16953: Fix socket module compilation on platforms with
HAVE_BROKEN_POLL. Patch by Jeffrey Armstrong.
-- Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host.
+- Issue #16320: Remove redundant Makefile dependencies for strings and bytes.
- Cross compiling needs host and build settings. configure no longer
creates a broken PYTHON_FOR_BUILD variable when --build is missing.
@@ -977,6 +1321,8 @@ Build
- Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError
after 2801bf875a24 (see #15801).
+- Issue #16135: Remove OS/2 support.
+
- Issue #15819: Make sure we can build Python out-of-tree from a read-only
source directory. (Somewhat related to issue #9860.)
@@ -991,9 +1337,24 @@ C-API
- Issue #16881: Fix Py_ARRAY_LENGTH macro for GCC < 3.1.
+- Issue #15422: Get rid of PyCFunction_New macro. Use PyCFunction_NewEx
+ function (PyCFunction_New func is still present for backward compatibility).
+
+- Issue #16505: Remove unused Py_TPFLAGS_INT_SUBCLASS.
+
+- Issue #16086: PyTypeObject.tp_flags and PyType_Spec.flags are now unsigned
+ (unsigned long and unsigned int) to avoid an undefined behaviour with
+ Py_TPFLAGS_TYPE_SUBCLASS ((1 << 31). PyType_GetFlags() result type is
+ now unsigned too (unsigned long, instead of long).
+
+- Issue #16166: Add PY_LITTLE_ENDIAN and PY_BIG_ENDIAN macros and unified
+ endianness detection and handling.
+
Documentation
-------------
+- Issue #15940: Specify effect of locale on time functions.
+
- Issue 17538: Document XML vulnerabilties
- Issue #16642: sched.scheduler timefunc initial default is time.monotonic.
@@ -1038,8 +1399,8 @@ Documentation
- Issue #13538: Improve str() and object.__str__() documentation.
-- Issue #16489: Make it clearer that importlib.find_loader() requires any and
- all packages to be separately imported.
+- Issue #16489: Make it clearer that importlib.find_loader() needs parent
+ packages to be explicitly imported.
- Issue #16400: Update the description of which versions of a given package
PyPI displays.
@@ -1062,6 +1423,9 @@ Documentation
- Issue #16115: Improve subprocess.Popen() documentation around args, shell,
and executable arguments.
+- Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with
+ great native-speaker help from R. David Murray.
+
- Issue #15533: Clarify docs and add tests for `subprocess.Popen()`'s cwd
argument.
@@ -1082,6 +1446,9 @@ Documentation
Tools/Demos
-----------
+- Issue #17028: Allowed Python arguments to be supplied to the Windows
+ launcher.
+
- Issue #17156: pygettext.py now uses an encoding of source file and correctly
writes and escapes non-ascii characters.
@@ -1090,9 +1457,18 @@ Tools/Demos
improper indentation. pindent.py now works with continued lines broken after
"class" or "def" keywords and with continuations at the start of line.
-- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka.
+- Issue #11797: Add a 2to3 fixer that maps reload() to imp.reload().
+
+- Issue #10966: Remove the concept of unexpected skipped tests.
+
+- Issue #9893: Removed the Misc/Vim directory.
+
+- Removed the Misc/TextMate directory.
-- Issue #16476: Fix json.tool to avoid including trailing whitespace.
+- Issue #16245: Add the Tools/scripts/parse_html5_entities.py script to parse
+ the list of HTML5 entities and update the html.entities.html5 dictionary.
+
+- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka.
- Issue #16549: Make json.tool work again on Python 3 and add tests.
Initial patch by Berker Peksag and Serhiy Storchaka.
@@ -1187,6 +1563,9 @@ Core and Builtins
Library
-------
+- Issue #17158: Add 'symbols' to help() welcome message; clarify
+ 'modules spam' messages.
+
- Issue #15847: Fix a regression in argparse, which did not accept tuples as
argument lists anymore.
@@ -1262,6 +1641,8 @@ Core and Builtins
Library
-------
+- Issue #13248: removed deprecated and undocumented difflib.isbjunk, isbpopular.
+
- Issue #13370: Ensure that ctypes works on Mac OS X when Python is compiled
using the clang compiler.
@@ -1677,6 +2058,10 @@ Documentation
- Issue #15250: Document that `filecmp.dircmp()` compares files shallowly. Patch
contributed by Chris Jerdonek.
+- Issue #15442: Expose the default list of directories ignored by
+ `filecmp.dircmp()` as a module attribute, and expand the list to more modern
+ values.
+
Tests
-----
@@ -1789,9 +2174,6 @@ Core and Builtins
Library
-------
-- Issue #16305: Fix a segmentation fault occurring when interrupting
- math.factorial.
-
- Issue #12288: Consider '0' and '0.0' as valid initialvalue
for tkinter SimpleDialog.
@@ -3486,7 +3868,7 @@ Library
- Issue #13589: Fix some serialization primitives in the aifc module.
Patch by Oleg Plakhotnyuk.
-- Issue #13642: Unquote before b64encoding ``user:password`` during Basic
+- Issue #13642: Unquote before b64encoding user:password during Basic
Authentication. Patch contributed by Joonas Kuorilehto.
- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor.
@@ -3945,8 +4327,8 @@ Library
- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is
given as a low fd, it gets overwritten.
-- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscate)
- a ``Connection: close`` header.
+- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates)
+ Connection:close header.
- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling.
@@ -4538,7 +4920,7 @@ Library
- Issue #11127: Raise a TypeError when trying to pickle a socket object.
-- Issue #11563: ``Connection: close`` header is sent by requests using URLOpener
+- 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.
@@ -5114,7 +5496,7 @@ Tests
- 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
+- Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a
false positive if the last directory in the path is inaccessible.
- Issue #11223: Fix test_threadsignals to fail, not hang, when the