]> granicus.if.org Git - python/commitdiff
Issue #28427: old keys should not remove new values from
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 27 Dec 2016 13:23:43 +0000 (14:23 +0100)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 27 Dec 2016 13:23:43 +0000 (14:23 +0100)
WeakValueDictionary when collecting from another thread.

1  2 
Include/dictobject.h
Lib/test/test_weakref.py
Misc/NEWS
Modules/clinic/_weakref.c.h
Objects/dictobject.c

Simple merge
Simple merge
diff --cc Misc/NEWS
index f3d8e419c37ca9a5dc00674eeb0dada4f49d625d,d11136d78e82c11b33d3e637c46f474e9f65e5e3..767f3e3b83745049604b6bd4106f676deb7631c6
+++ b/Misc/NEWS
@@@ -31,1959 -24,2011 +31,1962 @@@ Core and Builtin
  - 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.
 +- Issue #28918: Fix the cross compilation of xxlimited when Python has been
 +  built with Py_DEBUG defined.
  
 -- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
 -  when decode astral characters.  Patch by Xiang Zhang.
 +- Issue #28731: Optimize _PyDict_NewPresized() to create correct size dict.
 +  Improve speed of dict literal with constant keys up to 30%.
  
 -- Issue #19398: Extra slash no longer added to sys.path components in case of
 -  empty compile-time PYTHONPATH components.
 +Library
 +-------
  
 -- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
 -  build.
++- Issue #28427: old keys should not remove new values from
++  WeakValueDictionary when collecting from another thread.
 -- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
 -  loss in PyTraceBack_Here().
 +- Issue 28923: Remove editor artifacts from Tix.py.
  
 -- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters().
 -  Patch by Xiang Zhang.
 +- Issue #29055:  Neaten-up empty population error on random.choice()
 +  by suppressing the upstream exception.
  
 -- Issue #28376: The type of long range iterator is now registered as Iterator.
 -  Patch by Oren Milman.
 +- Issue #28871: Fixed a crash when deallocate deep ElementTree.
  
 -- Issue #28376: The constructor of range_iterator now checks that step is not 0.
 -  Patch by Oren Milman.
 +- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and
 +  WeakValueDictionary.pop() when a GC collection happens in another
 +  thread.
  
 -- Issue #26906: Resolving special methods of uninitialized type now causes
 -  implicit initialization of the type instead of a fail.
 +- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that
 +  doesn't own its elements as limits.
  
 -- Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
 -  Original patch by Niklas Koep.
 +- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
 +  forkserver process if a preloaded module instantiated some
 +  multiprocessing objects such as locks.
  
 -- Issue #24098: Fixed possible crash when AST is changed in process of
 -  compiling it.
 +- Issue #28847: dbm.dumb now supports reading read-only files and no longer
 +  writes the index file when it is not changed.
  
 -- Issue #28350: String constants with null character no longer interned.
 +- 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 #26617: Fix crash when GC runs during weakref callbacks.
 +Windows
 +-------
  
 -- Issue #27942: String constants now interned recursively in tuples and frozensets.
 +- Issue #25778: winreg does not truncate string correctly (Patch by Eryk Sun)
  
 -- Issue #21578: Fixed misleading error message when ImportError called with
 -  invalid keyword args.
 +- Issue #28896: Deprecate WindowsRegistryFinder and disable it by default.
  
 -- Issue #28203: Fix incorrect type in error message from
 -  ``complex(1.0, {2:3})``. Patch by Soumya Sharma.
 +C API
 +-----
  
 -- Issue #27955: Fallback on reading /dev/urandom device when the getrandom()
 -  syscall fails with EPERM, for example when blocked by SECCOMP.
 +- 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.
  
 -- Issue #28131: Fix a regression in zipimport's compile_source().  zipimport
 -  should use the same optimization level as the interpreter.
 +Tests
 +-----
  
 -- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when
 -  Python is compiled with NSMALLPOSINTS = 0.
 +- Issue #28950: Disallow -j0 to be combined with -T/-l in regrtest
 +  command line arguments.
  
 -- Issue #25758: Prevents zipimport from unnecessarily encoding a filename
 -  (patch by Eryk Sun)
 +- Issue #28683: Fix the tests that bind() a unix socket and raise
 +  PermissionError on Android for a non-root user.
  
 -- Issue #28189: dictitems_contains no longer swallows compare errors.
 -  (Patch by Xiang Zhang)
 +- Issue #26939: Add the support.setswitchinterval() function to fix
 +  test_functools hanging on the Android armv7 qemu emulator.
  
 -- Issue #27812: Properly clear out a generator's frame's backreference to the
 -  generator to prevent crashes in frame.clear().
 +Build
 +-----
  
 -- Issue #27811: Fix a crash when a coroutine that has not been awaited is
 -  finalized with warnings-as-errors enabled.
 +- Issue #23903: Added missed names to PC/python3.def.
  
 -- 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 #28762: lockf() is available on Android API level 24, but the F_LOCK
 +  macro is not defined in android-ndk-r13.
  
 -- Issue #26020: set literal evaluation order did not match documented behaviour.
 +- 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 #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 #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 #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 #28849: Do not define sys.implementation._multiarch on Android.
  
 -- 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 #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.
 +What's New in Python 3.6.0?
 +===========================
  
 -- 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.
 +*Release date: 2016-12-23*
  
 -- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows.
 +- No changes since release candidate 2
  
 -- Issue #27514: Make having too many statically nested blocks a SyntaxError
 -  instead of SystemError.
  
 -- Issue #27473: Fixed possible integer overflow in bytes and bytearray
 -  concatenations.  Patch by Xiang Zhang.
 +What's New in Python 3.6.0 release candidate 2?
 +===============================================
  
 -- Issue #27507: Add integer overflow check in bytearray.extend().  Patch by
 -  Xiang Zhang.
 +*Release date: 2016-12-16*
  
 -- Issue #27581: Don't rely on wrapping for overflow check in
 -  PySequence_Tuple().  Patch by Xiang Zhang.
 +Core and Builtins
 +-----------------
  
 -- Issue #27443: __length_hint__() of bytearray iterators no longer return a
 -  negative integer for a resized bytearray.
 +- 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 #27942: Fix memory leak in codeobject.c
 +- Issue #28990: Fix asyncio SSL hanging if connection is closed before
 +  handshake is completed. (Patch by HoHo-Ho)
  
 -Library
 --------
 +Tools/Demos
 +-----------
  
 -- Issue #28427: old keys should not remove new values from
 -  WeakValueDictionary when collecting from another thread.
 +- Issue #28770: Fix python-gdb.py for fastcalls.
  
 -- Issue 28923: Remove editor artifacts from Tix.py.
 +Windows
 +-------
  
 -- Issue #28871: Fixed a crash when deallocate deep ElementTree.
 +- Issue #28896: Deprecate WindowsRegistryFinder.
  
 -- Issue #19542: Fix bugs in WeakValueDictionary.setdefault() and
 -  WeakValueDictionary.pop() when a GC collection happens in another
 -  thread.
 +Build
 +-----
  
 -- Issue #20191: Fixed a crash in resource.prlimit() when pass a sequence that
 -  doesn't own its elements as limits.
 +- Issue #28898: Prevent gdb build errors due to HAVE_LONG_LONG redefinition.
  
 -- Issue #28779: multiprocessing.set_forkserver_preload() would crash the
 -  forkserver process if a preloaded module instantiated some
 -  multiprocessing objects such as locks.
  
 -- Issue #28847: dbm.dumb now supports reading read-only files and no longer
 -  writes the index file when it is not changed.
 +What's New in Python 3.6.0 release candidate 1?
 +===============================================
  
 -- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and
 -  from_buffer_copy() methods on abstract classes like Array.
 +*Release date: 2016-12-06*
  
 -- Issue #28732: Fix crash in os.spawnv() with no elements in args
 +Core and Builtins
 +-----------------
  
 -- Issue #28485: Always raise ValueError for negative
 -  compileall.compile_dir(workers=...) parameter, even when multithreading is
 -  unavailable.
 +- 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 #28387: Fixed possible crash in _io.TextIOWrapper deallocator when
 -  the garbage collector is invoked in other thread.  Based on patch by
 -  Sebastian Cufre.
 +- 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 #27517: LZMA compressor and decompressor no longer raise exceptions if
 -  given empty data twice.  Patch by Benjamin Fogle.
 +- 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 #28549: Fixed segfault in curses's addch() with ncurses6.
 +Library
 +-------
  
 -- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar
 -  file with compression before trying to open it without compression.  Otherwise
 -  it had 50% chance failed with ignore_zeros=True.
 +- 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 #23262: The webbrowser module now supports Firefox 36+ and derived
 -  browsers.  Based on patch by Oleg Broytman.
 +- Issue #28835: Fix a regression introduced in warnings.catch_warnings():
 +  call warnings.showwarning() if it was overriden inside the context manager.
  
 -- Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
 -  by representing the scale as float value internally in Tk.  tkinter.IntVar
 -  now works if float value is set to underlying Tk variable.
 +- 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 #28255: calendar.TextCalendar().prmonth() no longer prints a space
 -  at the start of new line after printing a month's calendar.  Patch by
 -  Xiang Zhang.
 +- Issue #24142: Reading a corrupt config file left configparser in an
 +  invalid state.  Original patch by Florian Höch.
  
 -- Issue #20491: The textwrap.TextWrapper class now honors non-breaking spaces.
 -  Based on patch by Kaarle Ritvanen.
 +- Issue #28843: Fix asyncio C Task to handle exceptions __traceback__.
  
 -- Issue #28353: os.fwalk() no longer fails on broken links.
 +C API
 +-----
  
 -- Issue #25464: Fixed HList.header_exists() in tkinter.tix module by addin
 -  a workaround to Tix library bug.
 +- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions.
  
 -- Issue #28488: shutil.make_archive() no longer add entry "./" to ZIP archive.
 +Documentation
 +-------------
  
 -- Issue #24452: Make webbrowser support Chrome on Mac OS X.
 +- 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 #20766: Fix references leaked by pdb in the handling of SIGINT
 -  handlers.
 +Tools/Demos
 +-----------
  
 -- Issue #26293: Fixed writing ZIP files that starts not from the start of the
 -  file.  Offsets in ZIP file now are relative to the start of the archive in
 -  conforming to the specification.
 +- Issue #28023: Fix python-gdb.py didn't support new dict implementation.
  
 -- Issue #28321: Fixed writing non-BMP characters with binary format in plistlib.
  
 -- Issue #28322: Fixed possible crashes when unpickle itertools objects from
 -  incorrect pickle data.  Based on patch by John Leitch.
 +What's New in Python 3.6.0 beta 4?
 +==================================
  
 -- Fix possible integer overflows and crashes in the mmap module with unusual
 -  usage patterns.
 +*Release date: 2016-11-21*
  
 -- Issue #1703178: Fix the ability to pass the --link-objects option to the
 -  distutils build_ext command.
 +Core and Builtins
 +-----------------
  
 -- Issue #28253: Fixed calendar functions for extreme months: 0001-01
 -  and 9999-12.
 +- Issue #28532: Show sys.version when -V option is supplied twice.
  
 -  Methods itermonthdays() and itermonthdays2() are reimplemented so
 -  that they don't call itermonthdates() which can cause datetime.date
 -  under/overflow.
 +- 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 #28275: Fixed possible use after free in the decompress()
 -  methods of the LZMADecompressor and BZ2Decompressor classes.
 -  Original patch by John Leitch.
 +- Issue #28746: Fix the set_inheritable() file descriptor method on platforms
 +  that do not have the ioctl FIOCLEX and FIONCLEX commands.
  
 -- Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation()
 -  if pass invalid string-like object as a name.  Patch by Xiang Zhang.
 +- Issue #26920: Fix not getting the locale's charset upon initializing the
 +  interpreter, on platforms that do not have langinfo.
  
 -- Issue #18893: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py.
 -  Patch by Madison May.
 +- Issue #28648: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
 +  when decode astral characters.  Patch by Xiang Zhang.
  
 -- Issue #27611: Fixed support of default root window in the tkinter.tix module.
 +- Issue #19398: Extra slash no longer added to sys.path components in case of
 +  empty compile-time PYTHONPATH components.
  
 -- Issue #27348: In the traceback module, restore the formatting of exception
 -  messages like "Exception: None".  This fixes a regression introduced in
 -  3.5a2.
 +- Issue #28665:  Improve speed of the STORE_DEREF opcode by 40%.
  
 -- Issue #25651: Allow falsy values to be used for msg parameter of subTest().
 +- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
 +  Patch by Xiang Zhang.
  
 -- Issue #27932: Prevent memory leak in win32_ver().
 +- 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.
  
 -- Fix UnboundLocalError in socket._sendfile_use_sendfile.
 +- Issue #26182: Fix a refleak in code that raises DeprecationWarning.
  
 -- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of
 -  os.stat().  Patch by Eryk Sun.
 +- Issue #28721: Fix asynchronous generators aclose() and athrow() to
 +  handle StopAsyncIteration propagation properly.
  
 -- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when
 -  an empty bytestring is passed.
 +Library
 +-------
  
 -- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.
 +- 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 #25895: Enable WebSocket URL schemes in urllib.parse.urljoin.
 -  Patch by Gergely Imreh and Markus Holtermann.
 +- Issue #28752: Restored the __reduce__() methods of datetime objects.
  
 -- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp().
 +- 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 #19003:m email.generator now replaces only \r and/or \n line
 -  endings, per the RFC, instead of all unicode line endings.
 +- Issue #20572: The subprocess.Popen.wait method's undocumented
 +  endtime parameter now raises a DeprecationWarning.
  
 -- Issue #28019: itertools.count() no longer rounds non-integer step in range
 -  between 1.0 and 2.0 to 1.
 +- Issue #25659: In ctypes, prevent a crash calling the from_buffer() and
 +  from_buffer_copy() methods on abstract classes like Array.
  
 -- Issue #25969: Update the lib2to3 grammar to handle the unpacking
 -  generalizations added in 3.5.
 +- Issue #19717: Makes Path.resolve() succeed on paths that do not exist.
 +  Patch by Vajrasky Kok
  
 -- Issue #14977: mailcap now respects the order of the lines in the mailcap
 -  files ("first match"), as required by RFC 1542.  Patch by Michael Lazar.
 +- Issue #28563: Fixed possible DoS and arbitrary code execution when handle
 +  plural form selections in the gettext module.  The expression parser now
 +  supports exact syntax supported by GNU gettext.
  
 -- Issue #24594: Validates persist parameter when opening MSI database
 +- Issue #28387: Fixed possible crash in _io.TextIOWrapper deallocator when
 +  the garbage collector is invoked in other thread.  Based on patch by
 +  Sebastian Cufre.
  
 -- Issue #17582: xml.etree.ElementTree nows preserves whitespaces in attributes
 -  (Patch by Duane Griffin.  Reviewed and approved by Stefan Behnel.)
 +- Issue #28600: Optimize loop.call_soon.
  
 -- Issue #28047: Fixed calculation of line length used for the base64 CTE
 -  in the new email policies.
 +- Issue #28613: Fix get_event_loop() return the current loop if
 +  called from coroutines/callbacks.
  
 -- Issue #27445: Don't pass str(_charset) to MIMEText.set_payload().
 -  Patch by Claude Paroz.
 +- Issue #28634: Fix asyncio.isfuture() to support unittest.Mock.
  
 -- Issue #22450: urllib now includes an "Accept: */*" header among the
 -  default headers.  This makes the results of REST API requests more
 -  consistent and predictable especially when proxy servers are involved.
 +- Issue #26081: Fix refleak in _asyncio.Future.__iter__().throw.
  
 -- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file
 -  between runs given the same Grammar.txt input regardless of the hash
 -  randomization setting.
 +- Issue #28639: Fix inspect.isawaitable to always return bool
 +  Patch by Justin Mayfield.
  
 -- Issue #27570: Avoid zero-length memcpy() etc calls with null source
 -  pointers in the "ctypes" and "array" modules.
 +- Issue #28652: Make loop methods reject socket kinds they do not support.
  
 -- Issue #22233: Break email header lines *only* on the RFC specified CR and LF
 -  characters, not on arbitrary unicode line breaks.  This also fixes a bug in
 -  HTTP header parsing.
 +- Issue #28653: Fix a refleak in functools.lru_cache.
  
 -- Issue 27988: Fix email iter_attachments incorrect mutation of payload list.
 +- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects.
  
 -- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name
 -  fields in X.509 certs.
 +- Issue #28704: Fix create_unix_server to support Path-like objects
 +  (PEP 519).
  
 -- Issue #27850: Remove 3DES from ssl module's default cipher list to counter
 -  measure sweet32 attack (CVE-2016-2183).
 +- Issue #28720: Add collections.abc.AsyncGenerator.
  
 -- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list.
 -  (Required OpenSSL 1.1.0 or LibreSSL).
 +Documentation
 +-------------
  
 -- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0.
 +- Issue #28513: Documented command-line interface of zipfile.
  
 -- Remove support for passing a file descriptor to os.access. It never worked but
 -  previously didn't raise.
 +Tests
 +-----
  
 -- Issue #12885: Fix error when distutils encounters symlink.
 +- Issue #28666: Now test.support.rmtree is able to remove unwritable or
 +  unreadable directories.
  
 -- Issue #27881: Fixed possible bugs when setting sqlite3.Connection.isolation_level.
 -  Based on patch by Xiang Zhang.
 +- Issue #23839: Various caches now are cleared before running every test file.
  
 -- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory
 -  creates not a cursor.  Patch by Xiang Zhang.
 +Build
 +-----
  
 -- Issue #19884: Avoid spurious output on OS X with Gnu Readline.
 +- Issue #10656: Fix out-of-tree building on AIX.  Patch by Tristan Carel and
 +  Michael Haubenwallner.
  
 -- Issue #27706: Restore deterministic behavior of random.Random().seed()
 -  for string seeds using seeding version 1.  Allows sequences of calls
 -  to random() to exactly match those obtained in Python 2.
 -  Patch by Nofar Schnider.
 +- Issue #26359: Rename --with-optimiations to --enable-optimizations.
  
 -- Issue #10513: Fix a regression in Connection.commit().  Statements should
 -  not be reset after a commit.
 +- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS.
 +  Patch by Gareth Rees.
  
 -- A new version of typing.py from https://github.com/python/typing:
 -  - Collection (only for 3.6) (Issue #27598)
 -  - Add FrozenSet to __all__ (upstream #261)
 -  - fix crash in _get_type_vars() (upstream #259)
 -  - Remove the dict constraint in ForwardRef._eval_type (upstream #252)
  
 -- Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case
 -  of negative exponent and negative base.
 +What's New in Python 3.6.0 beta 3?
 +==================================
  
 -- Issue #21718: cursor.description is now available for queries using CTEs.
 +*Release date: 2016-10-31*
  
 -- Issue #2466: posixpath.ismount now correctly recognizes mount points which
 -  the user does not have permission to access.
 +Core and Builtins
 +-----------------
  
 -- Issue #27773: Correct some memory management errors server_hostname in
 -  _ssl.wrap_socket().
 +- 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.
  
 -- Issue #26750: unittest.mock.create_autospec() now works properly for
 -  subclasses of property() and other data descriptors.
 +- Issue #28509: dict.update() no longer allocate unnecessary large memory.
  
 -- In the curses module, raise an error if window.getstr() or window.instr() is
 -  passed a negative value.
 +- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
 +  build.
  
 -- Issue #27783: Fix possible usage of uninitialized memory in
 -  operator.methodcaller.
 +- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused
 +  keeping unreachable code.
  
 -- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
 +- Issue #28214: Improved exception reporting for problematic __set_name__
 +  attributes.
  
 -- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
 +- Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception
 +  loss in PyTraceBack_Here().
  
 -- Issue #27758: Fix possible integer overflow in the _csv module for large
 -  record lengths.
 +- Issue #28471: Fix "Python memory allocator called without holding the GIL"
 +  crash in socket.setblocking.
  
 -- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
 -  HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
 -  that the script is in CGI mode.
 +Library
 +-------
  
 -- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
 +- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if
 +  given empty data twice.  Patch by Benjamin Fogle.
  
 -- Issue #27130: In the "zlib" module, fix handling of large buffers
 -  (typically 4 GiB) when compressing and decompressing.  Previously, inputs
 -  were limited to 4 GiB, and compression and decompression operations did not
 -  properly handle results of 4 GiB.
 +- Issue #28549: Fixed segfault in curses's addch() with ncurses6.
  
 -- Issue #27533: Release GIL in nt._isdir
 +- Issue #28449: tarfile.open() with mode "r" or "r:" now tries to open a tar
 +  file with compression before trying to open it without compression.  Otherwise
 +  it had 50% chance failed with ignore_zeros=True.
  
 -- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
 -  Original patch by Alexandre Vassalotti.
 +- Issue #23262: The webbrowser module now supports Firefox 36+ and derived
 +  browsers.  Based on patch by Oleg Broytman.
  
 -- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
 +- Issue #27939: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
 +  by representing the scale as float value internally in Tk.  tkinter.IntVar
 +  now works if float value is set to underlying Tk variable.
  
 -- Issue #26844: Fix error message for imp.find_module() to refer to 'path'
 -  instead of 'name'. Patch by Lev Maximov.
 +- Issue #18844: The various ways of specifying weights for random.choices()
 +  now produce the same result sequences.
  
 -- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
 -  an error about unclean EOF.
 +- Issue #28255: calendar.TextCalendar().prmonth() no longer prints a space
 +  at the start of new line after printing a month's calendar.  Patch by
 +  Xiang Zhang.
  
 -- Issue #27466: Change time format returned by http.cookie.time2netscape,
 -  confirming the netscape cookie format and making it consistent with
 -  documentation.
 +- Issue #20491: The textwrap.TextWrapper class now honors non-breaking spaces.
 +  Based on patch by Kaarle Ritvanen.
  
 -- Issue #26664: Fix activate.fish by removing mis-use of ``$``.
 +- Issue #28353: os.fwalk() no longer fails on broken links.
  
 -- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong
 -  mode no longer break tracing, trace_vinfo() now always returns a list of
 -  pairs of strings, tracing in the "u" mode now works.
 +- Issue #28430: Fix iterator of C implemented asyncio.Future doesn't accept
 +  non-None value is passed to it.send(val).
  
 -- Fix a scoping issue in importlib.util.LazyLoader which triggered an
 -  UnboundLocalError when lazy-loading a module that was already put into
 -  sys.modules.
 +- Issue #27025: Generated names for Tkinter widgets now start by the "!" prefix
 +  for readability (was "`").
  
 -- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct().
 +- Issue #25464: Fixed HList.header_exists() in tkinter.tix module by addin
 +  a workaround to Tix library bug.
  
 -- Issue #26754: Some functions (compile() etc) accepted a filename argument
 -  encoded as an iterable of integers. Now only strings and byte-like objects
 -  are accepted.
 +- Issue #28488: shutil.make_archive() no longer adds entry "./" to ZIP archive.
  
 -- Issue #27048: Prevents distutils failing on Windows when environment
 -  variables contain non-ASCII characters
 +- Issue #25953: re.sub() now raises an error for invalid numerical group
 +  reference in replacement template even if the pattern is not found in
 +  the string.  Error message for invalid group reference now includes the
 +  group index and the position of the reference.
 +  Based on patch by SilentGhost.
  
 -- Issue #27330: Fixed possible leaks in the ctypes module.
 +- Issue #18219: Optimize csv.DictWriter for large number of columns.
 +  Patch by Mariatta Wijaya.
  
 -- Issue #27238: Got rid of bare excepts in the turtle module.  Original patch
 -  by Jelle Zijlstra.
 +- Issue #28448: Fix C implemented asyncio.Future didn't work on Windows.
  
 -- Issue #27122: When an exception is raised within the context being managed
 -  by a contextlib.ExitStack() and one of the exit stack generators
 -  catches and raises it in a chain, do not re-raise the original exception
 -  when exiting, let the new chained one through.  This avoids the PEP 479
 -  bug described in issue25782.
 +- Issue #28480: Fix error building socket module when multithreading is
 +  disabled.
  
 -- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on
 -  Linux.  Truncate size to INT_MAX and loop until we collected enough random
 -  bytes, instead of casting a directly Py_ssize_t to int.
 +- Issue #24452: Make webbrowser support Chrome on Mac OS X.
  
 -- Issue #26386: Fixed ttk.TreeView selection operations with item id's
 -  containing spaces.
 +- Issue #20766: Fix references leaked by pdb in the handling of SIGINT
 +  handlers.
  
 -- [Security] Issue #22636: Avoid shell injection problems with
 -  ctypes.util.find_library().
 +- Issue #28492: Fix how StopIteration exception is raised in _asyncio.Future.
  
 -- Issue #16182: Fix various functions in the "readline" module to use the
 -  locale encoding, and fix get_begidx() and get_endidx() to return code point
 -  indexes.
 +- Issue #28500: Fix asyncio to handle async gens GC from another thread.
  
 -- Issue #27392: Add loop.connect_accepted_socket().
 -  Patch by Jim Fulton.
 +- Issue #26923: Fix asyncio.Gather to refuse being cancelled once all
 +  children are done.
 +  Patch by Johannes Ebke.
  
 -- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
 -  Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
 +- Issue #26796: Don't configure the number of workers for default
 +  threadpool executor.
 +  Initial patch by Hans Lawrenz.
  
 -- Issue #21201: Improves readability of multiprocessing error message.  Thanks
 -  to Wojciech Walczak for patch.
 +- Issue #28544: Implement asyncio.Task in C.
  
 -- Issue #27456: asyncio: Set TCP_NODELAY by default.
 +Windows
 +-------
  
 -- Issue #27906: Fix socket accept exhaustion during high TCP traffic.
 -  Patch by Kevin Conway.
 +- Issue #28522: Fixes mishandled buffer reallocation in getpathp.c
  
 -- Issue #28174: Handle when SO_REUSEPORT isn't properly supported.
 -  Patch by Seth Michael Larson.
 +Build
 +-----
  
 -- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__.
 -  Patch by iceboy.
 +- Issue #28444: Fix missing extensions modules when cross compiling.
  
 -- Issue #26909: Fix slow pipes IO in asyncio.
 -  Patch by INADA Naoki.
 +- Issue #28208: Update Windows build and OS X installers to use SQLite 3.14.2.
  
 -- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect.
 +- Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j.
  
 -- Issue #27759: Fix selectors incorrectly retain invalid file descriptors.
 -  Patch by Mark Williams.
 +Tests
 +-----
  
 -- Issue #28368: Refuse monitoring processes if the child watcher has
 -  no loop attached.
 -  Patch by Vincent Michel.
 +- Issue #26944: Fix test_posix for Android where 'id -G' is entirely wrong or
 +  missing the effective gid.
  
 -- Issue #28369: Raise RuntimeError when transport's FD is used with
 -  add_reader, add_writer, etc.
 +- Issue #28409: regrtest: fix the parser of command line arguments.
  
 -- Issue #28370: Speedup asyncio.StreamReader.readexactly.
 -  Patch by Коренберг Марк.
  
 -- Issue #28371: Deprecate passing asyncio.Handles to run_in_executor.
 +What's New in Python 3.6.0 beta 2?
 +==================================
  
 -- Issue #28372: Fix asyncio to support formatting of non-python coroutines.
 +*Release date: 2016-10-10*
  
 -- Issue #28399: Remove UNIX socket from FS before binding.
 -  Patch by Коренберг Марк.
 +Core and Builtins
 +-----------------
  
 -- Issue #27972: Prohibit Tasks to await on themselves.
 +- Issue #28183: Optimize and cleanup dict iteration.
  
 -- Issue #26923: Fix asyncio.Gather to refuse being cancelled once all 
 -  children are done.
 -  Patch by Johannes Ebke.
 +- Issue #26081: Added C implementation of asyncio.Future.
 +  Original patch by Yury Selivanov.
  
 -- Issue #26796: Don't configure the number of workers for default 
 -  threadpool executor.
 -  Initial patch by Hans Lawrenz.
 +- Issue #28379: Added sanity checks and tests for PyUnicode_CopyCharacters().
 +  Patch by Xiang Zhang.
  
 -- Issue #28600: Optimize loop.call_soon().
 +- Issue #28376: The type of long range iterator is now registered as Iterator.
 +  Patch by Oren Milman.
  
 -- Issue #28613: Fix get_event_loop() return the current loop if 
 -  called from coroutines/callbacks.
 +- Issue #28376: Creating instances of range_iterator by calling range_iterator
 +  type now is deprecated.  Patch by Oren Milman.
  
 -- Issue #28639: Fix inspect.isawaitable to always return bool
 -  Patch by Justin Mayfield.
 +- Issue #28376: The constructor of range_iterator now checks that step is not 0.
 +  Patch by Oren Milman.
  
 -- Issue #28652: Make loop methods reject socket kinds they do not support.
 +- Issue #26906: Resolving special methods of uninitialized type now causes
 +  implicit initialization of the type instead of a fail.
  
 -- Issue #28653: Fix a refleak in functools.lru_cache.
 +- Issue #18287: PyType_Ready() now checks that tp_name is not NULL.
 +  Original patch by Niklas Koep.
  
 -- Issue #28703: Fix asyncio.iscoroutinefunction to handle Mock objects.
 +- Issue #24098: Fixed possible crash when AST is changed in process of
 +  compiling it.
  
 -- Issue #24142: Reading a corrupt config file left the parser in an
 -  invalid state.  Original patch by Florian Höch.
 +- Issue #28201: Dict reduces possibility of 2nd conflict in hash table when
 +  hashes have same lower bits.
  
 -- Issue #28990: Fix SSL hanging if connection is closed before handshake 
 -  completed.
 -  (Patch by HoHo-Ho)
 +- Issue #28350: String constants with null character no longer interned.
  
 -IDLE
 -----
 +- Issue #26617: Fix crash when GC runs during weakref callbacks.
  
 -- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
 -  Patch by Roger Serwy, updated by Bayard Randel.
 +- Issue #27942: String constants now interned recursively in tuples and frozensets.
  
 -- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
 +- Issue #21578: Fixed misleading error message when ImportError called with
 +  invalid keyword args.
  
 -- Add version to title of IDLE help window.
 +- Issue #28203: Fix incorrect type in complex(1.0, {2:3}) error message.
 +  Patch by Soumya Sharma.
  
 -- Issue #25564: In section on IDLE -- console differences, mention that
 -  using exec means that __builtins__ is defined for each statement.
 +- 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 #27714: text_textview and test_autocomplete now pass when re-run
 -  in the same process.  This occurs when test_idle fails when run with the
 -  -w option but without -jn.  Fix warning from test_config.
 +- Issue #28214: Now __set_name__ is looked up on the class instead of the
 +  instance.
  
 -- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
 -  Users must include the same imports required to run directly in Python.
 +- Issue #27955: Fallback on reading /dev/urandom device when the getrandom()
 +  syscall fails with EPERM, for example when blocked by SECCOMP.
  
 -- Issue #27452: add line counter and crc to IDLE configHandler test dump.
 +- Issue #28192: Don't import readline in isolated mode.
  
 -- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
 +- Upgrade internal unicode databases to Unicode version 9.0.0.
  
 -- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
 -  Previously, when IDLE was started from a console or by import, a cascade
 -  of warnings was emitted.  Patch by Serhiy Storchaka.
 +- Issue #28131: Fix a regression in zipimport's compile_source().  zipimport
 +  should use the same optimization level as the interpreter.
  
 -C API
 ------
 +- Issue #28126: Replace Py_MEMCPY with memcpy(). Visual Studio can properly
 +  optimize memcpy().
  
 -- Issue #28808: PyUnicode_CompareWithASCIIString() now never raises exceptions.
 +- 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.
  
 -- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
 -  an iterable of integers. Now only strings and bytes-like objects are accepted.
 +- Issue #26182: Raise DeprecationWarning when async and await keywords are
 +  used as variable/attribute/class/function name.
  
 -Documentation
 --------------
 +Library
 +-------
  
 -- Issue #28513: Documented command-line interface of zipfile.
 +- Issue #27998: Fixed bytes path support in os.scandir() on Windows.
 +  Patch by Eryk Sun.
  
 -Tests
 ------
 +- Issue #28317: The disassembler now decodes FORMAT_VALUE argument.
  
 -- Issue #28950: Disallow -j0 to be combined with -T/-l/-M in regrtest
 -  command line arguments.
 +- Issue #26293: Fixed writing ZIP files that starts not from the start of the
 +  file.  Offsets in ZIP file now are relative to the start of the archive in
 +  conforming to the specification.
  
 -- Issue #28666: Now test.support.rmtree is able to remove unwritable or
 -  unreadable directories.
 +- Issue #28380: unittest.mock Mock autospec functions now properly support
 +  assert_called, assert_not_called, and assert_called_once.
  
 -- Issue #23839: Various caches now are cleared before running every test file.
 +- Issue #27181 remove statistics.geometric_mean and defer until 3.7.
  
 -- Issue #28409: regrtest: fix the parser of command line arguments.
 +- Issue #28229: lzma module now supports pathlib.
  
 -- Issue #27787: Call gc.collect() before checking each test for "dangling
 -  threads", since the dangling threads are weak references.
 +- Issue #28321: Fixed writing non-BMP characters with binary format in plistlib.
  
 -- Issue #27369: In test_pyexpat, avoid testing an error message detail that
 -  changed in Expat 2.2.0.
 +- Issue #28225: bz2 module now supports pathlib.  Initial patch by Ethan Furman.
  
 -Tools/Demos
 ------------
 +- Issue #28227: gzip now supports pathlib.  Patch by Ethan Furman.
  
 -- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
 -  current "re" module, avoid invalid Python backslash escapes, and fix a bug
 -  parsing escaped C quote signs.
 +- Issue #27358: Optimized merging var-keyword arguments and improved error
 +  message when pass a non-mapping as a var-keyword argument.
  
 -- Issue #27332: Fixed the type of the first argument of module-level functions
 -  generated by Argument Clinic.  Patch by Petr Viktorin.
 +- Issue #28257: Improved error message when pass a non-iterable as
 +  a var-positional argument.  Added opcode BUILD_TUPLE_UNPACK_WITH_CALL.
  
 -- Issue #27418: Fixed Tools/importbench/importbench.py.
 +- Issue #28322: Fixed possible crashes when unpickle itertools objects from
 +  incorrect pickle data.  Based on patch by John Leitch.
  
 -Windows
 --------
 +- Issue #28228: imghdr now supports pathlib.
  
 -- Issue #28251: Improvements to help manuals on Windows.
 +- Issue #28226: compileall now supports pathlib.
  
 -- Issue #28110: launcher.msi has different product codes between 32-bit and
 -  64-bit
 +- Issue #28314: Fix function declaration (C flags) for the getiterator() method
 +  of xml.etree.ElementTree.Element.
  
 -- Issue #25144: Ensures TargetDir is set before continuing with custom
 -  install.
 +- Issue #28148: Stop using localtime() and gmtime() in the time
 +  module.
  
 -- Issue #27469: Adds a shell extension to the launcher so that drag and drop
 -  works correctly.
 +  Introduced platform independent _PyTime_localtime API that is
 +  similar to POSIX localtime_r, but available on all platforms.  Patch
 +  by Ed Schouten.
  
 -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest.
 +- Issue #28253: Fixed calendar functions for extreme months: 0001-01
 +  and 9999-12.
  
 -Build
 ------
 +  Methods itermonthdays() and itermonthdays2() are reimplemented so
 +  that they don't call itermonthdates() which can cause datetime.date
 +  under/overflow.
  
 -- Issue #23903: Added missed names to PC/python3.def.
 +- Issue #28275: Fixed possible use after free in the decompress()
 +  methods of the LZMADecompressor and BZ2Decompressor classes.
 +  Original patch by John Leitch.
  
 -- Issue #10656: Fix out-of-tree building on AIX.  Patch by Tristan Carel and
 -  Michael Haubenwallner.
 +- Issue #27897: Fixed possible crash in sqlite3.Connection.create_collation()
 +  if pass invalid string-like object as a name.  Patch by Xiang Zhang.
  
 -- Issue #26359: Rename --with-optimiations to --enable-optimizations.
 +- Issue #18844: random.choices() now has k as a keyword-only argument
 +  to improve the readability of common cases and come into line
 +  with the signature used in other languages.
  
 -- Issue #28444: Fix missing extensions modules when cross compiling.
 +- Issue #18893: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py.
 +  Patch by Madison May.
  
 -- Issue #28248: Update Windows build and OS X installers to use OpenSSL 1.0.2j.
 +- Issue #27611: Fixed support of default root window in the tkinter.tix module.
 +  Added the master parameter in the DisplayStyle constructor.
  
 -- Issue #28258: Fixed build with Estonian locale (python-config and distclean
 -  targets in Makefile).  Patch by Arfrever Frehtes Taifersar Arahesis.
 +- Issue #27348: In the traceback module, restore the formatting of exception
 +  messages like "Exception: None".  This fixes a regression introduced in
 +  3.5a2.
  
 -- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
 +- Issue #25651: Allow falsy values to be used for msg parameter of subTest().
  
 -- Issue #28066: Fix the logic that searches build directories for generated
 -  include files when building outside the source tree.
 +- Issue #27778: Fix a memory leak in os.getrandom() when the getrandom() is
 +  interrupted by a signal and a signal handler raises a Python exception.
  
 -- Issue #15819: Remove redundant include search directory option for building
 -  outside the source tree.
 +- Issue #28200: Fix memory leak on Windows in the os module (fix
 +  path_converter() function).
  
 -- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach)
 +- Issue #25400: RobotFileParser now correctly returns default values for
 +  crawl_delay and request_rate.  Initial patch by Peter Wirtz.
  
 -- Issue #27705: Update message in validate_ucrtbase.py
 +- Issue #27932: Prevent memory leak in win32_ver().
  
 -- Issue #27983: Cause lack of llvm-profdata tool when using clang as
 -  required for PGO linking to be a configure time error rather than
 -  make time when --with-optimizations is enabled.  Also improve our
 -  ability to find the llvm-profdata tool on MacOS and some Linuxes.
 +- Fix UnboundLocalError in socket._sendfile_use_sendfile.
  
 -- Issue #26307: The profile-opt build now applies PGO to the built-in modules.
 +- Issue #28075: Check for ERROR_ACCESS_DENIED in Windows implementation of
 +  os.stat().  Patch by Eryk Sun.
  
 -- Issue #26359: Add the --with-optimizations configure flag.
 +- Issue #22493: Warning message emitted by using inline flags in the middle of
 +  regular expression now contains a (truncated) regex pattern.
 +  Patch by Tim Graham.
  
 -- Issue #27713: Suppress spurious build warnings when updating importlib's
 -  bootstrap files.  Patch by Xiang Zhang
 +- Issue #25270: Prevent codecs.escape_encode() from raising SystemError when
 +  an empty bytestring is passed.
  
 -- Issue #25825: Correct the references to Modules/python.exp and ld_so_aix,
 -  which are required on AIX.  This updates references to an installation path
 -  that was changed in 3.2a4, and undoes changed references to the build tree
 -  that were made in 3.5.0a1.
 +- Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.
  
 -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
 -  Chi Hsuan Yen.
 +- Issue #25895: Enable WebSocket URL schemes in urllib.parse.urljoin.
 +  Patch by Gergely Imreh and Markus Holtermann.
  
 -- Issue #27641: The configure script now inserts comments into the makefile
 -  to prevent the pgen and _freeze_importlib executables from being cross-
 -  compiled.
 +- Issue #28114: Fix a crash in parse_envlist() when env contains byte strings.
 +  Patch by Eryk Sun.
  
 -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
 -  used for file generation during the build.
 +- Issue #27599: Fixed buffer overrun in binascii.b2a_qp() and binascii.a2b_qp().
  
 -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X.
 -  Also update FreedBSD version checks for the original ctype UTF-8 workaround.
 +- Issue #27906: Fix socket accept exhaustion during high TCP traffic.
 +  Patch by Kevin Conway.
  
 -- Issue #28676: Prevent missing 'getentropy' declaration warning on macOS.
 -  Patch by Gareth Rees.
 +- Issue #28174: Handle when SO_REUSEPORT isn't properly supported.
 +  Patch by Seth Michael Larson.
  
 +- Issue #26654: Inspect functools.partial in asyncio.Handle.__repr__.
 +  Patch by iceboy.
  
 -What's New in Python 3.5.2?
 -===========================
 +- Issue #26909: Fix slow pipes IO in asyncio.
 +  Patch by INADA Naoki.
  
 -Release date: 2016-06-26
 +- Issue #28176: Fix callbacks race in asyncio.SelectorLoop.sock_connect.
  
 -Core and Builtins
 ------------------
 +- Issue #27759: Fix selectors incorrectly retain invalid file descriptors.
 +  Patch by Mark Williams.
  
 -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
 +- Issue #28368: Refuse monitoring processes if the child watcher has no
 +  loop attached.
 +  Patch by Vincent Michel.
  
 -Tests
 ------
 +- Issue #28369: Raise RuntimeError when transport's FD is used with
 +  add_reader, add_writer, etc.
  
 -- Issue #26867: Ubuntu's openssl OP_NO_SSLv3 is forced on by default; fix test.
 +- Issue #28370: Speedup asyncio.StreamReader.readexactly.
 +  Patch by Коренберг Марк.
  
 -IDLE
 -----
 +- Issue #28371: Deprecate passing asyncio.Handles to run_in_executor.
  
 -- Issue #27365: Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2.
 +- Issue #28372: Fix asyncio to support formatting of non-python coroutines.
  
 +- Issue #28399: Remove UNIX socket from FS before binding.
 +  Patch by Коренберг Марк.
  
 -What's New in Python 3.5.2 release candidate 1?
 -===============================================
 +- Issue #27972: Prohibit Tasks to await on themselves.
  
 -Release date: 2016-06-12
 +Windows
 +-------
  
 -Core and Builtins
 ------------------
 +- Issue #28402: Adds signed catalog files for stdlib on Windows.
  
 -- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a
 -  negative number without setting an exception.
 +- Issue #28333: Enables Unicode for ps1/ps2 and input() prompts. (Patch by
 +  Eryk Sun)
  
 -- Issue #20041: Fixed TypeError when frame.f_trace is set to None.
 -  Patch by Xavier de Gaye.
 +- Issue #28251: Improvements to help manuals on Windows.
  
 -- Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N"
 -  format unit.
 +- Issue #28110: launcher.msi has different product codes between 32-bit and
 +  64-bit
  
 -- Issue #26991: Fix possible refleak when creating a function with annotations.
 +- Issue #28161: Opening CON for write access fails
  
 -- Issue #27039: Fixed bytearray.remove() for values greater than 127.  Patch by
 -  Joe Jevnik.
 +- Issue #28162: WindowsConsoleIO readall() fails if first line starts with
 +  Ctrl+Z
  
 -- Issue #23640: int.from_bytes() no longer bypasses constructors for subclasses.
 +- Issue #28163: WindowsConsoleIO fileno() passes wrong flags to
 +  _open_osfhandle
  
 -- Issue #26811: gc.get_objects() no longer contains a broken tuple with NULL
 -  pointer.
 +- Issue #28164: _PyIO_get_console_type fails for various paths
  
 -- Issue #20120: Use RawConfigParser for .pypirc parsing,
 -  removing support for interpolation unintentionally added
 -  with move to Python 3. Behavior no longer does any
 -  interpolation in .pypirc files, matching behavior in Python
 -  2.7 and Setuptools 19.0.
 +- Issue #28137: Renames Windows path file to ._pth
  
 -- Issue #26659: Make the builtin slice type support cycle collection.
 +- Issue #28138: Windows ._pth file should allow import site
  
 -- Issue #26718: super.__init__ no longer leaks memory if called multiple times.
 -  NOTE: A direct call of super.__init__ is not endorsed!
 +C API
 +-----
  
 -- Issue #25339: PYTHONIOENCODING now has priority over locale in setting the
 -  error handler for stdin and stdout.
 +- Issue #28426: Deprecated undocumented functions PyUnicode_AsEncodedObject(),
 +  PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and
 +  PyUnicode_AsEncodedUnicode().
  
 -- Issue #26494: Fixed crash on iterating exhausting iterators.
 -  Affected classes are generic sequence iterators, iterators of str, bytes,
 -  bytearray, list, tuple, set, frozenset, dict, OrderedDict, corresponding
 -  views and os.scandir() iterator.
 +Build
 +-----
  
 -- Issue #26581: If coding cookie is specified multiple times on a line in
 -  Python source code file, only the first one is taken to account.
 +- Issue #28258: Fixed build with Estonian locale (python-config and distclean
 +  targets in Makefile).  Patch by Arfrever Frehtes Taifersar Arahesis.
  
 -- Issue #26464: Fix str.translate() when string is ASCII and first replacements
 -  removes character, but next replacement uses a non-ASCII character or a
 -  string longer than 1 character. Regression introduced in Python 3.5.0.
 +- Issue #26661: setup.py now detects system libffi with multiarch wrapper.
  
 -- Issue #22836: Ensure exception reports from PyErr_Display() and
 -  PyErr_WriteUnraisable() are sensible even when formatting them produces
 -  secondary errors.  This affects the reports produced by
 -  sys.__excepthook__() and when __del__() raises an exception.
 +- Issue #15819: Remove redundant include search directory option for building
 +  outside the source tree.
  
 -- Issue #26302: Correct behavior to reject comma as a legal character for
 -  cookie names.
 +Tests
 +-----
  
 -- Issue #4806: Avoid masking the original TypeError exception when using star
 -  (*) unpacking in function calls.  Based on patch by Hagen Fürstenau and
 -  Daniel Urban.
 +- Issue #28217: Adds _testconsole module to test console input.
  
 -- Issue #27138: Fix the doc comment for FileFinder.find_spec().
  
 -- Issue #26154: Add a new private _PyThreadState_UncheckedGet() function to get
 -  the current Python thread state, but don't issue a fatal error if it is NULL.
 -  This new function must be used instead of accessing directly the
 -  _PyThreadState_Current variable.  The variable is no more exposed since
 -  Python 3.5.1 to hide the exact implementation of atomic C types, to avoid
 -  compiler issues.
 +What's New in Python 3.6.0 beta 1?
 +==================================
  
 -- Issue #26194:  Deque.insert() gave odd results for bounded deques that had
 -  reached their maximum size.  Now an IndexError will be raised when attempting
 -  to insert into a full deque.
 +*Release date: 2016-09-12*
  
 -- Issue #25843: When compiling code, don't merge constants if they are equal
 -  but have a different types. For example, ``f1, f2 = lambda: 1, lambda: 1.0``
 -  is now correctly compiled to two different functions: ``f1()`` returns ``1``
 -  (``int``) and ``f2()`` returns ``1.0`` (``int``), even if ``1`` and ``1.0``
 -  are equal.
 +Core and Builtins
 +-----------------
  
 -- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in
 -  _PyObject_GetState() due to regressions observed in Cython-based projects.
 +- Issue #23722: The __class__ cell used by zero-argument super() is now
 +  initialized from type.__new__ rather than __build_class__, so class methods
 +  relying on that will now work correctly when called from metaclass methods
 +  during class creation. Patch by Martin Teichmann.
  
 -- Issue #25961: Disallowed null characters in the type name.
 +- Issue #25221: Fix corrupted result from PyLong_FromLong(0) when Python
 +  is compiled with NSMALLPOSINTS = 0.
  
 -- Issue #25973: Fix segfault when an invalid nonlocal statement binds a name
 -  starting with two underscores.
 +- Issue #27080: Implement formatting support for PEP 515.  Initial patch
 +  by Chris Angelico.
  
 -- Issue #22995: Instances of extension types with a state that aren't
 -  subclasses of list or dict and haven't implemented any pickle-related
 -  methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__,
 -  or __getstate__), can no longer be pickled.  Including memoryview.
 +- Issue #27199: In tarfile, expose copyfileobj bufsize to improve throughput.
 +  Patch by Jason Fried.
  
 -- Issue #20440: Massive replacing unsafe attribute setting code with special
 -  macro Py_SETREF.
 +- Issue #27948: In f-strings, only allow backslashes inside the braces
 +  (where the expressions are).  This is a breaking change from the 3.6
 +  alpha releases, where backslashes are allowed anywhere in an
 +  f-string.  Also, require that expressions inside f-strings be
 +  enclosed within literal braces, and not escapes like
 +  f'\x7b"hi"\x7d'.
  
 -- Issue #25766: Special method __bytes__() now works in str subclasses.
 +- Issue #28046: Remove platform-specific directories from sys.path.
  
 -- Issue #25421: __sizeof__ methods of builtin types now use dynamic basic size.
 -  This allows sys.getsize() to work correctly with their subclasses with
 -  __slots__ defined.
 +- Issue #28071: Add early-out for differencing from an empty set.
  
 -- Issue #25709: Fixed problem with in-place string concatenation and utf-8
 -  cache.
 +- Issue #25758: Prevents zipimport from unnecessarily encoding a filename
 +  (patch by Eryk Sun)
  
 -- Issue #27147: Mention PEP 420 in the importlib docs.
 +- Issue #25856: The __module__ attribute of extension classes and functions
 +  now is interned. This leads to more compact pickle data with protocol 4.
  
 -- Issue #24097: Fixed crash in object.__reduce__() if slot name is freed inside
 -  __getattr__.
 +- Issue #27213: Rework CALL_FUNCTION* opcodes to produce shorter and more
 +  efficient bytecode. Patch by Demur Rumed, design by Serhiy Storchaka,
 +  reviewed by Serhiy Storchaka and Victor Stinner.
  
 -- Issue #24731: Fixed crash on converting objects with special methods
 -  __bytes__, __trunc__, and __float__ returning instances of subclasses of
 -  bytes, int, and float to subclasses of bytes, int, and float correspondingly.
 +- Issue #26331: Implement tokenizing support for PEP 515. Patch by Georg Brandl.
  
 -- Issue #26478: Fix semantic bugs when using binary operators with dictionary
 -  views and tuples.
 +- Issue #27999: Make "global after use" a SyntaxError, and ditto for nonlocal.
 +  Patch by Ivan Levkivskyi.
  
 -- Issue #26171: Fix possible integer overflow and heap corruption in
 -  zipimporter.get_data().
 +- Issue #28003: Implement PEP 525 -- Asynchronous Generators.
  
 -- Issue #25660: Fix TAB key behaviour in REPL with readline.
 +- Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations.
 +  Patch by Ivan Levkivskyi.
  
 -- Issue #25887: Raise a RuntimeError when a coroutine object is awaited
 -  more than once.
 +- Issue #26058: Add a new private version to the builtin dict type, incremented
 +  at each dictionary creation and at each dictionary change. Implementation of
 +  the PEP 509.
  
 -- Issue #27243: Update the __aiter__ protocol: instead of returning
 -  an awaitable that resolves to an asynchronous iterator, the asynchronous
 -  iterator should be returned directly.  Doing the former will trigger a
 -  PendingDeprecationWarning.
 +- Issue #27364: A backslash-character pair that is not a valid escape sequence
 +  now generates a DeprecationWarning.  Patch by Emanuel Barry.
  
 +- Issue #27350: `dict` implementation is changed like PyPy. It is more compact
 +  and preserves insertion order.
 +  (Concept developed by Raymond Hettinger and patch by Inada Naoki.)
  
 -Library
 --------
 +- Issue #27911: Remove unnecessary error checks in
 +  ``exec_builtin_or_dynamic()``.
  
 -- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283.
 +- Issue #27078: Added BUILD_STRING opcode.  Optimized f-strings evaluation.
  
 -- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772.
 -  Reported by Team Oststrom
 +- Issue #17884: Python now requires systems with inttypes.h and stdint.h
  
 -- Issue #21386: Implement missing IPv4Address.is_global property.  It was
 -  documented since 07a5610bae9d.  Initial patch by Roger Luethi.
 +- Issue #27961: Require platforms to support ``long long``. Python hasn't
 +  compiled without ``long long`` for years, so this is basically a formality.
  
 -- Issue #20900: distutils register command now decodes HTTP responses
 -  correctly.  Initial patch by ingrid.
 +- Issue #27355: Removed support for Windows CE.  It was never finished,
 +  and Windows CE is no longer a relevant platform for Python.
  
 -- A new version of typing.py provides several new classes and
 -  features: @overload outside stubs, Reversible, DefaultDict, Text,
 -  ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug
 -  fixes (note that some of the new features are not yet implemented in
 -  mypy or other static analyzers).  Also classes for PEP 492
 -  (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact
 -  they made it into 3.5.1 but were never mentioned).
 +- Implement PEP 523.
  
 -- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from
 -  sending a message body for 205 Reset Content.  Also, don't send Content
 -  header fields in responses that don't have a body.  Patch by Susumu
 -  Koshiba.
 +- Issue #27870: A left shift of zero by a large integer no longer attempts
 +  to allocate large amounts of memory.
  
 -- Issue #21313: Fix the "platform" module to tolerate when sys.version
 -  contains truncated build information.
 +- Issue #25402: In int-to-decimal-string conversion, improve the estimate
 +  of the intermediate memory required, and remove an unnecessarily strict
 +  overflow check. Patch by Serhiy Storchaka.
  
 -- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls
 -  ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading
 -  ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch
 -  written by Colm Buckley.
 +- Issue #27214: In long_invert, be more careful about modifying object
 +  returned by long_add, and remove an unnecessary check for small longs.
 +  Thanks Oren Milman for analysis and patch.
  
 -- Issue #27164: In the zlib module, allow decompressing raw Deflate streams
 -  with a predefined zdict.  Based on patch by Xiang Zhang.
 +- Issue #27506: Support passing the bytes/bytearray.translate() "delete"
 +  argument by keyword.
  
 -- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely
 -  write data to the client.  Previously it could do partial writes and
 -  truncate data.  Also, wsgiref.handler.ServerHandler can now handle stdout
 -  doing partial writes, but this is deprecated.
 +- Issue #27812: Properly clear out a generator's frame's backreference to the
 +  generator to prevent crashes in frame.clear().
  
 -- Issue #26809: Add ``__all__`` to :mod:`string`.  Patch by Emanuel Barry.
 +- Issue #27811: Fix a crash when a coroutine that has not been awaited is
 +  finalized with warnings-as-errors enabled.
  
 -- Issue #26373: subprocess.Popen.communicate now correctly ignores
 -  BrokenPipeError when the child process dies before .communicate()
 -  is called in more/all circumstances.
 +- 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 #21776: distutils.upload now correctly handles HTTPError.
 -  Initial patch by Claudiu Popa.
 +- Issue #27792: The modulo operation applied to ``bool`` and other
 +  ``int`` subclasses now always returns an ``int``. Previously
 +  the return type depended on the input values. Patch by Xiang Zhang.
  
 -- Issue #27114: Fix SSLContext._load_windows_store_certs fails with
 -  PermissionError
 +- Issue #26984: int() now always returns an instance of exact int.
  
 -- Issue #18383: Avoid creating duplicate filters when using filterwarnings
 -  and simplefilter.  Based on patch by Alex Shkop.
 +- Issue #25604: Fix a minor bug in integer true division; this bug could
 +  potentially have caused off-by-one-ulp results on platforms with
 +  unreliable ldexp implementations.
  
 -- Issue #27057: Fix os.set_inheritable() on Android, ioctl() is blocked by
 -  SELinux and fails with EACCESS. The function now falls back to fcntl().
 -  Patch written by Michał Bednarski.
 +- Issue #24254: Make class definition namespace ordered by default.
  
 -- Issue #27014: Fix infinite recursion using typing.py.  Thanks to Kalle Tuure!
 +- Issue #27662: Fix an overflow check in ``List_New``: the original code was
 +  checking against ``Py_SIZE_MAX`` instead of the correct upper bound of
 +  ``Py_SSIZE_T_MAX``. Patch by Xiang Zhang.
  
 -- Issue #14132: Fix urllib.request redirect handling when the target only has
 -  a query string.  Original fix by Ján Janech.
 +- 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 #17214: The "urllib.request" module now percent-encodes non-ASCII
 -  bytes found in redirect target URLs.  Some servers send Location header
 -  fields with non-ASCII bytes, but "http.client" requires the request target
 -  to be ASCII-encodable, otherwise a UnicodeEncodeError is raised.  Based on
 -  patch by Christian Heimes.
 +- 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 #26892: Honor debuglevel flag in urllib.request.HTTPHandler. Patch
 -  contributed by Chi Hsuan Yen.
 +- 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 #22274: In the subprocess module, allow stderr to be redirected to
 -  stdout even when stdout is not redirected.  Patch by Akira Li.
 +- Issue #27157: Make only type() itself accept the one-argument form.
 +  Patch by Eryk Sun and Emanuel Barry.
  
 -- Issue #26807: mock_open 'files' no longer error on readline at end of file.
 -  Patch from Yolanda Robla.
 +- 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 #25745: Fixed leaking a userptr in curses panel destructor.
 +- Issue #28008: Implement PEP 530 -- asynchronous comprehensions.
  
 -- Issue #26977: Removed unnecessary, and ignored, call to sum of squares helper
 -  in statistics.pvariance.
 +- Issue #27942: Fix memory leak in codeobject.c
  
 -- Issue #26881: The modulefinder module now supports extended opcode arguments.
 +Library
 +-------
  
 -- Issue #23815: Fixed crashes related to directly created instances of types in
 -  _tkinter and curses.panel modules.
 +- Issue #28732: Fix crash in os.spawnv() with no elements in args
  
 -- Issue #17765: weakref.ref() no longer silently ignores keyword arguments.
 -  Patch by Georg Brandl.
 +- Issue #28485: Always raise ValueError for negative
 +  compileall.compile_dir(workers=...) parameter, even when multithreading is
 +  unavailable.
  
 -- Issue #26873: xmlrpc now raises ResponseError on unsupported type tags
 -  instead of silently return incorrect result.
 +- Issue #28037: Use sqlite3_get_autocommit() instead of setting
 +  Connection->inTransaction manually.
  
 -- Issue #26711: Fixed the comparison of plistlib.Data with other types.
 +- Issue #25283: Attributes tm_gmtoff and tm_zone are now available on
 +  all platforms in the return values of time.localtime() and
 +  time.gmtime().
  
 -- Issue #24114: Fix an uninitialized variable in `ctypes.util`.
 +- Issue #24454: Regular expression match object groups are now
 +  accessible using __getitem__.  "mo[x]" is equivalent to
 +  "mo.group(x)".
  
 -  The bug only occurs on SunOS when the ctypes implementation searches
 -  for the `crle` program.  Patch by Xiang Zhang.  Tested on SunOS by
 -  Kees Bos.
 +- Issue #10740: sqlite3 no longer implicitly commit an open transaction
 +  before DDL statements.
  
 -- Issue #26864: In urllib.request, change the proxy bypass host checking
 -  against no_proxy to be case-insensitive, and to not match unrelated host
 -  names that happen to have a bypassed hostname as a suffix.  Patch by Xiang
 -  Zhang.
 +- Issue #17941: Add a *module* parameter to collections.namedtuple().
  
 -- Issue #26634: recursive_repr() now sets __qualname__ of wrapper.  Patch by
 -  Xiang Zhang.
 +- Issue #22493: Inline flags now should be used only at the start of the
 +  regular expression.  Deprecation warning is emitted if uses them in the
 +  middle of the regular expression.
  
 -- Issue #26804: urllib.request will prefer lower_case proxy environment
 -  variables over UPPER_CASE or Mixed_Case ones. Patch contributed by Hans-Peter
 -  Jansen.
 +- Issue #26885: xmlrpc now supports unmarshalling additional data types used
 +  by Apache XML-RPC implementation for numerics and None.
  
 -- Issue #26837: assertSequenceEqual() now correctly outputs non-stringified
 -  differing items (like bytes in the -b mode).  This affects assertListEqual()
 -  and assertTupleEqual().
 +- Issue #28070: Fixed parsing inline verbose flag in regular expressions.
  
 -- Issue #26041: Remove "will be removed in Python 3.7" from deprecation
 -  messages of platform.dist() and platform.linux_distribution().
 -  Patch by Kumaripaba Miyurusara Athukorala.
 +- Issue #19500: Add client-side SSL session resumption to the ssl module.
  
 -- Issue #26822: itemgetter, attrgetter and methodcaller objects no longer
 -  silently ignore keyword arguments.
 +- Issue #28022: Deprecate ssl-related arguments in favor of SSLContext. The
 +  deprecation include manual creation of SSLSocket and certfile/keyfile
 +  (or similar) in ftplib, httplib, imaplib, smtplib, poplib and urllib.
  
 -- Issue #26733: Disassembling a class now disassembles class and static methods.
 -  Patch by Xiang Zhang.
 +- Issue #28043: SSLContext has improved default settings: OP_NO_SSLv2,
 +  OP_NO_SSLv3, OP_NO_COMPRESSION, OP_CIPHER_SERVER_PREFERENCE,
 +  OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE and HIGH ciphers without MD5.
  
 -- Issue #26801: Fix error handling in :func:`shutil.get_terminal_size`, catch
 -  :exc:`AttributeError` instead of :exc:`NameError`. Patch written by Emanuel
 -  Barry.
 +- Issue #24693: Changed some RuntimeError's in the zipfile module to more
 +  appropriate types. Improved some error messages and debugging output.
  
 -- Issue #24838: tarfile's ustar and gnu formats now correctly calculate name
 -  and link field limits for multibyte character encodings like utf-8.
 +- Issue #17909: ``json.load`` and ``json.loads`` now support binary input
 +  encoded as UTF-8, UTF-16 or UTF-32. Patch by Serhiy Storchaka.
  
 -- [Security] Issue #26657: Fix directory traversal vulnerability with
 -  http.server on Windows.  This fixes a regression that was introduced in
 -  3.3.4rc1 and 3.4.0rc1.  Based on patch by Philipp Hagemeister.
 +- Issue #27137: the pure Python fallback implementation of ``functools.partial``
 +  now matches the behaviour of its accelerated C counterpart for subclassing,
 +  pickling and text representation purposes. Patch by Emanuel Barry and
 +  Serhiy Storchaka.
  
 -- Issue #26717: Stop encoding Latin-1-ized WSGI paths with UTF-8.  Patch by
 -  Anthony Sottile.
 +- Fix possible integer overflows and crashes in the mmap module with unusual
 +  usage patterns.
  
 -- Issue #26735: Fix :func:`os.urandom` on Solaris 11.3 and newer when reading
 -  more than 1,024 bytes: call ``getrandom()`` multiple times with a limit of
 -  1024 bytes per call.
 +- Issue #1703178: Fix the ability to pass the --link-objects option to the
 +  distutils build_ext command.
  
 -- Issue #16329: Add .webm to mimetypes.types_map.  Patch by Giampaolo Rodola'.
 +- Issue #28019: itertools.count() no longer rounds non-integer step in range
 +  between 1.0 and 2.0 to 1.
  
 -- Issue #13952: Add .csv to mimetypes.types_map.  Patch by Geoff Wilson.
 +- Issue #18401: Pdb now supports the 'readrc' keyword argument to control
 +  whether .pdbrc files should be read.  Patch by Martin Matusiak and
 +  Sam Kimbrel.
  
 -- Issue #26709: Fixed Y2038 problem in loading binary PLists.
 +- Issue #25969: Update the lib2to3 grammar to handle the unpacking
 +  generalizations added in 3.5.
  
 -- Issue #23735: Handle terminal resizing with Readline 6.3+ by installing our
 -  own SIGWINCH handler.  Patch by Eric Price.
 +- Issue #14977: mailcap now respects the order of the lines in the mailcap
 +  files ("first match"), as required by RFC 1542.  Patch by Michael Lazar.
  
 -- Issue #26586: In http.server, respond with "413 Request header fields too
 -  large" if there are too many header fields to parse, rather than killing
 -  the connection and raising an unhandled exception.  Patch by Xiang Zhang.
 +- Issue #28082: Convert re flag constants to IntFlag.
  
 -- Issue #22854: Change BufferedReader.writable() and
 -  BufferedWriter.readable() to always return False.
 +- Issue #28025: Convert all ssl module constants to IntEnum and IntFlags.
 +  SSLContext properties now return flags and enums.
  
 -- Issue #25195: Fix a regression in mock.MagicMock. _Call is a subclass of
 -  tuple (changeset 3603bae63c13 only works for classes) so we need to
 -  implement __ne__ ourselves.  Patch by Andrew Plummer.
 +- Issue #23591: Add Flag, IntFlag, and auto() to enum module.
  
 -- Issue #26644: Raise ValueError rather than SystemError when a negative
 -  length is passed to SSLSocket.recv() or read().
 +- Issue #433028: Added support of modifier spans in regular expressions.
  
 -- Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes
 -  instead of up to 1024.
 +- Issue #24594: Validates persist parameter when opening MSI database
  
 -- Issue #26616: Fixed a bug in datetime.astimezone() method.
 +- Issue #17582: xml.etree.ElementTree nows preserves whitespaces in attributes
 +  (Patch by Duane Griffin.  Reviewed and approved by Stefan Behnel.)
  
 -- Issue #21925: :func:`warnings.formatwarning` now catches exceptions on
 -  ``linecache.getline(...)`` to be able to log :exc:`ResourceWarning` emitted
 -  late during the Python shutdown process.
 +- Issue #28047: Fixed calculation of line length used for the base64 CTE
 +  in the new email policies.
  
 -- Issue #24266: Ctrl+C during Readline history search now cancels the search
 -  mode when compiled with Readline 7.
 +- Issue #27576: Fix call order in OrderedDict.__init__().
  
 -- Issue #26560: Avoid potential ValueError in BaseHandler.start_response.
 -  Initial patch by Peter Inglesby.
 +- email.generator.DecodedGenerator now supports the policy keyword.
  
 -- [Security] Issue #26313: ssl.py _load_windows_store_certs fails if windows
 -  cert store is empty. Patch by Baji.
 +- Issue #28027: Remove undocumented modules from ``Lib/plat-*``: IN, CDROM,
 +  DLFCN, TYPES, CDIO, and STROPTS.
  
 -- Issue #26569: Fix :func:`pyclbr.readmodule` and :func:`pyclbr.readmodule_ex`
 -  to support importing packages.
 +- Issue #27445: Don't pass str(_charset) to MIMEText.set_payload().
 +  Patch by Claude Paroz.
  
 -- Issue #26499: Account for remaining Content-Length in
 -  HTTPResponse.readline() and read1().  Based on patch by Silent Ghost.
 -  Also document that HTTPResponse now supports these methods.
 +- Issue #24277: The new email API is no longer provisional, and the docs
 +  have been reorganized and rewritten to emphasize the new API.
  
 -- Issue #25320: Handle sockets in directories unittest discovery is scanning.
 -  Patch from Victor van den Elzen.
 +- Issue #22450: urllib now includes an "Accept: */*" header among the
 +  default headers.  This makes the results of REST API requests more
 +  consistent and predictable especially when proxy servers are involved.
  
 -- Issue #16181: cookiejar.http2time() now returns None if year is higher than
 -  datetime.MAXYEAR.
 +- lib2to3.pgen3.driver.load_grammar() now creates a stable cache file
 +  between runs given the same Grammar.txt input regardless of the hash
 +  randomization setting.
  
 -- Issue #26513: Fixes platform module detection of Windows Server
 +- Issue #28005: Allow ImportErrors in encoding implementation to propagate.
  
 -- Issue #23718: Fixed parsing time in week 0 before Jan 1.  Original patch by
 -  Tamás Bence Gedai.
 +- Issue #26667: Support path-like objects in importlib.util.
  
 -- Issue #20589: Invoking Path.owner() and Path.group() on Windows now raise
 -  NotImplementedError instead of ImportError.
 +- Issue #27570: Avoid zero-length memcpy() etc calls with null source
 +  pointers in the "ctypes" and "array" modules.
  
 -- Issue #26177: Fixed the keys() method for Canvas and Scrollbar widgets.
 +- Issue #22233: Break email header lines *only* on the RFC specified CR and LF
 +  characters, not on arbitrary unicode line breaks.  This also fixes a bug in
 +  HTTP header parsing.
  
 -- Issue #15068: Got rid of excessive buffering in the fileinput module.
 -  The bufsize parameter is no longer used.
 +- Issue 27331: The email.mime classes now all accept an optional policy keyword.
  
 -- Issue #2202: Fix UnboundLocalError in
 -  AbstractDigestAuthHandler.get_algorithm_impls.  Initial patch by Mathieu
 -  Dupuy.
 +- Issue 27988: Fix email iter_attachments incorrect mutation of payload list.
  
 -- Issue #25718: Fixed pickling and copying the accumulate() iterator with
 -  total is None.
 +- Issue #16113: Add SHA-3 and SHAKE support to hashlib module.
  
 -- Issue #26475: Fixed debugging output for regular expressions with the (?x)
 -  flag.
 +- Eliminate a tautological-pointer-compare warning in _scproxy.c.
  
 -- Issue #26457: Fixed the subnets() methods in IP network classes for the case
 -  when resulting prefix length is equal to maximal prefix length.
 -  Based on patch by Xiang Zhang.
 +- Issue #27776: The :func:`os.urandom` function does now block on Linux 3.17
 +  and newer until the system urandom entropy pool is initialized to increase
 +  the security. This change is part of the :pep:`524`.
  
 -- Issue #26385: Remove the file if the internal open() call in
 -  NamedTemporaryFile() fails.  Patch by Silent Ghost.
 +- Issue #27778: Expose the Linux ``getrandom()`` syscall as a new
 +  :func:`os.getrandom` function. This change is part of the :pep:`524`.
  
 -- Issue #26402: Fix XML-RPC client to retry when the server shuts down a
 -  persistent connection.  This was a regression related to the new
 -  http.client.RemoteDisconnected exception in 3.5.0a4.
 +- Issue #27691: Fix ssl module's parsing of GEN_RID subject alternative name
 +  fields in X.509 certs.
  
 -- Issue #25913: Leading ``<~`` is optional now in base64.a85decode() with
 -  adobe=True.  Patch by Swati Jaiswal.
 +- Issue #18844: Add random.choices().
  
 -- Issue #26186: Remove an invalid type check in importlib.util.LazyLoader.
 +- Issue #25761: Improved error reporting about truncated pickle data in
 +  C implementation of unpickler.  UnpicklingError is now raised instead of
 +  AttributeError and ValueError in some cases.
  
 -- Issue #26367: importlib.__import__() raises SystemError like
 -  builtins.__import__() when ``level`` is specified but without an accompanying
 -  package specified.
 +- Issue #26798: Add BLAKE2 (blake2b and blake2s) to hashlib.
  
 -- Issue #26309: In the "socketserver" module, shut down the request (closing
 -  the connected socket) when verify_request() returns false.  Patch by Aviv
 -  Palivoda.
 +- Issue #26032: Optimized globbing in pathlib by using os.scandir(); it is now
 +  about 1.5--4 times faster.
  
 -- [Security] Issue #25939: On Windows open the cert store readonly in
 -  ssl.enum_certificates.
 +- Issue #25596: Optimized glob() and iglob() functions in the
 +  glob module; they are now about 3--6 times faster.
  
 -- Issue #25995: os.walk() no longer uses FDs proportional to the tree depth.
 +- Issue #27928: Add scrypt (password-based key derivation function) to
 +  hashlib module (requires OpenSSL 1.1.0).
  
 -- Issue #26117: The os.scandir() iterator now closes file descriptor not only
 -  when the iteration is finished, but when it was failed with error.
 +- Issue #27850: Remove 3DES from ssl module's default cipher list to counter
 +  measure sweet32 attack (CVE-2016-2183).
  
 -- Issue #25911: Restored support of bytes paths in os.walk() on Windows.
 +- Issue #27766: Add ChaCha20 Poly1305 to ssl module's default ciper list.
 +  (Required OpenSSL 1.1.0 or LibreSSL).
  
 -- Issue #26045: Add UTF-8 suggestion to error message when posting a
 -  non-Latin-1 string with http.client.
 +- Issue #25387: Check return value of winsound.MessageBeep.
  
 -- Issue #12923: Reset FancyURLopener's redirect counter even if there is an
 -  exception.  Based on patches by Brian Brazil and Daniel Rocco.
 +- Issue #27866: Add SSLContext.get_ciphers() method to get a list of all
 +  enabled ciphers.
  
 -- Issue #25945: Fixed a crash when unpickle the functools.partial object with
 -  wrong state.  Fixed a leak in failed functools.partial constructor.
 -  "args" and "keywords" attributes of functools.partial have now always types
 -  tuple and dict correspondingly.
 +- Issue #27744: Add AF_ALG (Linux Kernel crypto) to socket module.
  
 -- Issue #26202: copy.deepcopy() now correctly copies range() objects with
 -  non-atomic attributes.
 +- Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0.
  
 -- Issue #23076: Path.glob() now raises a ValueError if it's called with an
 -  invalid pattern.  Patch by Thomas Nyberg.
 +- Issue #11620: Fix support for SND_MEMORY in winsound.PlaySound.  Based on a
 +  patch by Tim Lesher.
  
 -- Issue #19883: Fixed possible integer overflows in zipimport.
 +- Issue #11734: Add support for IEEE 754 half-precision floats to the
 +  struct module. Based on a patch by Eli Stevens.
  
 -- Issue #26227: On Windows, getnameinfo(), gethostbyaddr() and
 -  gethostbyname_ex() functions of the socket module now decode the hostname
 -  from the ANSI code page rather than UTF-8.
 +- Issue #27919: Deprecated ``extra_path`` distribution option in distutils
 +  packaging.
  
 -- Issue #26147: xmlrpc now works with strings not encodable with used
 -  non-UTF-8 encoding.
 +- Issue #23229: Add new ``cmath`` constants: ``cmath.inf`` and ``cmath.nan`` to
 +  match ``math.inf`` and ``math.nan``, and also ``cmath.infj`` and
 +  ``cmath.nanj`` to match the format used by complex repr.
  
 -- Issue #25935: Garbage collector now breaks reference loops with OrderedDict.
 +- Issue #27842: The csv.DictReader now returns rows of type OrderedDict.
 +  (Contributed by Steve Holden.)
  
 -- Issue #16620: Fixed AttributeError in msilib.Directory.glob().
 +- Remove support for passing a file descriptor to os.access. It never worked but
 +  previously didn't raise.
  
 -- Issue #26013: Added compatibility with broken protocol 2 pickles created
 -  in old Python 3 versions (3.4.3 and lower).
 +- Issue #12885: Fix error when distutils encounters symlink.
  
 -- Issue #25850: Use cross-compilation by default for 64-bit Windows.
 +- Issue #27881: Fixed possible bugs when setting sqlite3.Connection.isolation_level.
 +  Based on patch by Xiang Zhang.
  
 -- Issue #17633: Improve zipimport's support for namespace packages.
 +- Issue #27861: Fixed a crash in sqlite3.Connection.cursor() when a factory
 +  creates not a cursor.  Patch by Xiang Zhang.
  
 -- Issue #24705: Fix sysconfig._parse_makefile not expanding ${} vars
 -  appearing before $() vars.
 +- Issue #19884: Avoid spurious output on OS X with Gnu Readline.
  
 -- Issue #22138: Fix mock.patch behavior when patching descriptors. Restore
 -  original values after patching. Patch contributed by Sean McCully.
 +- Issue #27706: Restore deterministic behavior of random.Random().seed()
 +  for string seeds using seeding version 1.  Allows sequences of calls
 +  to random() to exactly match those obtained in Python 2.
 +  Patch by Nofar Schnider.
  
 -- Issue #25672: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode
 -  option if it is safe to do so.
 +- Issue #10513: Fix a regression in Connection.commit().  Statements should
 +  not be reset after a commit.
  
 -- Issue #26012: Don't traverse into symlinks for ** pattern in
 -  pathlib.Path.[r]glob().
 +- Issue #12319: Chunked transfer encoding support added to
 +  http.client.HTTPConnection requests.  The
 +  urllib.request.AbstractHTTPHandler class does not enforce a Content-Length
 +  header any more.  If a HTTP request has a file or iterable body, but no
 +  Content-Length header, the library now falls back to use chunked transfer-
 +  encoding.
  
 -- Issue #24120: Ignore PermissionError when traversing a tree with
 -  pathlib.Path.[r]glob().  Patch by Ulrich Petri.
 +- A new version of typing.py from https://github.com/python/typing:
 +  - Collection (only for 3.6) (Issue #27598)
 +  - Add FrozenSet to __all__ (upstream #261)
 +  - fix crash in _get_type_vars() (upstream #259)
 +  - Remove the dict constraint in ForwardRef._eval_type (upstream #252)
  
 -- Issue #25447: fileinput now uses sys.stdin as-is if it does not have a
 -  buffer attribute (restores backward compatibility).
 +- Issue #27832: Make ``_normalize`` parameter to ``Fraction`` constuctor
 +  keyword-only, so that ``Fraction(2, 3, 4)`` now raises ``TypeError``.
  
 -- Issue #25447: Copying the lru_cache() wrapper object now always works,
 -  independedly from the type of the wrapped object (by returning the original
 -  object unchanged).
 +- Issue #27539: Fix unnormalised ``Fraction.__pow__`` result in the case
 +  of negative exponent and negative base.
  
 -- Issue #24103: Fixed possible use after free in ElementTree.XMLPullParser.
 +- Issue #21718: cursor.description is now available for queries using CTEs.
  
 -- Issue #25860: os.fwalk() no longer skips remaining directories when error
 -  occurs.  Original patch by Samson Lee.
 +- Issue #27819: In distutils sdists, simply produce the "gztar" (gzipped tar
 +  format) distributions on all platforms unless "formats" is supplied.
  
 -- Issue #25914: Fixed and simplified OrderedDict.__sizeof__.
 +- Issue #2466: posixpath.ismount now correctly recognizes mount points which
 +  the user does not have permission to access.
  
 -- Issue #25902: Fixed various refcount issues in ElementTree iteration.
 +- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH
 +  for shared libraries.
  
 -- Issue #25717: Restore the previous behaviour of tolerating most fstat()
 -  errors when opening files.  This was a regression in 3.5a1, and stopped
 -  anonymous temporary files from working in special cases.
 +- Issue #27573: exit message for code.interact is now configurable.
  
 -- Issue #24903: Fix regression in number of arguments compileall accepts when
 -  '-d' is specified.  The check on the number of arguments has been dropped
 -  completely as it never worked correctly anyway.
 +- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
 +  Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
  
 -- Issue #25764: In the subprocess module, preserve any exception caused by
 -  fork() failure when preexec_fn is used.
 +- Issue #6766: Distributed reference counting added to multiprocessing
 +  to support nesting of shared values / proxy objects.
  
 -- Issue #6478: _strptime's regexp cache now is reset after changing timezone
 -  with time.tzset().
 +- Issue #21201: Improves readability of multiprocessing error message.  Thanks
 +  to Wojciech Walczak for patch.
  
 -- Issue #14285: When executing a package with the "python -m package" option,
 -  and package initialization fails, a proper traceback is now reported.  The
 -  "runpy" module now lets exceptions from package initialization pass back to
 -  the caller, rather than raising ImportError.
 +- asyncio: Add set_protocol / get_protocol to Transports.
  
 -- Issue #19771: Also in runpy and the "-m" option, omit the irrelevant
 -  message ". . . is a package and cannot be directly executed" if the package
 -  could not even be initialized (e.g. due to a bad ``*.pyc`` file).
 +- Issue #27456: asyncio: Set TCP_NODELAY by default.
  
 -- Issue #25177: Fixed problem with the mean of very small and very large
 -  numbers. As a side effect, statistics.mean and statistics.variance should
 -  be significantly faster.
 +IDLE
 +----
  
 -- Issue #25718: Fixed copying object with state with boolean value is false.
 +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
 +  Patch by Roger Serwy, updated by Bayard Randel.
  
 -- Issue #10131: Fixed deep copying of minidom documents.  Based on patch
 -  by Marian Ganisin.
 +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
  
 -- Issue #25725: Fixed a reference leak in pickle.loads() when unpickling
 -  invalid data including tuple instructions.
 +- Issue #27891: Consistently group and sort imports within idlelib modules.
  
 -- Issue #25663: In the Readline completer, avoid listing duplicate global
 -  names, and search the global namespace before searching builtins.
 +- Issue #17642: add larger font sizes for classroom projection.
  
 -- Issue #25688: Fixed file leak in ElementTree.iterparse() raising an error.
 +- Add version to title of IDLE help window.
  
 -- Issue #23914: Fixed SystemError raised by unpickler on broken pickle data.
 +- Issue #25564: In section on IDLE -- console differences, mention that
 +  using exec means that __builtins__ is defined for each statement.
  
 -- Issue #25691: Fixed crash on deleting ElementTree.Element attributes.
 +- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets
 +  from being selected when no custom theme was defined.
  
 -- Issue #25624: ZipFile now always writes a ZIP_STORED header for directory
 -  entries.  Patch by Dingyuan Wang.
 +C API
 +-----
  
 -- Skip getaddrinfo if host is already resolved.
 -  Patch by A. Jesse Jiryu Davis.
 +- Issue #26900: Excluded underscored names and other private API from limited API.
  
 -- Issue #26050: Add asyncio.StreamReader.readuntil() method.
 -  Patch by Марк Коренберг.
 +- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter() &
 +  PyUnicode_FSDecoder().
  
 -- Issue #25924: Avoid unnecessary serialization of getaddrinfo(3) calls on
 -  OS X versions 10.5 or higher.  Original patch by A. Jesse Jiryu Davis.
 +Tests
 +-----
  
 -- Issue #26406: Avoid unnecessary serialization of getaddrinfo(3) calls on
 -  current versions of OpenBSD and NetBSD.  Patch by A. Jesse Jiryu Davis.
 +- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo.
  
 -- Issue #26848: Fix asyncio/subprocess.communicate() to handle empty input.
 -  Patch by Jack O'Connor.
 +- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a
 +  poor libm implementation of tan.
  
 -- Issue #27040: Add loop.get_exception_handler method
 +- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by
 +  Jeff Allen.
  
 -- Issue #27041: asyncio: Add loop.create_future method
 +- Issue #27787: Call gc.collect() before checking each test for "dangling
 +  threads", since the dangling threads are weak references.
  
 -- Issue #27223: asyncio: Fix _read_ready and _write_ready to respect
 -  _conn_lost.
 -  Patch by Łukasz Langa.
 +Build
 +-----
  
 -- Issue #22970: asyncio: Fix inconsistency cancelling Condition.wait.
 -  Patch by David Coles.
 +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach)
  
 -IDLE
 -----
 +- Issue #27705: Update message in validate_ucrtbase.py
  
 -- Issue #5124: Paste with text selected now replaces the selection on X11.
 -  This matches how paste works on Windows, Mac, most modern Linux apps,
 -  and ttk widgets.  Original patch by Serhiy Storchaka.
 +- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on
 +  non-OSX UNIX platforms.
  
 -- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory
 -  is a private implementation of test.test_idle and tool for maintainers.
 +- Issue #27983: Cause lack of llvm-profdata tool when using clang as
 +  required for PGO linking to be a configure time error rather than
 +  make time when --with-optimizations is enabled.  Also improve our
 +  ability to find the llvm-profdata tool on MacOS and some Linuxes.
  
 -- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests.
 -  These persisted after other warnings were suppressed in #20567.
 -  Apply Serhiy Storchaka's update_idletasks solution to four test files.
 -  Record this additional advice in idle_test/README.txt
 +- Issue #21590: Support for DTrace and SystemTap probes.
  
 -- Issue #20567: Revise idle_test/README.txt with advice about avoiding
 -  tk warning messages from tests.  Apply advice to several IDLE tests.
 +- Issue #26307: The profile-opt build now applies PGO to the built-in modules.
  
 -- Issue #27117: Make colorizer htest and turtledemo work with dark themes.
 -  Move code for configuring text widget colors to a new function.
 +- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build
 +  support when available.
  
 -- Issue #26673: When tk reports font size as 0, change to size 10.
 -  Such fonts on Linux prevented the configuration dialog from opening.
 +- Issue #27917: Set platform triplets for Android builds.
  
 -- Issue #21939: Add test for IDLE's percolator.
 -  Original patch by Saimadhav Heblikar.
 +- Issue #25825: Update references to the $(LIBPL) installation path on AIX.
 +  This path was changed in 3.2a4.
  
 -- Issue #21676: Add test for IDLE's replace dialog.
 -  Original patch by Saimadhav Heblikar.
 +- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2.
  
 -- Issue #18410: Add test for IDLE's search dialog.
 -  Original patch by Westley Martínez.
 +- Issue #21122: Fix LTO builds on OS X.
  
 -- Issue #21703: Add test for IDLE's undo delegator.
 -  Original patch by Saimadhav Heblikar .
 +- Issue #17128: Build OS X installer with a private copy of OpenSSL.
 +  Also provide a sample Install Certificates command script to install a
 +  set of root certificates from the third-party certifi module.
  
 -- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.
 +Tools/Demos
 +-----------
  
 -- Issue #23977: Add more asserts to test_delegator.
 +- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
 +  current "re" module, avoid invalid Python backslash escapes, and fix a bug
 +  parsing escaped C quote signs.
  
 -- Issue #20640: Add tests for idlelib.configHelpSourceEdit.
 -  Patch by Saimadhav Heblikar.
 +Windows
 +-------
  
 -- In the 'IDLE-console differences' section of the IDLE doc, clarify
 -  how running with IDLE affects sys.modules and the standard streams.
 +- Issue #28065: Update xz dependency to 5.2.2 and build it from source.
  
 -- Issue #25507: fix incorrect change in IOBinding that prevented printing.
 -  Augment IOBinding htest to include all major IOBinding functions.
 +- Issue #25144: Ensures TargetDir is set before continuing with custom
 +  install.
  
 -- Issue #25905: Revert unwanted conversion of ' to ’ RIGHT SINGLE QUOTATION
 -  MARK in README.txt and open this and NEWS.txt with 'ascii'.
 -  Re-encode CREDITS.txt to utf-8 and open it with 'utf-8'.
 +- Issue #1602: Windows console doesn't input or print Unicode (PEP 528)
  
 -Documentation
 --------------
 +- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529)
  
 -- Issue #19489: Moved the search box from the sidebar to the header and footer
 -  of each page.  Patch by Ammar Askar.
 +- Issue #27731: Opt-out of MAX_PATH on Windows 10
  
 -- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5.
 +- Issue #6135: Adds encoding and errors parameters to subprocess.
  
 -- Issue #26736: Used HTTPS for external links in the documentation if possible.
 +- Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to
 +  codec lookup.
  
 -- Issue #6953: Rework the Readline module documentation to group related
 -  functions together, and add more details such as what underlying Readline
 -  functions and variables are accessed.
 +- Issue #27982: The functions of the winsound module now accept keyword
 +  arguments.
  
 -- Issue #23606: Adds note to ctypes documentation regarding cdll.msvcrt.
 +- Issue #20366: Build full text search support into SQLite on Windows.
  
 -- Issue #25500: Fix documentation to not claim that __import__ is searched for
 -  in the global scope.
 +- Issue #27756: Adds new icons for Python files and processes on Windows.
 +  Designs by Cherry Wang.
  
 -- Issue #26014: Update 3.x packaging documentation:
 -  * "See also" links to the new docs are now provided in the legacy pages
 -  * links to setuptools documentation have been updated
 +- Issue #27883: Update sqlite to 3.14.1.0 on Windows.
  
 -Tests
 ------
  
 -- Issue #21916: Added tests for the turtle module.  Patch by ingrid,
 -  Gregory Loyse and Jelle Zijlstra.
 +What's New in Python 3.6.0 alpha 4?
 +===================================
  
 -- Issue #26523: The multiprocessing thread pool (multiprocessing.dummy.Pool)
 -  was untested.
 +*Release date: 2016-08-15*
  
 -- Issue #26015: Added new tests for pickling iterators of mutable sequences.
 +Core and Builtins
 +-----------------
  
 -- Issue #26325: Added test.support.check_no_resource_warning() to check that
 -  no ResourceWarning is emitted.
 +- Issue #27704: Optimized creating bytes and bytearray from byte-like objects
 +  and iterables.  Speed up to 3 times for short objects.  Original patch by
 +  Naoki Inada.
  
 -- Issue #25940: Changed test_ssl to use self-signed.pythontest.net.  This
 -  avoids relying on svn.python.org, which recently changed root certificate.
 +- Issue #26823: Large sections of repeated lines in tracebacks are now
 +  abbreviated as "[Previous line repeated {count} more times]" by the builtin
 +  traceback rendering. Patch by Emanuel Barry.
  
 -- Issue #25616: Tests for OrderedDict are extracted from test_collections
 -  into separate file test_ordered_dict.
 +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions
 +  implemented with using Argument Clinic.
  
 -- Issue #26583: Skip test_timestamp_overflow in test_import if bytecode
 -  files cannot be written.
 +- Issue #22557: Now importing already imported modules is up to 2.5 times
 +  faster.
  
 -Build
 ------
 +- Issue #17596: Include <wincrypt.h> to help with Min GW building.
  
 -- Issue #26884: Fix linking extension modules for cross builds.
 -  Patch by Xavier de Gaye.
 +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER
 +  structure to avoid conflicting with the definition from Min GW.
  
 -- Issue #22359: Disable the rules for running _freeze_importlib and pgen when
 -  cross-compiling.  The output of these programs is normally saved with the
 -  source code anyway, and is still regenerated when doing a native build.
 -  Patch by Xavier de Gaye.
 +- Issue #27507: Add integer overflow check in bytearray.extend().  Patch by
 +  Xiang Zhang.
  
 -- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds.  Patch
 -  by Xavier de Gaye.
 +- Issue #27581: Don't rely on wrapping for overflow check in
 +  PySequence_Tuple().  Patch by Xiang Zhang.
  
 -- Issue #21668: Link audioop, _datetime, _ctypes_test modules to libm,
 -  except on Mac OS X. Patch written by Xavier de Gaye.
 +- Issue #1621: Avoid signed integer overflow in list and tuple operations.
 +  Patch by Xiang Zhang.
  
 -- Issue #25702: A --with-lto configure option has been added that will
 -  enable link time optimizations at build time during a make profile-opt.
 -  Some compilers and toolchains are known to not produce stable code when
 -  using LTO, be sure to test things thoroughly before relying on it.
 -  It can provide a few % speed up over profile-opt alone.
 +- Issue #27419: Standard __import__() no longer look up "__import__" in globals
 +  or builtins for importing submodules or "from import".  Fixed a crash if
 +  raise a warning about unabling to resolve package from __spec__ or
 +  __package__.
  
 -- Issue #26624: Adds validation of ucrtbase[d].dll version with warning
 -  for old versions.
 +- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows.
  
 -- Issue #17603: Avoid error about nonexistant fileblocks.o file by using a
 -  lower-level check for st_blocks in struct stat.
 +- Issue #27514: Make having too many statically nested blocks a SyntaxError
 +  instead of SystemError.
  
 -- Issue #26079: Fixing the build output folder for tix-8.4.3.6. Patch by
 -  Bjoern Thiel.
 +- Issue #27366: Implemented PEP 487 (Simpler customization of class creation).
 +  Upon subclassing, the __init_subclass__ classmethod is called on the base
 +  class. Descriptors are initialized with __set_name__ after class creation.
  
 -- Issue #26465: Update Windows builds to use OpenSSL 1.0.2g.
 +Library
 +-------
  
 -- Issue #24421: Compile Modules/_math.c once, before building extensions.
 -  Previously it could fail to compile properly if the math and cmath builds
 -  were concurrent.
 +- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path
 +  modules. Includes code from Jelle Zijlstra.
  
 -- Issue #25348: Added ``--pgo`` and ``--pgo-job`` arguments to
 -  ``PCbuild\build.bat`` for building with Profile-Guided Optimization.  The
 -  old ``PCbuild\build_pgo.bat`` script is now deprecated, and simply calls
 -  ``PCbuild\build.bat --pgo %*``.
 +- Issue #27598: Add Collections to collections.abc.
 +  Patch by Ivan Levkivskyi, docs by Neil Girdhar.
  
 -- Issue #25827: Add support for building with ICC to ``configure``, including
 -  a new ``--with-icc`` flag.
 +- Issue #25958: Support "anti-registration" of special methods from
 +  various ABCs, like __hash__, __iter__ or __len__.  All these (and
 +  several more) can be set to None in an implementation class and the
 +  behavior will be as if the method is not defined at all.
 +  (Previously, this mechanism existed only for __hash__, to make
 +  mutable classes unhashable.)  Code contributed by Andrew Barnert and
 +  Ivan Levkivskyi.
  
 -- Issue #25696: Fix installation of Python on UNIX with make -j9.
 +- Issue #16764: Support keyword arguments to zlib.decompress().  Patch by
 +  Xiang Zhang.
  
 -- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build
 -  and link with OpenSSL 1.0.2h.
 +- Issue #27736: Prevent segfault after interpreter re-initialization due
 +  to ref count problem introduced in code for Issue #27038 in 3.6.0a3.
 +  Patch by Xiang Zhang.
  
 -- Issue #26268: Update Windows builds to use OpenSSL 1.0.2f.
 +- Issue #25628:  The *verbose* and *rename* parameters for
 +  collections.namedtuple are now keyword-only.
  
 -- Issue #25136: Support Apple Xcode 7's new textual SDK stub libraries.
 +- Issue #12345: Add mathematical constant tau to math and cmath. See also
 +  PEP 628.
  
 -- Issue #24324: Do not enable unreachable code warnings when using
 -  gcc as the option does not work correctly in older versions of gcc
 -  and has been silently removed as of gcc-4.5.
 +- Issue #26823: traceback.StackSummary.format now abbreviates large sections of
 +  repeated lines as "[Previous line repeated {count} more times]" (this change
 +  then further affects other traceback display operations in the module). Patch
 +  by Emanuel Barry.
  
 -Windows
 --------
 +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor()
 +  the ability to specify a thread name prefix.
  
 -- Issue #27053: Updates make_zip.py to correctly generate library ZIP file.
 +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module.
  
 -- Issue #26268: Update the prepare_ssl.py script to handle OpenSSL releases
 -  that don't include the contents of the include directory (that is, 1.0.2e
 -  and later).
 +- Issue #27573: code.interact now prints an message when exiting.
  
 -- Issue #26071: bdist_wininst created binaries fail to start and find
 -  32bit Python
 +- Issue #6422: Add autorange method to timeit.Timer objects.
  
 -- Issue #26073: Update the list of magic numbers in launcher
 +- Issue #27773: Correct some memory management errors server_hostname in
 +  _ssl.wrap_socket().
  
 -- Issue #26065: Excludes venv from library when generating embeddable
 -  distro.
 +- Issue #26750: unittest.mock.create_autospec() now works properly for
 +  subclasses of property() and other data descriptors.  Removes the never
 +  publicly used, never documented unittest.mock.DescriptorTypes tuple.
  
 -Tools/Demos
 ------------
 +- Issue #26754: Undocumented support of general bytes-like objects
 +  as path in compile() and similar functions is now deprecated.
  
 -- Issue #26799: Fix python-gdb.py: don't get C types once when the Python code
 -  is loaded, but get C types on demand. The C types can change if
 -  python-gdb.py is loaded before the Python executable. Patch written by Thomas
 -  Ilsche.
 +- Issue #26800: Undocumented support of general bytes-like objects
 +  as paths in os functions is now deprecated.
  
 -- Issue #26271: Fix the Freeze tool to properly use flags passed through
 -  configure. Patch by Daniel Shaulov.
 +- Issue #26981: Add _order_ compatibility shim to enum.Enum for
 +  Python 2/3 code bases.
  
 -- Issue #26489: Add dictionary unpacking support to Tools/parser/unparse.py.
 -  Patch by Guo Ci Teo.
 +- Issue #27661: Added tzinfo keyword argument to datetime.combine.
  
 -- Issue #26316: Fix variable name typo in Argument Clinic.
 +- In the curses module, raise an error if window.getstr() or window.instr() is
 +  passed a negative value.
  
 -Misc
 -----
 +- Issue #27783: Fix possible usage of uninitialized memory in
 +  operator.methodcaller.
  
 -- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove
 -  unused and outdated icons.
 +- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
  
 +- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
  
 -What's New in Python 3.5.1 final?
 -=================================
 +- Issue #27758: Fix possible integer overflow in the _csv module for large
 +  record lengths.
  
 -Release date: 2015-12-06
 +- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
 +  HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
 +  that the script is in CGI mode.
  
 -Core and Builtins
 ------------------
 +- Issue #7063: Remove dead code from the "array" module's slice handling.
 +  Patch by Chuck.
  
 -- Issue #25709: Fixed problem with in-place string concatenation and
 -  utf-8 cache.
 +- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
  
 -Windows
 --------
 +- Issue #27130: In the "zlib" module, fix handling of large buffers
 +  (typically 4 GiB) when compressing and decompressing.  Previously, inputs
 +  were limited to 4 GiB, and compression and decompression operations did not
 +  properly handle results of 4 GiB.
  
 -- Issue #25715: Python 3.5.1 installer shows wrong upgrade path and incorrect
 -  logic for launcher detection.
 +- Issue #24773: Implemented PEP 495 (Local Time Disambiguation).
  
 +- Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module.
  
 -What's New in Python 3.5.1 release candidate 1?
 -===============================================
 +- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select
 +  module.
  
 -Release date: 2015-11-22
 +- Issue #1621: Avoid signed int negation overflow in the "audioop" module.
  
 -Core and Builtins
 ------------------
 +- Issue #27533: Release GIL in nt._isdir
  
 -- Issue #25630: Fix a possible segfault during argument parsing in functions
 -  that accept filesystem paths.
 +- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
 +  Original patch by Alexandre Vassalotti.
  
 -- Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess
 -  internals regarding how fds_to_pass were passed to the child.  The bug had
 -  no actual impact as subprocess.py already avoided it.
 +- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
  
 -- Issue #25388: Fixed tokenizer crash when processing undecodable source code
 -  with a null byte.
 +- Issue #27512: Fix a segfault when os.fspath() called an __fspath__() method
 +  that raised an exception. Patch by Xiang Zhang.
  
 -- Issue #25462: The hash of the key now is calculated only once in most
 -  operations in C implementation of OrderedDict.
 +IDLE
 +----
  
 -- Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now
 -  rejects builtin types with not defined __new__.
 +- Issue #27714: text_textview and test_autocomplete now pass when re-run
 +  in the same process.  This occurs when test_idle fails when run with the
 +  -w option but without -jn.  Fix warning from test_config.
  
 -- Issue #25555: Fix parser and AST: fill lineno and col_offset of "arg" node
 -  when compiling AST from Python objects.
 +- Issue #27621: Put query response validation error messages in the query
 +  box itself instead of in a separate massagebox.  Redo tests to match.
 +  Add Mac OSX refinements.  Original patch by Mark Roseman.
  
 -- Issue #24802: Avoid buffer overreads when int(), float(), compile(), exec()
 -  and eval() are passed bytes-like objects.  These objects are not
 -  necessarily terminated by a null byte, but the functions assumed they were.
 +- Issue #27620: Escape key now closes Query box as cancelled.
  
 -- Issue #24726: Fixed a crash and leaking NULL in repr() of OrderedDict that
 -  was mutated by direct calls of dict methods.
 +- Issue #27609: IDLE: tab after initial whitespace should tab, not
 +  autocomplete. This fixes problem with writing docstrings at least
 +  twice indented.
  
 -- Issue #25449: Iterating OrderedDict with keys with unstable hash now raises
 -  KeyError in C implementations as well as in Python implementation.
 +- Issue #27609: Explicitly return None when there are also non-None
 +  returns. In a few cases, reverse a condition and eliminate a return.
  
 -- Issue #25395: Fixed crash when highly nested OrderedDict structures were
 -  garbage collected.
 +- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
 +  Users must include the same imports required to run directly in Python.
  
 -- Issue #25274: sys.setrecursionlimit() now raises a RecursionError if the new
 -  recursion limit is too low depending at the current recursion depth. Modify
 -  also the "lower-water mark" formula to make it monotonic. This mark is used
 -  to decide when the overflowed flag of the thread state is reset.
 +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
 +  Make the default key set depend on the platform.
 +  Add tests for the changes to the config module.
  
 -- Issue #24402: Fix input() to prompt to the redirected stdout when
 -  sys.stdout.fileno() fails.
 +- Issue #27452: add line counter and crc to IDLE configHandler test dump.
  
 -- Issue #24806: Prevent builtin types that are not allowed to be subclassed from
 -  being subclassed through multiple inheritance.
 +Tests
 +-----
  
 -- Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data.
 +- Issue #25805: Skip a test in test_pkgutil as needed that doesn't work when
 +  ``__name__ == __main__``. Patch by SilentGhost.
  
 -- Issue #25280: Import trace messages emitted in verbose (-v) mode are no
 -  longer formatted twice.
 +- Issue #27472: Add test.support.unix_shell as the path to the default shell.
  
 -- Issue #25003: On Solaris 11.3 or newer, os.urandom() now uses the
 -  getrandom() function instead of the getentropy() function. The getentropy()
 -  function is blocking to generate very good quality entropy, os.urandom()
 -  doesn't need such high-quality entropy.
 +- Issue #27369: In test_pyexpat, avoid testing an error message detail that
 +  changed in Expat 2.2.0.
  
 -- Issue #25182: The stdprinter (used as sys.stderr before the io module is
 -  imported at startup) now uses the backslashreplace error handler.
 +- Issue #27594: Prevent assertion error when running test_ast with coverage
 +  enabled: ensure code object has a valid first line number.
 +  Patch suggested by Ivan Levkivskyi.
  
 -- Issue #25131: Make the line number and column offset of set/dict literals and
 -  comprehensions correspond to the opening brace.
 +Windows
 +-------
  
 -- Issue #25150: Hide the private _Py_atomic_xxx symbols from the public
 -  Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
 -  becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
 +- Issue #27647: Update bundled Tcl/Tk to 8.6.6.
  
 -Library
 --------
 +- Issue #27610: Adds PEP 514 metadata to Windows installer
  
 -- Issue #25626: Change three zlib functions to accept sizes that fit in
 -  Py_ssize_t, but internally cap those sizes to UINT_MAX.  This resolves a
 -  regression in 3.5 where GzipFile.read() failed to read chunks larger than 2
 -  or 4 GiB.  The change affects the zlib.Decompress.decompress() max_length
 -  parameter, the zlib.decompress() bufsize parameter, and the
 -  zlib.Decompress.flush() length parameter.
 +- Issue #27469: Adds a shell extension to the launcher so that drag and drop
 +  works correctly.
  
 -- Issue #25583: Avoid incorrect errors raised by os.makedirs(exist_ok=True)
 -  when the OS gives priority to errors such as EACCES over EEXIST.
 +- Issue #27309: Enables proper Windows styles in python[w].exe manifest.
  
 -- Issue #25593: Change semantics of EventLoop.stop() in asyncio.
 +Build
 +-----
  
 -- Issue #6973: When we know a subprocess.Popen process has died, do
 -  not allow the send_signal(), terminate(), or kill() methods to do
 -  anything as they could potentially signal a different process.
 +- Issue #27713: Suppress spurious build warnings when updating importlib's
 +  bootstrap files.  Patch by Xiang Zhang
  
 -- Issue #25590: In the Readline completer, only call getattr() once per
 -  attribute.
 +- Issue #25825: Correct the references to Modules/python.exp, which is
 +  required on AIX.  The references were accidentally changed in 3.5.0a1.
  
 -- Issue #25498: Fix a crash when garbage-collecting ctypes objects created
 -  by wrapping a memoryview.  This was a regression made in 3.5a1.  Based
 -  on patch by Eryksun.
 +- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
 +  Chi Hsuan Yen.
  
 -- Issue #25584: Added "escape" to the __all__ list in the glob module.
 +- Issue #27641: The configure script now inserts comments into the makefile
 +  to prevent the pgen and _freeze_importlib executables from being cross-
 +  compiled.
  
 -- Issue #25584: Fixed recursive glob() with patterns starting with '\*\*'.
 +- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
 +  used for file generation during the build.
  
 -- Issue #25446: Fix regression in smtplib's AUTH LOGIN support.
 +- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X.
 +  Also update FreedBSD version checks for the original ctype UTF-8 workaround.
  
 -- Issue #18010: Fix the pydoc web server's module search function to handle
 -  exceptions from importing packages.
  
 -- Issue #25554: Got rid of circular references in regular expression parsing.
 +What's New in Python 3.6.0 alpha 3?
 +===================================
  
 -- Issue #25510: fileinput.FileInput.readline() now returns b'' instead of ''
 -  at the end if the FileInput was opened with binary mode.
 -  Patch by Ryosuke Ito.
 +*Release date: 2016-07-11*
  
 -- Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties.
 -  Original patch by John Mark Vandenberg.
 +Core and Builtins
 +-----------------
  
 -- Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4.
 +- Issue #27473: Fixed possible integer overflow in bytes and bytearray
 +  concatenations.  Patch by Xiang Zhang.
  
 -- Issue #21827: Fixed textwrap.dedent() for the case when largest common
 -  whitespace is a substring of smallest leading whitespace.
 -  Based on patch by Robert Li.
 +- Issue #23034: The output of a special Python build with defined COUNT_ALLOCS,
 +  SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by  default.  It can
 +  be re-enabled using the "-X showalloccount" option.  It now outputs to stderr
 +  instead of stdout.
  
 -- Issue #25447: The lru_cache() wrapper objects now can be copied and pickled
 -  (by returning the original object unchanged).
 +- Issue #27443: __length_hint__() of bytearray iterators no longer return a
 +  negative integer for a resized bytearray.
  
 -- Issue #25390: typing: Don't crash on Union[str, Pattern].
 +- Issue #27007: The fromhex() class methods of bytes and bytearray subclasses
 +  now return an instance of corresponding subclass.
  
 -- Issue #25441: asyncio: Raise error from drain() when socket is closed.
 +Library
 +-------
  
 -- Issue #25410: Cleaned up and fixed minor bugs in C implementation of
 -  OrderedDict.
 +- Issue #26844: Fix error message for imp.find_module() to refer to 'path'
 +  instead of 'name'. Patch by Lev Maximov.
  
 -- Issue #25411: Improved Unicode support in SMTPHandler through better use of
 -  the email package. Thanks to user simon04 for the patch.
 +- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
 +  an error about unclean EOF.
  
 -- Issue #25407: Remove mentions of the formatter module being removed in
 -  Python 3.6.
 +- Issue #27466: Change time format returned by http.cookie.time2netscape,
 +  confirming the netscape cookie format and making it consistent with
 +  documentation.
  
 -- Issue #25406: Fixed a bug in C implementation of OrderedDict.move_to_end()
 -  that caused segmentation fault or hang in iterating after moving several
 -  items to the start of ordered dict.
 +- Issue #21708: Deprecated dbm.dumb behavior that differs from common dbm
 +  behavior: creating a database in 'r' and 'w' modes and modifying a database
 +  in 'r' mode.
  
 -- Issue #25364: zipfile now works in threads disabled builds.
 +- Issue #26721: Change the socketserver.StreamRequestHandler.wfile attribute
 +  to implement BufferedIOBase. In particular, the write() method no longer
 +  does partial writes.
  
 -- Issue #25328: smtpd's SMTPChannel now correctly raises a ValueError if both
 -  decode_data and enable_SMTPUTF8 are set to true.
 +- Issue #22115: Added methods trace_add, trace_remove and trace_info in the
 +  tkinter.Variable class.  They replace old methods trace_variable, trace,
 +  trace_vdelete and trace_vinfo that use obsolete Tcl commands and might
 +  not work in future versions of Tcl.  Fixed old tracing methods:
 +  trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now
 +  always returns a list of pairs of strings, tracing in the "u" mode now works.
  
 -- Issue #25316: distutils raises OSError instead of DistutilsPlatformError
 -  when MSVC is not installed.
 +- Issue #26243: Only the level argument to zlib.compress() is keyword argument
 +  now.  The first argument is positional-only.
  
 -- Issue #25380: Fixed protocol for the STACK_GLOBAL opcode in
 -  pickletools.opcodes.
 +- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by
 +  Jelle Zijlstra.
  
 -- Issue #23972: Updates asyncio datagram create method allowing reuseport
 -  and reuseaddr socket options to be set prior to binding the socket.
 -  Mirroring the existing asyncio create_server method the reuseaddr option
 -  for datagram sockets defaults to True if the O/S is 'posix' (except if the
 -  platform is Cygwin). Patch by Chris Laws.
 +- Issue #27186: Update os.fspath()/PyOS_FSPath() to check the return value of
 +  __fspath__() to be either str or bytes.
  
 -- Issue #25304: Add asyncio.run_coroutine_threadsafe().  This lets you
 -  submit a coroutine to a loop from another thread, returning a
 -  concurrent.futures.Future.  By Vincent Michel.
 +- Issue #18726: All optional parameters of the dump(), dumps(),
 +  load() and loads() functions and JSONEncoder and JSONDecoder class
 +  constructors in the json module are now keyword-only.
  
 -- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the
 -  first question mark (?) rather than the last. Patch from Xiang Zhang.
 +- Issue #27319: Methods selection_set(), selection_add(), selection_remove()
 +  and selection_toggle() of ttk.TreeView now allow passing multiple items as
 +  multiple arguments instead of passing them as a tuple.  Deprecated
 +  undocumented ability of calling the selection() method with arguments.
  
 -- Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the
 -  query part of the URL as if it were a path. Patch from Xiang Zhang.
 +- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct().
  
 -- Issue #24483: C implementation of functools.lru_cache() now calculates key's
 -  hash only once.
 +- Issue #27294: Numerical state in the repr for Tkinter event objects is now
 +  represented as a combination of known flags.
  
 -- Issue #22958: Constructor and update method of weakref.WeakValueDictionary
 -  now accept the self and the dict keyword arguments.
 +- Issue #27177: Match objects in the re module now support index-like objects
 +  as group indices.  Based on patches by Jeroen Demeyer and Xiang Zhang.
  
 -- Issue #22609: Constructor of collections.UserDict now accepts the self keyword
 -  argument.
 +- Issue #26754: Some functions (compile() etc) accepted a filename argument
 +  encoded as an iterable of integers. Now only strings and byte-like objects
 +  are accepted.
  
 -- Issue #25111: Fixed comparison of traceback.FrameSummary.
 +- Issue #26536: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by
 +  Daniel Stokes.
  
 -- Issue #25262: Added support for BINBYTES8 opcode in Python implementation of
 -  unpickler.  Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8
 -  opcodes no longer silently ignored on 32-bit platforms in C implementation.
 +- Issue #27048: Prevents distutils failing on Windows when environment
 +  variables contain non-ASCII characters
  
 -- Issue #25034: Fix string.Formatter problem with auto-numbering and
 -  nested format_specs. Patch by Anthon van der Neut.
 +- Issue #27330: Fixed possible leaks in the ctypes module.
  
 -- Issue #25233: Rewrite the guts of asyncio.Queue and
 -  asyncio.Semaphore to be more understandable and correct.
 +- Issue #27238: Got rid of bare excepts in the turtle module.  Original patch
 +  by Jelle Zijlstra.
  
 -- Issue #25203: Failed readline.set_completer_delims() no longer left the
 -  module in inconsistent state.
 +- Issue #27122: When an exception is raised within the context being managed
 +  by a contextlib.ExitStack() and one of the exit stack generators
 +  catches and raises it in a chain, do not re-raise the original exception
 +  when exiting, let the new chained one through.  This avoids the PEP 479
 +  bug described in issue25782.
  
 -- Issue #23600: Default implementation of tzinfo.fromutc() was returning
 -  wrong results in some cases.
 +- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on
 +  Linux.  Truncate size to INT_MAX and loop until we collected enough random
 +  bytes, instead of casting a directly Py_ssize_t to int.
  
 -- Issue #23329: Allow the ssl module to be built with older versions of
 -  LibreSSL.
 +- Issue #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement.
 +  Initial patch by Alex LordThorsen.
  
 -- Prevent overflow in _Unpickler_Read.
 +- Issue #26386: Fixed ttk.TreeView selection operations with item id's
 +  containing spaces.
  
 -- Issue #25047: The XML encoding declaration written by Element Tree now
 -  respects the letter case given by the user. This restores the ability to
 -  write encoding names in uppercase like "UTF-8", which worked in Python 2.
 +- Issue #8637: Honor a pager set by the env var MANPAGER (in preference to
 +  one set by the env var PAGER).
  
 -- Issue #25135: Make deque_clear() safer by emptying the deque before clearing.
 -  This helps avoid possible reentrancy issues.
 +- [Security] Issue #22636: Avoid shell injection problems with
 +  ctypes.util.find_library().
  
 -- Issue #19143: platform module now reads Windows version from kernel32.dll to
 -  avoid compatibility shims.
 +- Issue #16182: Fix various functions in the "readline" module to use the
 +  locale encoding, and fix get_begidx() and get_endidx() to return code point
 +  indexes.
  
 -- Issue #25092: Fix datetime.strftime() failure when errno was already set to
 -  EINVAL.
 +- Issue #27392: Add loop.connect_accepted_socket().
 +  Patch by Jim Fulton.
  
 -- Issue #23517: Fix rounding in fromtimestamp() and utcfromtimestamp() methods
 -  of datetime.datetime: microseconds are now rounded to nearest with ties
 -  going to nearest even integer (ROUND_HALF_EVEN), instead of being rounding
 -  towards minus infinity (ROUND_FLOOR). It's important that these methods use
 -  the same rounding mode than datetime.timedelta to keep the property:
 -  (datetime(1970,1,1) + timedelta(seconds=t)) == datetime.utcfromtimestamp(t).
 -  It also the rounding mode used by round(float) for example.
 +IDLE
 +----
  
 -- Issue #25155: Fix datetime.datetime.now() and datetime.datetime.utcnow() on
 -  Windows to support date after year 2038. It was a regression introduced in
 -  Python 3.5.0.
 +- Issue #27477: IDLE search dialogs now use ttk widgets.
  
 -- Issue #25108: Omitted internal frames in traceback functions print_stack(),
 -  format_stack(), and extract_stack() called without arguments.
 +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
 +  Make the default key set depend on the platform.
 +  Add tests for the changes to the config module.
  
 -- Issue #25118: Fix a regression of Python 3.5.0 in os.waitpid() on Windows.
 +- Issue #27452: make command line "idle-test> python test_help.py" work.
 +  __file__ is relative when python is started in the file's directory.
  
 -- Issue #24684: socket.socket.getaddrinfo() now calls
 -  PyUnicode_AsEncodedString() instead of calling the encode() method of the
 -  host, to handle correctly custom string with an encode() method which doesn't
 -  return a byte string. The encoder of the IDNA codec is now called directly
 -  instead of calling the encode() method of the string.
 +- Issue #27452: add line counter and crc to IDLE configHandler test dump.
  
 -- Issue #25060: Correctly compute stack usage of the BUILD_MAP opcode.
 +- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets.
 +  Module had subclasses SectionName, ModuleName, and HelpSource, which are
 +  used to get information from users by configdialog and file =>Load Module.
 +  Each subclass has itw own validity checks.  Using ModuleName allows users
 +  to edit bad module names instead of starting over.
 +  Add tests and delete the two files combined into the new one.
  
 -- Issue #24857: Comparing call_args to a long sequence now correctly returns a
 -  boolean result instead of raising an exception.  Patch by A Kaptur.
 +- Issue #27372: Test_idle no longer changes the locale.
  
 -- Issue #23144: Make sure that HTMLParser.feed() returns all the data, even
 -  when convert_charrefs is True.
 +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
  
 -- Issue #24982: shutil.make_archive() with the "zip" format now adds entries
 -  for directories (including empty directories) in ZIP file.
 +- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
 +  Previously, when IDLE was started from a console or by import, a cascade
 +  of warnings was emitted.  Patch by Serhiy Storchaka.
  
 -- Issue #25019: Fixed a crash caused by setting non-string key of expat parser.
 -  Based on patch by John Leitch.
 +- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root
 +  disabled.  Fix code and tests that fail with this restriction.  Fix htests to
 +  not create a second and redundant root and mainloop.
  
 -- Issue #16180: Exit pdb if file has syntax error, instead of trapping user
 -  in an infinite loop.  Patch by Xavier de Gaye.
 +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import.
  
 -- Issue #24891: Fix a race condition at Python startup if the file descriptor
 -  of stdin (0), stdout (1) or stderr (2) is closed while Python is creating
 -  sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set
 -  to None if the creation of the object failed, instead of raising an OSError
 -  exception. Initial patch written by Marco Paolini.
 -
 -- Issue #24992: Fix error handling and a race condition (related to garbage
 -  collection) in collections.OrderedDict constructor.
 +C API
 +-----
  
 -- Issue #24881: Fixed setting binary mode in Python implementation of FileIO
 -  on Windows and Cygwin.  Patch from Akira Li.
 +- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
 +  an iterable of integers. Now only strings and byte-like objects are accepted.
  
 -- Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer().
 +Build
 +-----
  
 -- Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating
 -  ssl.SSLContext.
 +- Issue #28066: Fix the logic that searches build directories for generated
 +  include files when building outside the source tree.
  
 -- Issue #25569: Fix memory leak in SSLSocket.getpeercert().
 +- Issue #27442: Expose the Android API level that python was built against, in
 +  sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'.
  
 -- Issue #25471: Sockets returned from accept() shouldn't appear to be
 -  nonblocking.
 +- Issue #27434: The interpreter that runs the cross-build, found in PATH, must
 +  now be of the same feature version (e.g. 3.6) as the source being built.
  
 -- Issue #25319: When threading.Event is reinitialized, the underlying condition
 -  should use a regular lock rather than a recursive lock.
 +- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
  
 -- Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
 -  Patch from Berker Peksag.
 +- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to
 +  plat-$(PLATFORM_TRIPLET).
 +  Rename the config directory (LIBPL) from config-$(LDVERSION) to
 +  config-$(LDVERSION)-$(PLATFORM_TRIPLET).
 +  Install the platform specifc _sysconfigdata module into the platform
 +  directory and rename it to include the ABIFLAGS.
  
 -- Issue #24764: cgi.FieldStorage.read_multi() now ignores the Content-Length
 -  header in part headers. Patch written by Peter Landry and reviewed by Pierre
 -  Quentel.
 +- Don't use largefile support for GNU/Hurd.
  
 -- Issue #24913: Fix overrun error in deque.index().
 -  Found by John Leitch and Bryce Darling.
 +Tools/Demos
 +-----------
  
 -- Issue #24774: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu.
 +- Issue #27332: Fixed the type of the first argument of module-level functions
 +  generated by Argument Clinic.  Patch by Petr Viktorin.
  
 -- Issue #21159: Improve message in configparser.InterpolationMissingOptionError.
 -  Patch from Łukasz Langa.
 +- Issue #27418: Fixed Tools/importbench/importbench.py.
  
 -- Issue #20362: Honour TestCase.longMessage correctly in assertRegex.
 -  Patch from Ilia Kurenkov.
 +Documentation
 +-------------
  
 -- Issue #23572: Fixed functools.singledispatch on classes with falsy
 -  metaclasses.  Patch by Ethan Furman.
 +- Issue #19489: Moved the search box from the sidebar to the header and footer
 +  of each page.  Patch by Ammar Askar.
  
 -- asyncio: ensure_future() now accepts awaitable objects.
 +- Issue #27285: Update documentation to reflect the deprecation of ``pyvenv``
 +  and normalize on the term "virtual environment". Patch by Steve Piercy.
  
 -IDLE
 -----
 +Tests
 +-----
  
 -- Issue #15348: Stop the debugger engine (normally in a user process)
 -  before closing the debugger window (running in the IDLE process).
 -  This prevents the RuntimeErrors that were being caught and ignored.
 +- Issue #27027: Added test.support.is_android that is True when this is an
 +  Android build.
  
 -- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the
 -  debugger is active (15347); b) closing the debugger with the [X] button
 -  (15348); and c) activating the debugger when already active (24455).
 -  The patch by Mark Roseman does this by making two changes.
 -  1. Suspend and resume the gui.interaction method with the tcl vwait
 -  mechanism intended for this purpose (instead of root.mainloop & .quit).
 -  2. In gui.run, allow any existing interaction to terminate first.
  
 -- Change 'The program' to 'Your program' in an IDLE 'kill program?' message
 -  to make it clearer that the program referred to is the currently running
 -  user program, not IDLE itself.
 +What's New in Python 3.6.0 alpha 2?
 +===================================
  
 -- Issue #24750: Improve the appearance of the IDLE editor window status bar.
 -  Patch by Mark Roseman.
 +*Release date: 2016-06-13*
  
 -- Issue #25313: Change the handling of new built-in text color themes to better
 -  address the compatibility problem introduced by the addition of IDLE Dark.
 -  Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.
 +Core and Builtins
 +-----------------
  
 -- Issue #24782: Extension configuration is now a tab in the IDLE Preferences
 -  dialog rather than a separate dialog.  The former tabs are now a sorted
 -  list.  Patch by Mark Roseman.
 +- Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes.
 +  Patch by Demur Rumed.
  
 -- Issue #22726: Re-activate the config dialog help button with some content
 -  about the other buttons and the new IDLE Dark theme.
 +- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1.
 +  Patch by Dave Sawyer.
  
 -- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme.
 -  It is more or less IDLE Classic inverted, with a cobalt blue background.
 -  Strings, comments, keywords, ... are still green, red, orange, ... .
 -  To use it with IDLEs released before November 2015, hit the
 -  'Save as New Custom Theme' button and enter a new name,
 -  such as 'Custom Dark'.  The custom theme will work with any IDLE
 -  release, and can be modified.
 +- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode.  Calling
 +  function with generalized unpacking (PEP 448) and conflicting keyword names
 +  could cause undefined behavior.
  
 -- Issue #25224: README.txt is now an idlelib index for IDLE developers and
 -  curious users.  The previous user content is now in the IDLE doc chapter.
 -  'IDLE' now means 'Integrated Development and Learning Environment'.
 +- Issue #27140: Added BUILD_CONST_KEY_MAP opcode.
  
 -- Issue #24820: Users can now set breakpoint colors in
 -  Settings -> Custom Highlighting.  Original patch by Mark Roseman.
 +- Issue #27186: Add support for os.PathLike objects to open() (part of PEP 519).
  
 -- Issue #24972: Inactive selection background now matches active selection
 -  background, as configured by users, on all systems.  Found items are now
 -  always highlighted on Windows.  Initial patch by Mark Roseman.
 +- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a
 +  negative number without setting an exception.
  
 -- Issue #24570: Idle: make calltip and completion boxes appear on Macs
 -  affected by a tk regression.  Initial patch by Mark Roseman.
 +- Issue #26983: float() now always return an instance of exact float.
 +  The deprecation warning is emitted if __float__ returns an instance of
 +  a strict subclass of float.  In a future versions of Python this can
 +  be an error.
  
 -- Issue #24988: Idle ScrolledList context menus (used in debugger)
 -  now work on Mac Aqua.  Patch by Mark Roseman.
 +- Issue #27097: Python interpreter is now about 7% faster due to optimized
 +  instruction decoding.  Based on patch by Demur Rumed.
  
 -- Issue #24801: Make right-click for context menu work on Mac Aqua.
 -  Patch by Mark Roseman.
 +- Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode.
 +  Patch by Demur Rumed.
  
 -- Issue #25173: Associate tkinter messageboxes with a specific widget.
 -  For Mac OSX, make them a 'sheet'.  Patch by Mark Roseman.
 +- Issue #23275: Allow assigning to an empty target list in round brackets:
 +  () = iterable.
  
 -- Issue #25198: Enhance the initial html viewer now used for Idle Help.
 -  * Properly indent fixed-pitch text (patch by Mark Roseman).
 -  * Give code snippet a very Sphinx-like light blueish-gray background.
 -  * Re-use initial width and height set by users for shell and editor.
 -  * When the Table of Contents (TOC) menu is used, put the section header
 -  at the top of the screen.
 +- Issue #27243: Update the __aiter__ protocol: instead of returning
 +  an awaitable that resolves to an asynchronous iterator, the asynchronous
 +  iterator should be returned directly.  Doing the former will trigger a
 +  PendingDeprecationWarning.
  
 -- Issue #25225: Condense and rewrite Idle doc section on text colors.
  
 -- Issue #21995: Explain some differences between IDLE and console Python.
 +Library
 +-------
  
 -- Issue #22820: Explain need for *print* when running file from Idle editor.
 +- Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants
 +  exposed on the API which are not implemented on GNU/Hurd. They would not
 +  work at runtime anyway.
  
 -- Issue #25224: Doc: augment Idle feature list and no-subprocess section.
 +- Issue #27025: Generated names for Tkinter widgets are now more meanful
 +  and recognizirable.
  
 -- Issue #25219: Update doc for Idle command line options.
 -  Some were missing and notes were not correct.
 +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and
 +  functools.partial objects.
  
 -- Issue #24861: Most of idlelib is private and subject to change.
 -  Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__.
 +- Issue #27294: Improved repr for Tkinter event objects.
  
 -- Issue #25199: Idle: add synchronization comments for future maintainers.
 +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__.
 +  Patch by Gareth Rees.
  
 -- Issue #16893: Replace help.txt with help.html for Idle doc display.
 -  The new idlelib/help.html is rstripped Doc/build/html/library/idle.html.
 -  It looks better than help.txt and will better document Idle as released.
 -  The tkinter html viewer that works for this file was written by Mark Roseman.
 -  The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated.
 +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283.
  
 -- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6.
 +- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772.
 +  Reported by Team Oststrom.
  
 -- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts).
 +- Issue #21386: Implement missing IPv4Address.is_global property.  It was
 +  documented since 07a5610bae9d.  Initial patch by Roger Luethi.
  
 -Documentation
 --------------
 +- Issue #27029: Removed deprecated support of universal newlines mode from
 +  ZipFile.open().
  
 -- Issue #22558: Add remaining doc links to source code for Python-coded modules.
 -  Patch by Yoni Lavi.
 +- Issue #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in
 +  regular expressions now are errors.  The re.LOCALE flag now can be used
 +  only with bytes patterns.
  
 -- Issue #12067: Rewrite Comparisons section in the Expressions chapter of the
 -  language reference. Some of the details of comparing mixed types were
 -  incorrect or ambiguous. NotImplemented is only relevant at a lower level
 -  than the Expressions chapter. Added details of comparing range() objects,
 -  and default behaviour and consistency suggestions for user-defined classes.
 -  Patch from Andy Maier.
 +- Issue #27186: Add os.PathLike support to DirEntry (part of PEP 519).
 +  Initial patch by Jelle Zijlstra.
  
 -- Issue #24952: Clarify the default size argument of stack_size() in
 -  the "threading" and "_thread" modules. Patch from Mattip.
 +- Issue #20900: distutils register command now decodes HTTP responses
 +  correctly.  Initial patch by ingrid.
  
 -- Issue #23725: Overhaul tempfile docs. Note deprecated status of mktemp.
 -  Patch from Zbigniew Jędrzejewski-Szmek.
 +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional
 +  status (part of PEP 519). Initial patch by Dusty Phillips.
  
 -- Issue #24808: Update the types of some PyTypeObject fields.  Patch by
 -  Joseph Weston.
 +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and
 +  os.fsdecode() (part of PEP 519).
  
 -- Issue #22812: Fix unittest discovery examples.
 -  Patch from Pam McA'Nulty.
 +- Issue #27186: Introduce os.PathLike and os.fspath() (part of PEP 519).
  
 -Tests
 ------
 +- A new version of typing.py provides several new classes and
 +  features: @overload outside stubs, Reversible, DefaultDict, Text,
 +  ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug
 +  fixes (note that some of the new features are not yet implemented in
 +  mypy or other static analyzers).  Also classes for PEP 492
 +  (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact
 +  they made it into 3.5.1 but were never mentioned).
  
 -- Issue #25449: Added tests for OrderedDict subclasses.
 +- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from
 +  sending a message body for 205 Reset Content.  Also, don't send Content
 +  header fields in responses that don't have a body.  Patch by Susumu
 +  Koshiba.
  
 -- Issue #25099: Make test_compileall not fail when an entry on sys.path cannot
 -  be written to (commonly seen in administrative installs on Windows).
 +- Issue #21313: Fix the "platform" module to tolerate when sys.version
 +  contains truncated build information.
  
 -- Issue #23919: Prevents assert dialogs appearing in the test suite.
 +- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls
 +  ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading
 +  ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch
 +  written by Colm Buckley.
  
 -- ``PCbuild\rt.bat`` now accepts an unlimited number of arguments to pass along
 -  to regrtest.py.  Previously there was a limit of 9.
 +- Issue #23883: Added missing APIs to __all__ to match the documented APIs
 +  for the following modules: cgi, mailbox, mimetypes, plistlib and smtpd.
 +  Patches by Jacek Kołodziej.
  
 -Build
 ------
 +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams
 +  with a predefined zdict.  Based on patch by Xiang Zhang.
  
 -- Issue #24915: Add LLVM support for PGO builds and use the test suite to
 -  generate the profile data. Initial patch by Alecsandru Patrascu of Intel.
 +- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely
 +  write data to the client.  Previously it could do partial writes and
 +  truncate data.  Also, wsgiref.handler.ServerHandler can now handle stdout
 +  doing partial writes, but this is deprecated.
  
 -- Issue #24910: Windows MSIs now have unique display names.
 +- Issue #21272: Use _sysconfigdata.py to initialize distutils.sysconfig.
  
 -- Issue #24986: It is now possible to build Python on Windows without errors
 -  when external libraries are not available.
 +- Issue #19611: :mod:`inspect` now reports the implicit ``.0`` parameters
 +  generated by the compiler for comprehension and generator expression scopes
 +  as if they were positional-only parameters called ``implicit0``.
 +  Patch by Jelle Zijlstra.
  
 -Windows
 --------
 +- Issue #26809: Add ``__all__`` to :mod:`string`.  Patch by Emanuel Barry.
  
 -- Issue #25450: Updates shortcuts to start Python in installation directory.
 +- Issue #26373: subprocess.Popen.communicate now correctly ignores
 +  BrokenPipeError when the child process dies before .communicate()
 +  is called in more/all circumstances.
  
 -- Issue #25164: Changes default all-users install directory to match per-user
 -  directory.
 +- signal, socket, and ssl module IntEnum constant name lookups now return a
 +  consistent name for values having multiple names.  Ex: signal.Signals(6)
 +  now refers to itself as signal.SIGALRM rather than flipping between that
 +  and signal.SIGIOT based on the interpreter's hash randomization seed.
  
 -- Issue #25143: Improves installer error messages for unsupported platforms.
 +- Issue #27167: Clarify the subprocess.CalledProcessError error message text
 +  when the child process died due to a signal.
  
 -- Issue #25163: Display correct directory in installer when using non-default
 -  settings.
 +- Issue #25931: Don't define socketserver.Forking* names on platforms such
 +  as Windows that do not support os.fork().
  
 -- Issue #25361: Disables use of SSE2 instructions in Windows 32-bit build
 +- Issue #21776: distutils.upload now correctly handles HTTPError.
 +  Initial patch by Claudiu Popa.
  
 -- Issue #25089: Adds logging to installer for case where launcher is not
 -  selected on upgrade.
 +- Issue #26526: Replace custom parse tree validation in the parser
 +  module with a simple DFA validator.
  
 -- Issue #25165: Windows uninstallation should not remove launcher if other
 -  versions remain
 +- Issue #27114: Fix SSLContext._load_windows_store_certs fails with
 +  PermissionError
  
 -- Issue #25112: py.exe launcher is missing icons
 +- Issue #18383: Avoid creating duplicate filters when using filterwarnings
 +  and simplefilter.  Based on patch by Alex Shkop.
  
 -- Issue #25102: Windows installer does not precompile for -O or -OO.
 +- Issue #23026: winreg.QueryValueEx() now return an integer for REG_QWORD type.
  
 -- Issue #25081: Makes Back button in installer go back to upgrade page when
 -  upgrading.
 +- Issue #26741: subprocess.Popen destructor now emits a ResourceWarning warning
 +  if the child process is still running.
  
 -- Issue #25091: Increases font size of the installer.
 +- Issue #27056: Optimize pickle.load() and pickle.loads(), up to 10% faster
 +  to deserialize a lot of small objects.
  
 -- Issue #25126: Clarifies that the non-web installer will download some
 -  components.
 +- Issue #21271: New keyword only parameters in reset_mock call.
  
 -- Issue #25213: Restores requestedExecutionLevel to manifest to disable
 -  UAC virtualization.
 +IDLE
 +----
  
 -- Issue #25022: Removed very outdated PC/example_nt/ directory.
 +- Issue #5124: Paste with text selected now replaces the selection on X11.
 +  This matches how paste works on Windows, Mac, most modern Linux apps,
 +  and ttk widgets.  Original patch by Serhiy Storchaka.
  
 -Tools/Demos
 ------------
 +- Issue #24750: Switch all scrollbars in IDLE to ttk versions.
 +  Where needed, minimal tests are added to cover changes.
  
 -- Issue #25440: Fix output of python-config --extension-suffix.
 +- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets.
 +  Delete now unneeded tk version tests and code for older versions.
 +  Add test for IDLE syntax colorizoer.
  
 +- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed.
  
 -What's New in Python 3.5.0 final?
 -=================================
 +- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx.
  
 -Release date: 2015-09-13
 +- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory
 +  is a private implementation of test.test_idle and tool for maintainers.
  
 -Build
 ------
 +- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests.
 +  These persisted after other warnings were suppressed in #20567.
 +  Apply Serhiy Storchaka's update_idletasks solution to four test files.
 +  Record this additional advice in idle_test/README.txt
  
 -- Issue #25071: Windows installer should not require TargetDir
 -  parameter when installing quietly.
 +- Issue #20567: Revise idle_test/README.txt with advice about avoiding
 +  tk warning messages from tests.  Apply advice to several IDLE tests.
  
 +- Issue #24225: Update idlelib/README.txt with new file names
 +  and event handlers.
  
 -What's New in Python 3.5.0 release candidate 4?
 -===============================================
 +- Issue #27156: Remove obsolete code not used by IDLE.  Replacements:
 +  1. help.txt, replaced by help.html, is out-of-date and should not be used.
 +  Its dedicated viewer has be replaced by the html viewer in help.py.
 +  2. ``import idlever; I = idlever.IDLE_VERSION`` is the same as
 +  ``import sys; I = version[:version.index(' ')]``
 +  3. After ``ob = stackviewer.VariablesTreeItem(*args)``,
 +  ``ob.keys() == list(ob.object.keys)``.
 +  4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk
  
 -Release date: 2015-09-09
 +- Issue #27117: Make colorizer htest and turtledemo work with dark themes.
 +  Move code for configuring text widget colors to a new function.
  
 -Library
 --------
 +- Issue #24225: Rename many `idlelib/*.py` and `idle_test/test_*.py` files.
 +  Edit files to replace old names with new names when the old name
 +  referred to the module rather than the class it contained.
 +  See the issue and IDLE section in What's New in 3.6 for more.
  
 -- Issue #25029: Fixes MemoryError in test_strptime.
 -
 -Build
 ------
 +- Issue #26673: When tk reports font size as 0, change to size 10.
 +  Such fonts on Linux prevented the configuration dialog from opening.
  
 -- Issue #25027: Reverts partial-static build options and adds
 -  vcruntime140.dll to Windows installation.
 +- Issue #21939: Add test for IDLE's percolator.
 +  Original patch by Saimadhav Heblikar.
  
 +- Issue #21676: Add test for IDLE's replace dialog.
 +  Original patch by Saimadhav Heblikar.
  
 -What's New in Python 3.5.0 release candidate 3?
 -===============================================
 +- Issue #18410: Add test for IDLE's search dialog.
 +  Original patch by Westley Martínez.
  
 -Release date: 2015-09-07
 +- Issue #21703: Add test for undo delegator.  Patch mostly by
 +  Saimadhav Heblikar .
  
 -Core and Builtins
 ------------------
 +- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks.
  
 -- Issue #24305: Prevent import subsystem stack frames from being counted
 -  by the warnings.warn(stacklevel=) parameter.
 +- Issue #23977: Add more asserts to test_delegator.
  
 -- Issue #24912: Prevent __class__ assignment to immutable built-in objects.
 +Documentation
 +-------------
  
 -- Issue #24975: Fix AST compilation for PEP 448 syntax.
 +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the
 +  resulting links to use lowercase.  Patch by Sean Rodman, test by Kaushik
 +  Nadikuditi.
  
 -Library
 --------
 +- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5.
  
 -- Issue #24917: time_strftime() buffer over-read.
 +- Issue #22558: Add remaining doc links to source code for Python-coded modules.
 +  Patch by Yoni Lavi.
  
 -- Issue #24748: To resolve a compatibility problem found with py2exe and
 -  pywin32, imp.load_dynamic() once again ignores previously loaded modules
 -  to support Python modules replacing themselves with extension modules.
 -  Patch by Petr Viktorin.
 +Tests
 +-----
  
 -- Issue #24635: Fixed a bug in typing.py where isinstance([], typing.Iterable)
 -  would return True once, then False on subsequent calls.
 +- Issue #25285: regrtest now uses subprocesses when the -j1 command line option
 +  is used: each test file runs in a fresh child process. Before, the -j1 option
 +  was ignored.
  
 -- Issue #24989: Fixed buffer overread in BytesIO.readline() if a position is
 -  set beyond size.  Based on patch by John Leitch.
 +- Issue #25285: Tools/buildbot/test.bat script now uses -j1 by default to run
 +  each test file in fresh child process.
  
 -- Issue #24913: Fix overrun error in deque.index().
 -  Found by John Leitch and Bryce Darling.
 +Windows
 +-------
  
 +- Issue #27064: The py.exe launcher now defaults to Python 3.
 +  The Windows launcher ``py.exe`` no longer prefers an installed
 +  Python 2 version over Python 3 by default when used interactively.
  
 -What's New in Python 3.5.0 release candidate 2?
 -===============================================
 +Build
 +-----
  
 -Release date: 2015-08-25
 +- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds.  Patch
 +  by Xavier de Gaye.
  
 -Core and Builtins
 ------------------
 +- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build
 +  and link with OpenSSL 1.0.2h.
  
 -- Issue #24769: Interpreter now starts properly when dynamic loading
 -  is disabled.  Patch by Petr Viktorin.
 +Misc
 +----
  
 -- Issue #21167: NAN operations are now handled correctly when python is
 -  compiled with ICC even if -fp-model strict is not specified.
 +- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove
 +  unused and outdated icons.
  
 -- Issue #24492: A "package" lacking a __name__ attribute when trying to perform
 -  a ``from .. import ...`` statement will trigger an ImportError instead of an
 -  AttributeError.
 +C API
 +-----
  
 -Library
 --------
 +- Issue #27186: Add the PyOS_FSPath() function (part of PEP 519).
  
 -- Issue #24847: Removes vcruntime140.dll dependency from Tcl/Tk.
 +- Issue #26282: PyArg_ParseTupleAndKeywords() now supports positional-only
 +  parameters.
  
 -- Issue #24839: platform._syscmd_ver raises DeprecationWarning
 +Tools/Demos
 +-----------
  
 -- Issue #24867: Fix Task.get_stack() for 'async def' coroutines
 +- Issue #26282: Argument Clinic now supports positional-only and keyword
 +  parameters in the same function.
  
  
 -What's New in Python 3.5.0 release candidate 1?
 -===============================================
 +What's New in Python 3.6.0 alpha 1?
 +===================================
  
 -Release date: 2015-08-09
 +Release date: 2016-05-16
  
  Core and Builtins
  -----------------
index c192e72193f0e2dded181593726ca271c5c1e544,2d93679e1230ebb53393d7ac0bce52516b714ccd..ab84c304d9b82c6e500dd249985289e5da847947
@@@ -29,4 -28,33 +29,34 @@@ _weakref_getweakrefcount(PyObject *modu
  exit:
      return return_value;
  }
- /*[clinic end generated code: output=e1ad587147323e19 input=a9049054013a1b77]*/
+ PyDoc_STRVAR(_weakref__remove_dead_weakref__doc__,
+ "_remove_dead_weakref($module, dct, key, /)\n"
+ "--\n"
+ "\n"
+ "Atomically remove key from dict if it points to a dead weakref.");
+ #define _WEAKREF__REMOVE_DEAD_WEAKREF_METHODDEF    \
+     {"_remove_dead_weakref", (PyCFunction)_weakref__remove_dead_weakref, METH_VARARGS, _weakref__remove_dead_weakref__doc__},
+ static PyObject *
+ _weakref__remove_dead_weakref_impl(PyObject *module, PyObject *dct,
+                                    PyObject *key);
+ static PyObject *
+ _weakref__remove_dead_weakref(PyObject *module, PyObject *args)
+ {
+     PyObject *return_value = NULL;
+     PyObject *dct;
+     PyObject *key;
+     if (!PyArg_ParseTuple(args, "O!O:_remove_dead_weakref",
 -        &PyDict_Type, &dct, &key))
++        &PyDict_Type, &dct, &key)) {
+         goto exit;
++    }
+     return_value = _weakref__remove_dead_weakref_impl(module, dct, key);
+ exit:
+     return return_value;
+ }
 -/*[clinic end generated code: output=5764cb64a6f66ffd input=a9049054013a1b77]*/
++/*[clinic end generated code: output=e860dd818a44bc9b input=a9049054013a1b77]*/
index 5fff34b11946463398ded981d25f5709fb244166,747d2189285d61f17b96f028a6826a21155e08fd..64941937e748ad8beb76100d9cd744c11098acd9
@@@ -1591,11 -1246,37 +1591,34 @@@ _PyDict_SetItem_KnownHash(PyObject *op
      return insertdict(mp, key, hash, value);
  }
  
 -delitem_common(PyDictObject *mp, PyDictKeyEntry *ep, PyObject **value_addr)
+ static int
 -    if (!_PyDict_HasSplitTable(mp)) {
 -        ENSURE_ALLOWS_DELETIONS(mp);
 -        old_key = ep->me_key;
 -        Py_INCREF(dummy);
 -        ep->me_key = dummy;
 -        Py_DECREF(old_key);
 -    }
++delitem_common(PyDictObject *mp, Py_ssize_t hashpos, Py_ssize_t ix,
++               PyObject **value_addr)
+ {
+     PyObject *old_key, *old_value;
++    PyDictKeyEntry *ep;
+     old_value = *value_addr;
++    assert(old_value != NULL);
+     *value_addr = NULL;
+     mp->ma_used--;
++    mp->ma_version_tag = DICT_NEXT_VERSION();
++    ep = &DK_ENTRIES(mp->ma_keys)[ix];
++    dk_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
++    ENSURE_ALLOWS_DELETIONS(mp);
++    old_key = ep->me_key;
++    ep->me_key = NULL;
++    Py_DECREF(old_key);
+     Py_DECREF(old_value);
++
++    assert(_PyDict_CheckConsistency(mp));
+     return 0;
+ }
  int
  PyDict_DelItem(PyObject *op, PyObject *key)
  {
 -    PyDictObject *mp;
      Py_hash_t hash;
 -    PyDictKeyEntry *ep;
 -    PyObject **value_addr;
--
 -    if (!PyDict_Check(op)) {
 -        PyErr_BadInternalCall();
 -        return -1;
 -    }
      assert(key);
      if (!PyUnicode_CheckExact(key) ||
          (hash = ((PyASCIIObject *) key)->hash) == -1) {
  int
  _PyDict_DelItem_KnownHash(PyObject *op, PyObject *key, Py_hash_t hash)
  {
 +    Py_ssize_t hashpos, ix;
      PyDictObject *mp;
--    PyDictKeyEntry *ep;
-     PyObject *old_key, *old_value;
      PyObject **value_addr;
  
      if (!PyDict_Check(op)) {
          _PyErr_SetKeyError(key);
          return -1;
      }
 -    return delitem_common(mp, ep, value_addr);
 +    assert(dk_get_index(mp->ma_keys, hashpos) == ix);
 +
 +    // Split table doesn't allow deletion.  Combine it.
 +    if (_PyDict_HasSplitTable(mp)) {
 +        if (dictresize(mp, DK_SIZE(mp->ma_keys))) {
 +            return -1;
 +        }
 +        ix = (mp->ma_keys->dk_lookup)(mp, key, hash, &value_addr, &hashpos);
 +        assert(ix >= 0);
 +    }
++    return delitem_common(mp, hashpos, ix, value_addr);
+ }
  
-     old_value = *value_addr;
-     assert(old_value != NULL);
-     *value_addr = NULL;
-     mp->ma_used--;
-     mp->ma_version_tag = DICT_NEXT_VERSION();
-     ep = &DK_ENTRIES(mp->ma_keys)[ix];
-     dk_set_index(mp->ma_keys, hashpos, DKIX_DUMMY);
-     ENSURE_ALLOWS_DELETIONS(mp);
-     old_key = ep->me_key;
-     ep->me_key = NULL;
-     Py_DECREF(old_key);
-     Py_DECREF(old_value);
++/* This function promises that the predicate -> deletion sequence is atomic
++ * (i.e. protected by the GIL), assuming the predicate itself doesn't
++ * release the GIL.
++ */
+ int
+ _PyDict_DelItemIf(PyObject *op, PyObject *key,
+                   int (*predicate)(PyObject *value))
+ {
++    Py_ssize_t hashpos, ix;
+     PyDictObject *mp;
+     Py_hash_t hash;
 -    PyDictKeyEntry *ep;
+     PyObject **value_addr;
+     int res;
  
-     assert(_PyDict_CheckConsistency(mp));
-     return 0;
+     if (!PyDict_Check(op)) {
+         PyErr_BadInternalCall();
+         return -1;
+     }
+     assert(key);
+     hash = PyObject_Hash(key);
+     if (hash == -1)
+         return -1;
+     mp = (PyDictObject *)op;
 -    ep = (mp->ma_keys->dk_lookup)(mp, key, hash, &value_addr);
 -    if (ep == NULL)
++    ix = (mp->ma_keys->dk_lookup)(mp, key, hash, &value_addr, &hashpos);
++    if (ix == DKIX_ERROR)
+         return -1;
 -    if (*value_addr == NULL) {
++    if (ix == DKIX_EMPTY || *value_addr == NULL) {
+         _PyErr_SetKeyError(key);
+         return -1;
+     }
++    assert(dk_get_index(mp->ma_keys, hashpos) == ix);
++
++    // Split table doesn't allow deletion.  Combine it.
++    if (_PyDict_HasSplitTable(mp)) {
++        if (dictresize(mp, DK_SIZE(mp->ma_keys))) {
++            return -1;
++        }
++        ix = (mp->ma_keys->dk_lookup)(mp, key, hash, &value_addr, &hashpos);
++        assert(ix >= 0);
++    }
++
+     res = predicate(*value_addr);
+     if (res == -1)
+         return -1;
+     if (res > 0)
 -        return delitem_common(mp, ep, value_addr);
++        return delitem_common(mp, hashpos, ix, value_addr);
+     else
+         return 0;
  }
  
  void
  PyDict_Clear(PyObject *op)
  {