- Issue #17644: Fix a crash in str.format when curly braces are used in square
brackets.
-- Issue #17983: Raise a SyntaxError for a ``global __class__`` statement in a
- class body.
+- Issue #17237: Fix crash in the ASCII decoder on m68k.
-- Issue #17927: Frame objects kept arguments alive if they had been copied into
- a cell, even if the cell was cleared.
+- Issue #17927: Frame objects kept arguments alive if they had been
+ copied into a cell, even if the cell was cleared.
-Library
--------
+- Issue #1545463: At shutdown, defer finalization of codec modules so
+ that stderr remains usable.
-- Issue #14360: encode_quopri can now be successfully used as an encoder
- when constructing a MIMEApplication object.
+- Issue #7330: Implement width and precision (ex: "%5.3s") for the format
+ string of PyUnicode_FromFormat() function, original patch written by Ysj Ray.
-- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
- string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
- raises a ValueError if the password is longer than 2 gigabytes. The ssl
- module does not support partial write.
+- Issue #1545463: Global variables caught in reference cycles are now
+ garbage-collected at shutdown.
-- Issue #18248: Fix libffi build on AIX.
+- Issue #17094: Clear stale thread states after fork(). Note that this
+ is a potentially disruptive change since it may release some system
+ resources which would otherwise remain perpetually alive (e.g. database
+ connections kept in thread-local storage).
-- Issue #18259: Declare sethostname in socketmodule.c for AIX
+- Issue #17408: Avoid using an obsolete instance of the copyreg module when
+ the interpreter is shutdown and then started again.
-- Issue #18167: cgi.FieldStorage no more fails to handle multipart/form-data
- when \r\n appears at end of 65535 bytes without other newlines.
+- Issue #5845: Enable tab-completion in the interactive interpreter by
+ default, thanks to a new sys.__interactivehook__.
-- subprocess: Prevent a possible double close of parent pipe fds when the
- subprocess exec runs into an error. Prevent a regular multi-close of the
- /dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
+- Issue #17115,17116: Module initialization now includes setting __package__ and
+ __loader__ attributes to None.
-- Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
+- Issue #17853: Ensure locals of a class that shadow free variables always win
+ over the closures.
-- Issue #18109: os.uname() now decodes fields from the locale encoding, and
- socket.gethostname() now decodes the hostname from the locale encoding,
- instead of using the UTF-8 encoding in strict mode.
+- Issue #17863: In the interactive console, don't loop forever if the encoding
+ can't be fetched from stdin.
-- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
- ruleline. This helps in handling certain types invalid urls in a conservative
- manner.
+- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
-- Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
- stream's read() returns more bytes than requested.
+- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
+ such as was shipped with Centos 5 and Mac OS X 10.4.
-- Issue #18011: base64.b32decode() now raises a binascii.Error if there are
- non-alphabet characters present in the input string to conform a docstring.
- Updated the module documentation.
+- Issue #17413: sys.settrace callbacks were being passed a string instead of an
+ exception instance for the 'value' element of the arg tuple if the exception
+ originated from C code; now an exception instance is always provided.
-- Issue #13772: Restored directory detection of targets in ``os.symlink`` on
- Windows, which was temporarily removed in Python 3.2.3 due to an incomplete
- implementation. The implementation now works even if the symlink is created
- in a location other than the current directory.
+- Issue #17782: Fix undefined behaviour on platforms where
+ ``struct timespec``'s "tv_nsec" member is not a C long.
-- Issue #16986: ElementTree now correctly parses a string input not only when
- an internal XML encoding is UTF-8 or US-ASCII.
+- Issue #17722: When looking up __round__, resolve descriptors.
-- Issue #17812: Fixed quadratic complexity of base64.b32encode().
+- Issue #16061: Speed up str.replace() for replacing 1-character strings.
-- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
- service using certificates with many wildcards (CVE-2013-2099).
+- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
+ method.
-- Issue #17981: Closed socket on error in SysLogHandler.
+- Issue #17643: Add __callback__ attribute to weakref.ref.
-- Fix typos in the multiprocessing module.
+- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
+ class.
-- Issue #17754: Make ctypes.util.find_library() independent of the locale.
+- Issue #17669: Fix crash involving finalization of generators using yield from.
-- Issue #17968: Fix memory leak in os.listxattr().
+- Issue #14439: Python now prints the traceback on runpy failure at startup.
-- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
- with port None or "0" and flags AI_NUMERICSERV.
-- Issue #18080: When building a C extension module on OS X, if the compiler
- is overriden with the CC environment variable, use the new compiler as
- the default for linking if LDSHARED is not also overriden. This restores
- Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
+- Issue #17469: Fix _Py_GetAllocatedBlocks() and sys.getallocatedblocks()
+ when running on valgrind.
-- Issue #18113: Fixed a refcount leak in the curses.panel module's
- set_userptr() method. Reported by Atsuo Ishimoto.
+- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
-IDLE
-----
+- Issue #17357: Add missing verbosity messages for -v/-vv that were lost during
+ the importlib transition.
-- Remove dead imports of imp.
+- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
-- Issue #18196: Avoid displaying spurious SystemExit tracebacks.
+- 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.
-- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
+Library
+-------
-- Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
- Original patch by Sarah K.
++- Issue #14360: encode_quopri can now be successfully used as an encoder
++ when constructing a MIMEApplication object.
-- Issue #18055: Move IDLE off of imp and on to importlib.
+- Issue #11390: Add -o and -f command line options to the doctest CLI to
+ specify doctest options (and convert it to using argparse).
-- Issue #15392: Create a unittest framework for IDLE.
- Initial patch by Rajagopalasarma Jayakrishnan.
+- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
+ string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
+ raises a ValueError if the password is longer than 2 gigabytes. The ssl
+ module does not support partial write.
-- Issue #14146: Highlight source line while debugging on Windows.
+- Issue #11016: Add C implementation of the stat module as _stat.
-- Issue #17532: Always include Options menu for IDLE on OS X.
- Patch by Guilherme Simões.
+- Issue #18248: Fix libffi build on AIX.
-Tests
------
+- Issue #18259: Declare sethostname in socketmodule.c for AIX
-- Issue #17691: test_univnewlines now works with unittest test discovery.
- Patch by Zachary Ware.
+- Issue #18147: Add diagnostic functions to ssl.SSLContext(). get_ca_list()
+ lists all loaded CA certificates and cert_store_stats() returns amount of
+ loaded X.509 certs, X.509 CA certs and CRLs.
-- Issue #18094: test_uuid no more reports skipped tests as passed.
+- Issue #18167: cgi.FieldStorage no more fails to handle multipart/form-data
+ when \r\n appears at end of 65535 bytes without other newlines.
-- Issue #11995: test_pydoc doesn't import all sys.path modules anymore.
+- Issue #18076: Introduce importlib.util.decode_source().
-Documentation
--------------
+- importlib.abc.SourceLoader.get_source() no longer changes SyntaxError or
+ UnicodeDecodeError into ImportError.
-- Issue #17953: Mention that you shouldn't replace sys.modules and deleting key
- items will cause Python to not be happy.
+- Issue #18058, 18057: Make the namespace package loader meet the
+ importlib.abc.InspectLoader ABC, allowing for namespace packages to work with
+ runpy.
-- Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs.
+- Issue #17177: The imp module is pending deprecation.
-- Issue #14097: improve the "introduction" page of the tutorial.
+- subprocess: Prevent a possible double close of parent pipe fds when the
+ subprocess exec runs into an error. Prevent a regular multi-close of the
+ /dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
-- Issue #17977: The documentation for the cadefault argument's default value
- in urllib.request.urlopen() is fixed to match the code.
+- Issue #18194: Introduce importlib.util.cache_from_source() and
+ source_from_cache() while documenting the equivalent functions in imp as
+ deprecated.
-Tools/Demos
------------
+- Issue #17907: Document imp.new_module() as deprecated in favour of
+ types.ModuleType.
-- Issue #15239: Make mkstringprep.py work again on Python 3.
+- Issue #18192: Introduce importlib.util.MAGIC_NUMBER and document as deprecated
+ imp.get_magic().
-Build
------
+- Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
+ Patch by Mark Levitt
-- Issue #18256: Compilation fix for recent AIX releases. Patch by
- David Edelsohn.
+- Issue #18193: Add importlib.reload().
-- Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1
- on Windows.
+- Issue #18157: Stop using imp.load_module() in pydoc.
-What's New in Python 3.3.2?
-===========================
+- Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
-*Release date: 13-May-2013*
+- Issue #17134: Add ssl.enum_cert_store() as interface to Windows' cert store.
-Core and Builtins
------------------
+- Issue #18143: Implement ssl.get_default_verify_paths() in order to debug
+ the default locations for cafile and capath.
-- Issue #17237: Fix crash in the ASCII decoder on m68k.
+- Issue #17314: Move multiprocessing.forking over to importlib.
-- Issue #17408: Avoid using an obsolete instance of the copyreg module when
- the interpreter is shutdown and then started again.
+- Issue #11959: SMTPServer and SMTPChannel now take an optional map, use of
+ which avoids affecting global state.
-- Issue #17863: In the interactive console, don't loop forever if the encoding
- can't be fetched from stdin.
+- Issue #18109: os.uname() now decodes fields from the locale encoding, and
+ socket.gethostname() now decodes the hostname from the locale encoding,
+ instead of using the UTF-8 encoding in strict mode.
-- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
+- Issue #18089: Implement importlib.abc.InspectLoader.load_module.
-- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
- such as was shipped with Centos 5 and Mac OS X 10.4.
+- Issue #18088: Introduce importlib.abc.Loader.init_module_attrs for setting
+ module attributes. Leads to the pending deprecation of
+ importlib.util.module_for_loader.
-- Issue #17413: sys.settrace callbacks were being passed a string instead of an
- exception instance for the 'value' element of the arg tuple if the exception
- originated from C code; now an exception instance is always provided.
+- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
+ ruleline. This helps in handling certain types invalid urls in a conservative
+ manner. Patch contributed by Mher Movsisyan.
-- Issue #17782: Fix undefined behaviour on platforms where
- ``struct timespec``'s "tv_nsec" member is not a C long.
+- Issue #18070: Have importlib.util.module_for_loader() set attributes
+ unconditionally in order to properly support reloading.
-- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
- method.
+- Added importlib.util.module_to_load to return a context manager to provide the
+ proper module object to load.
-- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
- class.
+- Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
+ stream's read() returns more bytes than requested.
-- Issue #17669: Fix crash involving finalization of generators using yield from.
+- Issue #18011: base64.b32decode() now raises a binascii.Error if there are
+ non-alphabet characters present in the input string to conform a docstring.
+ Updated the module documentation.
-- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
+- Issue #18072: Implement importlib.abc.InspectLoader.get_code() and
+ importlib.abc.ExecutionLoader.get_code().
-- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
+- Issue #8240: Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag on SSL
+ sockets.
+
+- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
+ with port None or "0" and flags AI_NUMERICSERV.
-- Issue #17357: Add missing verbosity output when using -v/-vv.
+- Issue #16986: ElementTree now correctly parses a string input not only when
+ an internal XML encoding is UTF-8 or US-ASCII.
-Library
--------
+- Issue #17996: socket module now exposes AF_LINK constant on BSD and OSX.
+
+- Issue #17900: Allowed pickling of recursive OrderedDicts. Decreased pickled
+ size and pickling time.
+
+- Issue #17914: Add os.cpu_count(). Patch by Yogesh Chaudhari, based on an
+ initial patch by Trent Nelson.
+
+- Issue #17812: Fixed quadratic complexity of base64.b32encode().
+ Optimize base64.b32encode() and base64.b32decode() (speed up to 3x).
+
+- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
+ service using certificates with many wildcards (CVE-2013-2099).
+
+- Issue #15758: Fix FileIO.readall() so it no longer has O(n**2) complexity.
+
+- Issue #14596: The struct.Struct() objects now use more compact implementation.
+
+- Issue #17981: Closed socket on error in SysLogHandler.
+
+- Issue #17964: Fix os.sysconf(): the return type of the C sysconf() function
+ is long, not int.
+
+- Fix typos in the multiprocessing module.
+
+- Issue #17754: Make ctypes.util.find_library() independent of the locale.
+
+- Issue #17968: Fix memory leak in os.listxattr().
- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
characters() and ignorableWhitespace() methods. Original patch by Sebastian