- Issue #28918: Fix the cross compilation of xxlimited when Python has been
built with Py_DEBUG defined.
-- Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict.
- Improve speed of dict literal with constant keys up to 30%.
+- 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()``.
-Library
--------
+- 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 #20191: Fixed a crash in resource.prlimit() when pass a sequence that
- doesn't own its elements as limits.
+- Issue #28799: Remove the ``PyEval_GetCallStats()`` function and deprecate
+ the untested and undocumented ``sys.callstats()`` function. Remove the
+ ``CALL_PROFILE`` special build: use the :func:`sys.setprofile` function,
+ :mod:`cProfile` or :mod:`profile` to profile function calls.
-- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
- forkserver process if a preloaded module instantiated some
- multiprocessing objects such as locks.
+- Issue #12844: More than 255 arguments can now be passed to a function.
-- Issue #28847: dbm.dumb now supports reading read-only files and no longer
- writes the index file when it is not changed.
+- 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 #26937: The chown() method of the tarfile.TarFile class does not fail
- now when the grp module cannot be imported, as for example on Android
- platforms.
+- Issue #28774: Fix error position of the unicode error in ASCII and Latin1
+ encoders when a string returned by the error handler contains multiple
+ non-encodable characters (non-ASCII for the ASCII codec, characters out
+ of the U+0000-U+00FF range for Latin1).
-Windows
--------
+- Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict.
+ Improve speed of dict literal with constant keys up to 30%.
-- Issue #25778: winreg does not truncate string correctly (Patch by Eryk Sun)
+- Issue #28532: Show sys.version when -V option is supplied twice.
-- Issue #28896: Deprecate WindowsRegistryFinder and disable it by default.
+- 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.
-Tests
------
+- Issue #28746: Fix the set_inheritable() file descriptor method on platforms
+ that do not have the ioctl FIOCLEX and FIONCLEX commands.
-- Issue #28683: Fix the tests that bind() a unix socket and raise
- PermissionError on Android for a non-root user.
+- Issue #26920: Fix not getting the locale's charset upon initializing the
+ interpreter, on platforms that do not have langinfo.
-- Issue #26939: Add the support.setswitchinterval() function to fix
- test_functools hanging on the Android armv7 qemu emulator.
+- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
+ when decode astral characters. Patch by Xiang Zhang.
-Build
------
+- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%.
-- 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 #19398: Extra slash no longer added to sys.path components in case of
+ empty compile-time PYTHONPATH components.
-- Issue #28849: Do not define sys.implementation._multiarch on Android.
+- Issue #28621: Sped up converting int to float by reusing faster bits counting
+ implementation. Patch by Adrian Wielgosik.
+- Issue #28580: Optimize iterating split table values.
+ Patch by Xiang Zhang.
-What's New in Python 3.6.0 release candidate 2
-==============================================
+- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
+ Patch by Xiang Zhang.
-*Release date: 2016-12-16*
+- Issue #28128: Deprecation warning for invalid str and byte escape
+ sequences now prints better information about where the error
+ occurs. Patch by Serhiy Storchaka and Eric Smith.
-Core and Builtins
------------------
+- Issue #28509: dict.update() no longer allocate unnecessary large memory.
-- 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 #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
+ build.
-- Issue #28990: Fix asyncio SSL hanging if connection is closed before
- handshake is completed. (Patch by HoHo-Ho)
+- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused
+ keeping unreachable code.
-Tools/Demos
------------
+- Issue #28214: Improved exception reporting for problematic __set_name__
+ attributes.
-- Issue #28770: Fix python-gdb.py for fastcalls.
+- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
+ loss in PyTraceBack_Here().
-Windows
--------
+- Issue #28183: Optimize and cleanup dict iteration.
-- Issue #28896: Deprecate WindowsRegistryFinder.
+- Issue #26081: Added C implementation of asyncio.Future.
+ Original patch by Yury Selivanov.
-Build
------
+- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters().
+ Patch by Xiang Zhang.
-- Issue #28898: Prevent gdb build errors due to HAVE_LONG_LONG redefinition.
+- Issue #28376: The type of long range iterator is now registered as Iterator.
+ Patch by Oren Milman.
+- Issue #28376: Creating instances of range_iterator by calling range_iterator
+ type now is disallowed. Calling iter() on range instance is the only way.
+ Patch by Oren Milman.
-What's New in Python 3.6.0 release candidate 1
-==============================================
+- Issue #26906: Resolving special methods of uninitialized type now causes
+ implicit initialization of the type instead of a fail.
-*Release date: 2016-12-06*
+- Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
+ Original patch by Niklas Koep.
-Core and Builtins
------------------
+- Issue #24098: Fixed possible crash when AST is changed in process of
+ compiling it.
-- 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 #28201: Dict reduces possibility of 2nd conflict in hash table when
+ hashes have same lower bits.
-- 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 #28350: String constants with null character no longer interned.
-- 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 #26617: Fix crash when GC runs during weakref callbacks.
-Library
--------
+- Issue #27942: String constants now interned recursively in tuples and frozensets.
-- 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 #28289: ImportError.__init__ now resets not specified attributes.
-- Issue #28835: Fix a regression introduced in warnings.catch_warnings():
- call warnings.showwarning() if it was overriden inside the context manager.
+- Issue #21578: Fixed misleading error message when ImportError called with
+ invalid keyword args.
-- 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 #28203: Fix incorrect type in complex(1.0, {2:3}) error message.
+ Patch by Soumya Sharma.
-- Issue #24142: Reading a corrupt config file left configparser in an
- invalid state. Original patch by Florian Höch.
+- Issue #28086: Single var-positional argument of tuple subtype was passed
+ unscathed to the C-defined function. Now it is converted to exact tuple.
-- Issue #28843: Fix asyncio C Task to handle exceptions __traceback__.
+- Issue #28214: Now __set_name__ is looked up on the class instead of the
+ instance.
-C API
------
+- Issue #27955: Fallback on reading /dev/urandom device when the getrandom()
+ syscall fails with EPERM, for example when blocked by SECCOMP.
-- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions.
+- Issue #28192: Don't import readline in isolated mode.
-Documentation
--------------
+- Issue #27441: Remove some redundant assignments to ob_size in longobject.c.
+ Thanks Oren Milman.
-- 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 #27222: Clean up redundant code in long_rshift function. Thanks
+ Oren Milman.
-Tools/Demos
------------
+- Upgrade internal unicode databases to Unicode version 9.0.0.
-- Issue #28023: Fix python-gdb.py didn't support new dict implementation.
+- Issue #28131: Fix a regression in zipimport's compile_source(). zipimport
+ should use the same optimization level as the interpreter.
+- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly
+ optimize memcpy().
-What's New in Python 3.6.0 beta 4
-=================================
+- Issue #28120: Fix dict.pop() for splitted dictionary when trying to remove a
+ "pending key" (Not yet inserted in split-table). Patch by Xiang Zhang.
-*Release date: 2016-11-21*
+- Issue #26182: Raise DeprecationWarning when async and await keywords are
+ used as variable/attribute/class/function name.
-Core and Builtins
------------------
+- Issue #26182: Fix a refleak in code that raises DeprecationWarning.
-- Issue #28532: Show sys.version when -V option is supplied twice.
+- Issue #28721: Fix asynchronous generators aclose() and athrow() to
+ handle StopAsyncIteration propagation properly.
-- 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 #26110: Speed-up method calls: add LOAD_METHOD and CALL_METHOD
+ opcodes.
-- Issue #28746: Fix the set_inheritable() file descriptor method on platforms
- that do not have the ioctl FIOCLEX and FIONCLEX commands.
+Library
+-------
-- Issue #26920: Fix not getting the locale's charset upon initializing the
- interpreter, on platforms that do not have langinfo.
++- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that
++ doesn't own its elements as limits.
+
-- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
- when decode astral characters. Patch by Xiang Zhang.
+- Issue #16255: subprocess.Popen uses /system/bin/sh on Android as the shell,
+ instead of /bin/sh.
-- Issue #19398: Extra slash no longer added to sys.path components in case of
- empty compile-time PYTHONPATH components.
+- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
+ forkserver process if a preloaded module instantiated some
+ multiprocessing objects such as locks.
-- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%.
+- Issue #26937: The chown() method of the tarfile.TarFile class does not fail
+ now when the grp module cannot be imported, as for example on Android
+ platforms.
-- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
- Patch by Xiang Zhang.
+- Issue #28847: dbm.dumb now supports reading read-only files and no longer
+ writes the index file when it is not changed. A deprecation warning is now
+ emitted if the index file is missed and recreated in the 'r' and 'w' modes
+ (will be an error in future Python releases).
-- 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 #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in
+ re.sub() replacement templates regular expressions now are errors.
-- Issue #26182: Fix a refleak in code that raises DeprecationWarning.
+- Issue #28835: Fix a regression introduced in warnings.catch_warnings():
+ call warnings.showwarning() if it was overriden inside the context manager.
-- Issue #28721: Fix asynchronous generators aclose() and athrow() to
- handle StopAsyncIteration propagation properly.
+- 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.
-Library
--------
+- Issue #28740: Add sys.getandroidapilevel(): return the build time API version
+ of Android as an integer. Function only available on Android.
- 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