Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.
+- Issue #29058: All stable API extensions added after Python 3.2 are now
+ available only when Py_LIMITED_API is set to the PY_VERSION_HEX value of
+ the minimum Python version supporting this API.
+
+ Documentation
+ -------------
+
+ - Issue #29349: Fix Python 2 syntax in code for building the documentation.
+
+Tests
+-----
-What's New in Python 3.5.3?
-===========================
+- Issue #28950: Disallow -j0 to be combined with -T/-l in regrtest
+ command line arguments.
-Release date: 2017-01-17
+- Issue #28683: Fix the tests that bind() a unix socket and raise
+ PermissionError on Android for a non-root user.
-There were no code changes between 3.5.3rc1 and 3.5.3 final.
+- Issue #26939: Add the support.setswitchinterval() function to fix
+ test_functools hanging on the Android armv7 qemu emulator.
+Build
+-----
-What's New in Python 3.5.3 release candidate 1?
-===============================================
+- Issue #26851: Set Android compilation and link flags.
-Release date: 2017-01-02
+- Issue #28768: Fix implicit declaration of function _setmode. Patch by
+ Masayuki Yamamoto
-Core and Builtins
------------------
+- Issue #29080: Removes hard dependency on hg.exe from PCBuild/build.bat
-- Issue #29073: bytearray formatting no longer truncates on first null byte.
+- Issue #23903: Added missed names to PC/python3.def.
-- Issue #28932: Do not include <sys/random.h> if it does not exist.
+- Issue #28762: lockf() is available on Android API level 24, but the F_LOCK
+ macro is not defined in android-ndk-r13.
-- Issue #28147: Fix a memory leak in split-table dictionaries: setattr()
- must not convert combined table into split table.
+- Issue #28538: Fix the compilation error that occurs because if_nameindex() is
+ available on Android API level 24, but the if_nameindex structure is not
+ defined.
-- Issue #25677: Correct the positioning of the syntax error caret for
- indented blocks. Based on patch by Michael Layzell.
+- Issue #20211: Do not add the directory for installing C header files and the
+ directory for installing object code libraries to the cross compilation
+ search paths. Original patch by Thomas Petazzoni.
-- Issue #29000: Fixed bytes formatting of octals with zero padding in alternate
- form.
+- Issue #28849: Do not define sys.implementation._multiarch on Android.
-- Issue #28512: Fixed setting the offset attribute of SyntaxError by
- PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().
-- Issue #28991: functools.lru_cache() was susceptible to an obscure reentrancy
- bug caused by a monkey-patched len() function.
+What's New in Python 3.6.0?
+===========================
-- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
- when decode astral characters. Patch by Xiang Zhang.
+*Release date: 2016-12-23*
-- Issue #19398: Extra slash no longer added to sys.path components in case of
- empty compile-time PYTHONPATH components.
+- No changes since release candidate 2
-- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
- build.
-- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
- loss in PyTraceBack_Here().
+What's New in Python 3.6.0 release candidate 2?
+===============================================
-- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters().
- Patch by Xiang Zhang.
+*Release date: 2016-12-16*
-- Issue #28376: The type of long range iterator is now registered as Iterator.
- Patch by Oren Milman.
+Core and Builtins
+-----------------
-- Issue #28376: The constructor of range_iterator now checks that step is not 0.
- Patch by Oren Milman.
+- Issue #28147: Fix a memory leak in split-table dictionaries: setattr()
+ must not convert combined table into split table. Patch written by INADA
+ Naoki.
-- Issue #26906: Resolving special methods of uninitialized type now causes
- implicit initialization of the type instead of a fail.
+- Issue #28990: Fix asyncio SSL hanging if connection is closed before
+ handshake is completed. (Patch by HoHo-Ho)
-- Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
- Original patch by Niklas Koep.
+Tools/Demos
+-----------
-- Issue #24098: Fixed possible crash when AST is changed in process of
- compiling it.
+- Issue #28770: Fix python-gdb.py for fastcalls.
-- Issue #28350: String constants with null character no longer interned.
+Windows
+-------
-- Issue #26617: Fix crash when GC runs during weakref callbacks.
+- Issue #28896: Deprecate WindowsRegistryFinder.
-- Issue #27942: String constants now interned recursively in tuples and frozensets.
+Build
+-----
-- Issue #21578: Fixed misleading error message when ImportError called with
- invalid keyword args.
+- Issue #28898: Prevent gdb build errors due to HAVE_LONG_LONG redefinition.
-- Issue #28203: Fix incorrect type in error message from
- ``complex(1.0, {2:3})``. Patch by Soumya Sharma.
-- Issue #27955: Fallback on reading /dev/urandom device when the getrandom()
- syscall fails with EPERM, for example when blocked by SECCOMP.
+What's New in Python 3.6.0 release candidate 1?
+===============================================
-- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport
- should use the same optimization level as the interpreter.
+*Release date: 2016-12-06*
-- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when
- Python is compiled with NSMALLPOSINTS = 0.
+Core and Builtins
+-----------------
-- Issue #25758: Prevents zipimport from unnecessarily encoding a filename
- (patch by Eryk Sun)
+- Issue #23722: Rather than silently producing a class that doesn't support
+ zero-argument ``super()`` in methods, failing to pass the new
+ ``__classcell__`` namespace entry up to ``type.__new__`` now results in a
+ ``DeprecationWarning`` and a class that supports zero-argument ``super()``.
-- Issue #28189: dictitems_contains no longer swallows compare errors.
- (Patch by Xiang Zhang)
+- Issue #28797: Modifying the class __dict__ inside the __set_name__ method of
+ a descriptor that is used inside that class no longer prevents calling the
+ __set_name__ method of other descriptors.
-- Issue #27812: Properly clear out a generator's frame's backreference to the
- generator to prevent crashes in frame.clear().
+- Issue #28782: Fix a bug in the implementation ``yield from`` when checking
+ if the next instruction is YIELD_FROM. Regression introduced by WORDCODE
+ (issue #26647).
-- Issue #27811: Fix a crash when a coroutine that has not been awaited is
- finalized with warnings-as-errors enabled.
+Library
+-------
-- Issue #27587: Fix another issue found by PVS-Studio: Null pointer check
- after use of 'def' in _PyState_AddModule().
- Initial patch by Christian Heimes.
+- Issue #27030: Unknown escapes in re.sub() replacement template are allowed
+ again. But they still are deprecated and will be disabled in 3.7.
-- Issue #26020: set literal evaluation order did not match documented behaviour.
+- Issue #28835: Fix a regression introduced in warnings.catch_warnings():
+ call warnings.showwarning() if it was overriden inside the context manager.
-- Issue #27782: Multi-phase extension module import now correctly allows the
- ``m_methods`` field to be used to add module level functions to instances
- of non-module types returned from ``Py_create_mod``. Patch by Xiang Zhang.
+- Issue #27172: To assist with upgrades from 2.7, the previously documented
+ deprecation of ``inspect.getfullargspec()`` has been reversed. This decision
+ may be revisited again after the Python 2.7 branch is no longer officially
+ supported.
-- Issue #27936: The round() function accepted a second None argument
- for some types but not for others. Fixed the inconsistency by
- accepting None for all numeric types.
+- Issue #26273: Add new :data:`socket.TCP_CONGESTION` (Linux 2.6.13) and
+ :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37) constants. Patch written by
+ Omar Sandoval.
-- Issue #27487: Warn if a submodule argument to "python -m" or
- runpy.run_module() is found in sys.modules after parent packages are
- imported, but before the submodule is executed.
+- Issue #24142: Reading a corrupt config file left configparser in an
+ invalid state. Original patch by Florian Höch.
-- Issue #27558: Fix a SystemError in the implementation of "raise" statement.
- In a brand new thread, raise a RuntimeError since there is no active
- exception to reraise. Patch written by Xiang Zhang.
+- Issue #28843: Fix asyncio C Task to handle exceptions __traceback__.
-- Issue #27419: Standard __import__() no longer look up "__import__" in globals
- or builtins for importing submodules or "from import". Fixed handling an
- error of non-string package name.
+C API
+-----
-- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows.
+- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions.
-- Issue #27514: Make having too many statically nested blocks a SyntaxError
- instead of SystemError.
+Documentation
+-------------
-- Issue #27473: Fixed possible integer overflow in bytes and bytearray
- concatenations. Patch by Xiang Zhang.
+- Issue #23722: The data model reference and the porting section in the What's
+ New guide now cover the additional ``__classcell__`` handling needed for
+ custom metaclasses to fully support PEP 487 and zero-argument ``super()``.
-- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by
- Xiang Zhang.
+Tools/Demos
+-----------
-- Issue #27581: Don't rely on wrapping for overflow check in
- PySequence_Tuple(). Patch by Xiang Zhang.
+- Issue #28023: Fix python-gdb.py didn't support new dict implementation.
-- Issue #27443: __length_hint__() of bytearray iterators no longer return a
- negative integer for a resized bytearray.
-- Issue #27942: Fix memory leak in codeobject.c
+What's New in Python 3.6.0 beta 4?
+==================================
-Library
--------
+*Release date: 2016-11-21*
-- Issue #15812: inspect.getframeinfo() now correctly shows the first line of
- a context. Patch by Sam Breese.
+Core and Builtins
+-----------------
-- Issue #29094: Offsets in a ZIP file created with extern file object and modes
- "w" and "x" now are relative to the start of the file.
+- Issue #28532: Show sys.version when -V option is supplied twice.
-- Issue #13051: Fixed recursion errors in large or resized
- curses.textpad.Textbox. Based on patch by Tycho Andersen.
+- Issue #27100: The with-statement now checks for __enter__ before it
+ checks for __exit__. This gives less confusing error messages when
+ both methods are missing. Patch by Jonathan Ellington.
-- Issue #29119: Fix weakrefs in the pure python version of
- collections.OrderedDict move_to_end() method.
- Contributed by Andra Bogildea.
+- Issue #28746: Fix the set_inheritable() file descriptor method on platforms
+ that do not have the ioctl FIOCLEX and FIONCLEX commands.
-- Issue #9770: curses.ascii predicates now work correctly with negative
- integers.
+- Issue #26920: Fix not getting the locale's charset upon initializing the
+ interpreter, on platforms that do not have langinfo.
-- Issue #28427: old keys should not remove new values from
- WeakValueDictionary when collecting from another thread.
+- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
+ when decode astral characters. Patch by Xiang Zhang.
-- Issue 28923: Remove editor artifacts from Tix.py.
+- Issue #19398: Extra slash no longer added to sys.path components in case of
+ empty compile-time PYTHONPATH components.
-- Issue #28871: Fixed a crash when deallocate deep ElementTree.
+- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%.
-- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and
- WeakValueDictionary.pop() when a GC collection happens in another
- thread.
+- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
+ Patch by Xiang Zhang.
-- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that
- doesn't own its elements as limits.
+- Issue #27243: Change PendingDeprecationWarning -> DeprecationWarning.
+ As it was agreed in the issue, __aiter__ returning an awaitable
+ should result in PendingDeprecationWarning in 3.5 and in
+ DeprecationWarning in 3.6.
-- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
- forkserver process if a preloaded module instantiated some
- multiprocessing objects such as locks.
+- Issue #26182: Fix a refleak in code that raises DeprecationWarning.
-- Issue #28847: dbm.dumb now supports reading read-only files and no longer
- writes the index file when it is not changed.
+- Issue #28721: Fix asynchronous generators aclose() and athrow() to
+ handle StopAsyncIteration propagation properly.
+
+Library
+-------
+
+- Issue #28752: Restored the __reduce__() methods of datetime objects.
+
+- Issue #28727: Regular expression patterns, _sre.SRE_Pattern objects created
+ by re.compile(), become comparable (only x==y and x!=y operators). This
+ change should fix the issue #18383: don't duplicate warning filters when the
+ warnings module is reloaded (thing usually only done in unit tests).
+
+- Issue #20572: The subprocess.Popen.wait method's undocumented
+ endtime parameter now raises a DeprecationWarning.
- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and
from_buffer_copy() methods on abstract classes like Array.