]> granicus.if.org Git - python/commitdiff
Issue #25523: Merge a-to-an corrections from 3.4.
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 2 Nov 2015 12:39:05 +0000 (14:39 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Mon, 2 Nov 2015 12:39:05 +0000 (14:39 +0200)
21 files changed:
1  2 
Doc/install/index.rst
Doc/library/asyncio-protocol.rst
Doc/library/contextlib.rst
Doc/library/gzip.rst
Doc/library/pickle.rst
Doc/library/socket.rst
Doc/library/unittest.rst
Doc/library/urllib.request.rst
Include/unicodeobject.h
Lib/http/cookiejar.py
Lib/test/regrtest.py
Lib/test/test_dict.py
Lib/test/test_io.py
Lib/test/test_socket.py
Lib/test/test_userdict.py
Lib/tkinter/__init__.py
Misc/HISTORY
Misc/NEWS
Modules/_ssl.c
Modules/itertoolsmodule.c
Objects/unicodeobject.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc Misc/HISTORY
Simple merge
diff --cc Misc/NEWS
index f40fc4132a1d3d247c382dd09151ffccc37173f3,a7029a6bb750bcef13a7af504138e4d3e785245a..5fb54d893e3bf02c6ba4265af6b59b389704dae7
+++ b/Misc/NEWS
@@@ -1651,1745 -1646,1779 +1651,1745 @@@ Release date: 2015-02-0
  Core and Builtins
  -----------------
  
 -- Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
 +- Issue #23285: PEP 475 - EINTR handling.
  
 -- Issue #21209: Fix sending tuples to custom generator objects with the yield
 -  from syntax.
 +- Issue #22735: Fix many edge cases (including crashes) involving custom mro()
 +  implementations.
  
 -- Issue #21134: Fix segfault when str is called on an uninitialized
 -  UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.
 +- Issue #22896: Avoid using PyObject_AsCharBuffer(), PyObject_AsReadBuffer()
 +  and PyObject_AsWriteBuffer().
  
 -- Issue #19537: Fix PyUnicode_DATA() alignment under m68k.  Patch by
 -  Andreas Schwab.
 +- Issue #21295: Revert some changes (issue #16795) to AST line numbers and
 +  column offsets that constituted a regression.
  
 -- Issue #20929: Add a type cast to avoid shifting a negative number.
 +- Issue #22986: Allow changing an object's __class__ between a dynamic type and
 +  static type in some cases.
  
 -- Issue #20731: Properly position in source code files even if they
 -  are opened in text mode. Patch by Serhiy Storchaka.
 +- Issue #15859: PyUnicode_EncodeFSDefault(), PyUnicode_EncodeMBCS() and
 +  PyUnicode_EncodeCodePage() now raise an exception if the object is not an
 +  Unicode object. For PyUnicode_EncodeFSDefault(), it was already the case on
 +  platforms other than Windows. Patch written by Campbell Barton.
  
 -- Issue #20637: Key-sharing now also works for instance dictionaries of
 -  subclasses.  Patch by Peter Ingebretson.
 +- Issue #21408: The default __ne__() now returns NotImplemented if __eq__()
 +  returned NotImplemented.  Original patch by Martin Panter.
  
 -- Issue #12546: Allow \x00 to be used as a fill character when using str, int,
 -  float, and complex __format__ methods.
 +- Issue #23321: Fixed a crash in str.decode() when error handler returned
 +  replacment string longer than mailformed input data.
  
 -- Issue #13598: Modify string.Formatter to support auto-numbering of
 -  replacement fields. It now matches the behavior of str.format() in
 -  this regard. Patches by Phil Elson and Ramchandra Apte.
 +- Issue #22286: The "backslashreplace" error handlers now works with
 +  decoding and translating.
  
 -Library
 --------
 +- Issue #23253: Delay-load ShellExecute[AW] in os.startfile for reduced
 +  startup overhead on Windows.
  
 -- Issue #21088: Bugfix for curses.window.addch() regression in 3.4.0.
 -  In porting to Argument Clinic, the first two arguments were reversed.
 +- Issue #22038: pyatomic.h now uses stdatomic.h or GCC built-in functions for
 +  atomic memory access if available. Patch written by Vitor de Lima and Gustavo
 +  Temple.
  
 -- Issue #21469: Reduced the risk of false positives in robotparser by
 -  checking to make sure that robots.txt has been read or does not exist
 -  prior to returning True in can_fetch().
 +- Issue #20284: %-interpolation (aka printf) formatting added for bytes and
 +  bytearray.
  
 -- Issue #21321: itertools.islice() now releases the reference to the source
 -  iterator when the slice is exhausted.  Patch by Anton Afanasyev.
 +- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
  
 -- Issue #9815: assertRaises now tries to clear references to local variables
 -  in the exception's traceback.
 +- Issue #20335: bytes constructor now raises TypeError when encoding or errors
 +  is specified with non-string argument.  Based on patch by Renaud Blanch.
  
 -- Issue #13204: Calling sys.flags.__new__ would crash the interpreter,
 -  now it raises a TypeError.
 +- Issue #22834: If the current working directory ends up being set to a
 +  non-existent directory then import will no longer raise FileNotFoundError.
  
 -- Issue #19385: Make operations on a closed dbm.dumb database always raise the
 -  same exception.
 +- Issue #22869: Move the interpreter startup & shutdown code to a new
 +  dedicated pylifecycle.c module
  
 -- Issue #21207: Detect when the os.urandom cached fd has been closed or
 -  replaced, and open it anew.
 +- Issue #22847: Improve method cache efficiency.
  
 -- Issue #21291: subprocess's Popen.wait() is now thread safe so that
 -  multiple threads may be calling wait() or poll() on a Popen instance
 -  at the same time without losing the Popen.returncode value.
 +- Issue #22335: Fix crash when trying to enlarge a bytearray to 0x7fffffff
 +  bytes on a 32-bit platform.
  
 -- Issue #21127: Path objects can now be instantiated from str subclass
 -  instances (such as ``numpy.str_``).
 +- Issue #22653: Fix an assertion failure in debug mode when doing a reentrant
 +  dict insertion in debug mode.
  
 -- Issue #15002: urllib.response object to use _TemporaryFileWrapper (and
 -  _TemporaryFileCloser) facility. Provides a better way to handle file
 -  descriptor close. Patch contributed by Christian Theune.
 +- Issue #22643: Fix integer overflow in Unicode case operations (upper, lower,
 +  title, swapcase, casefold).
  
 -- Issue #12220: mindom now raises a custom ValueError indicating it doesn't
 -  support spaces in URIs instead of letting a 'split' ValueError bubble up.
 +- Issue #17636: Circular imports involving relative imports are now
 +  supported.
  
 -- Issue #21239: patch.stopall() didn't work deterministically when the same
 -  name was patched more than once.
 +- Issue #22604: Fix assertion error in debug mode when dividing a complex
 +  number by (nan+0j).
  
 -- Issue #21222: Passing name keyword argument to mock.create_autospec now
 -  works.
 +- Issue #21052: Do not raise ImportWarning when sys.path_hooks or sys.meta_path
 +  are set to None.
  
 -- Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.
 +- Issue #16518: Use 'bytes-like object required' in error messages that
 +  previously used the far more cryptic "'x' does not support the buffer
 +  protocol.
  
 -- Issue #17498: Some SMTP servers disconnect after certain errors, violating
 -  strict RFC conformance.  Instead of losing the error code when we issue the
 -  subsequent RSET, smtplib now returns the error code and defers raising the
 -  SMTPServerDisconnected error until the next command is issued.
 +- Issue #22470: Fixed integer overflow issues in "backslashreplace",
 +  "xmlcharrefreplace", and "surrogatepass" error handlers.
  
 -- Issue #17826: setting an iterable side_effect on a mock function created by
 -  create_autospec now works. Patch by Kushal Das.
 +- Issue #22540: speed up `PyObject_IsInstance` and `PyObject_IsSubclass` in the
 +  common case that the second argument has metaclass `type`.
  
 -- Issue #7776: Fix ``Host:`` header and reconnection when using
 -  http.client.HTTPConnection.set_tunnel(). Patch by Nikolaus Rath.
 +- Issue #18711: Add a new `PyErr_FormatV` function, similar to `PyErr_Format`
 +  but accepting a `va_list` argument.
  
 -- Issue #20968: unittest.mock.MagicMock now supports division.
 -  Patch by Johannes Baiter.
 +- Issue #22520: Fix overflow checking when generating the repr of a unicode
 +  object.
  
 -- Fix arbitrary memory access in JSONDecoder.raw_decode with a negative second
 -  parameter. Bug reported by Guido Vranken.
 +- Issue #22519: Fix overflow checking in PyBytes_Repr.
  
 -- Issue #21169: getpass now handles non-ascii characters that the
 -  input stream encoding cannot encode by re-encoding using the
 -  replace error handler.
 +- Issue #22518: Fix integer overflow issues in latin-1 encoding.
  
 -- Issue #21171: Fixed undocumented filter API of the rot13 codec.
 -  Patch by Berker Peksag.
 +- Issue #16324: _charset parameter of MIMEText now also accepts
 +  email.charset.Charset instances. Initial patch by Claude Paroz.
  
 -- Issue #21172: isinstance check relaxed from dict to collections.Mapping.
 +- Issue #1764286: Fix inspect.getsource() to support decorated functions.
 +  Patch by Claudiu Popa.
  
 -- Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
 -  if path and sock are specified at the same time.
 +- Issue #18554: os.__all__ includes posix functions.
  
 -- Issue #21149: Improved thread-safety in logging cleanup during interpreter
 -  shutdown. Thanks to Devin Jeanpierre for the patch.
 +- Issue #21391: Use os.path.abspath in the shutil module.
  
 -- Issue #20145: `assertRaisesRegex` and `assertWarnsRegex` now raise a
 -  TypeError if the second argument is not a string or compiled regex.
 +- Issue #11471: avoid generating a JUMP_FORWARD instruction at the end of
 +  an if-block if there is no else-clause.  Original patch by Eugene Toder.
  
 -- Issue #21058: Fix a leak of file descriptor in
 -  :func:`tempfile.NamedTemporaryFile`, close the file descriptor if
 -  :func:`io.open` fails
 +- Issue #22215: Now ValueError is raised instead of TypeError when str or bytes
 +  argument contains not permitted null character or byte.
  
 -- Issue #21200: Return None from pkgutil.get_loader() when __spec__ is missing.
 +- Issue #22258: Fix the internal function set_inheritable() on Illumos.
 +  This platform exposes the function ``ioctl(FIOCLEX)``, but calling it fails
 +  with errno is ENOTTY: "Inappropriate ioctl for device". set_inheritable()
 +  now falls back to the slower ``fcntl()`` (``F_GETFD`` and then ``F_SETFD``).
  
 -- Issue #21013: Enhance ssl.create_default_context() when used for server side
 -  sockets to provide better security by default.
 +- Issue #21389: Displaying the __qualname__ of the underlying function in the
 +  repr of a bound method.
  
 -- Issue #20633: Replace relative import by absolute import.
 +- Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM
 +  and returns -1 (error) on integer overflow.
  
 -- Issue #20980: Stop wrapping exception when using ThreadPool.
 +- Issue #20184: Argument Clinic based signature introspection added for
 +  30 of the builtin functions.
  
 -- Issue #21082: In os.makedirs, do not set the process-wide umask. Note this
 -  changes behavior of makedirs when exist_ok=True.
 +- Issue #22116: C functions and methods (of the 'builtin_function_or_method'
 +  type) can now be weakref'ed.  Patch by Wei Wu.
  
 -- Issue #20990: Fix issues found by pyflakes for multiprocessing.
 +- Issue #22077: Improve index error messages for bytearrays, bytes, lists,
 +  and tuples by adding 'or slices'. Added ', not <typename>' for bytearrays.
 +  Original patch by Claudiu Popa.
  
 -- Issue #21015: SSL contexts will now automatically select an elliptic
 -  curve for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise
 -  default to "prime256v1".
 +- Issue #20179: Apply Argument Clinic to bytes and bytearray.
 +  Patch by Tal Einat.
  
 -- Issue #20995: Enhance default ciphers used by the ssl module to enable
 -  better security an prioritize perfect forward secrecy.
 +- Issue #22082: Clear interned strings in slotdefs.
  
 -- Issue #20884: Don't assume that __file__ is defined on importlib.__init__.
 +- Upgrade Unicode database to Unicode 7.0.0.
  
 -- Issue #21499: Ignore __builtins__ in several test_importlib.test_api tests.
 +- Issue #21897: Fix a crash with the f_locals attribute with closure
 +  variables when frame.clear() has been called.
  
 -- Issue #20879: Delay the initialization of encoding and decoding tables for
 -  base32, ascii85 and base85 codecs in the base64 module, and delay the
 -  initialization of the unquote_to_bytes() table of the urllib.parse module, to
 -  not waste memory if these modules are not used.
 +- Issue #21205: Add a new ``__qualname__`` attribute to generator, the
 +  qualified name, and use it in the representation of a generator
 +  (``repr(gen)``). The default name of the generator (``__name__`` attribute)
 +  is now get from the function instead of the code. Use ``gen.gi_code.co_name``
 +  to get the name of the code.
  
 -- Issue #19157: Include the broadcast address in the usuable hosts for IPv6
 -  in ipaddress.
 +- Issue #21669: With the aid of heuristics in SyntaxError.__init__, the
 +  parser now attempts to generate more meaningful (or at least more search
 +  engine friendly) error messages when "exec" and "print" are used as
 +  statements.
  
 -- Issue #11599: When an external command (e.g. compiler) fails, distutils now
 -  prints out the whole command line (instead of just the command name) if the
 -  environment variable DISTUTILS_DEBUG is set.
 +- Issue #21642: In the conditional if-else expression, allow an integer written
 +  with no space between itself and the ``else`` keyword (e.g. ``True if 42else
 +  False``) to be valid syntax.
  
 -- Issue #4931: distutils should not produce unhelpful "error: None" messages
 -  anymore.  distutils.util.grok_environment_error is kept but doc-deprecated.
 +- Issue #21523: Fix over-pessimistic computation of the stack effect of
 +  some opcodes in the compiler.  This also fixes a quadratic compilation
 +  time issue noticeable when compiling code with a large number of "and"
 +  and "or" operators.
  
 -- Issue #20875: Prevent possible gzip "'read' is not defined" NameError.
 -  Patch by Claudiu Popa.
 +- Issue #21418: Fix a crash in the builtin function super() when called without
 +  argument and without current frame (ex: embedded Python).
  
 -- Issue #11558: ``email.message.Message.attach`` now returns a more
 -  useful error message if ``attach`` is called on a message for which
 -  ``is_multipart`` is False.
 +- Issue #21425: Fix flushing of standard streams in the interactive
 +  interpreter.
  
 -- Issue #20283: RE pattern methods now accept the string keyword parameters
 -  as documented.  The pattern and source keyword parameters are left as
 -  deprecated aliases.
 +- Issue #21435: In rare cases, when running finalizers on objects in cyclic
 +  trash a bad pointer dereference could occur due to a subtle flaw in
 +  internal iteration logic.
  
 -- Issue #20778: Fix modulefinder to work with bytecode-only modules.
 +- Issue #21377: PyBytes_Concat() now tries to concatenate in-place when the
 +  first argument has a reference count of 1.  Patch by Nikolaus Rath.
  
 -- Issue #20791: copy.copy() now doesn't make a copy when the input is
 -  a bytes object.  Initial patch by Peter Otten.
 +- Issue #20355: -W command line options now have higher priority than the
 +  PYTHONWARNINGS environment variable.  Patch by Arfrever.
  
 -- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
 -  outsize range [1902; 2037].
 +- Issue #21274: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.
  
 -- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
 -  missing keyword-only arguments. Patch by Jeremiah Lowin.
 +- Issue #20904: Support setting FPU precision on m68k.
  
 -- Issue #20817: Fix inspect.getcallargs() to fail correctly if more
 -  than 3 arguments are missing. Patch by Jeremiah Lowin.
 +- Issue #21209: Fix sending tuples to custom generator objects with the yield
 +  from syntax.
  
 -- Issue #6676: Ensure a meaningful exception is raised when attempting
 -  to parse more than one XML document per pyexpat xmlparser instance.
 -  (Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with
 -  suggested wording by David Gutteridge)
 +- Issue #21193: pow(a, b, c) now raises ValueError rather than TypeError when b
 +  is negative.  Patch by Josh Rosenberg.
  
 -- Issue #21117: Fix inspect.signature to better support functools.partial.
 -  Due to the specifics of functools.partial implementation,
 -  positional-or-keyword arguments passed as keyword arguments become
 -  keyword-only.
 +- PEP 465 and Issue #21176: Add the '@' operator for matrix multiplication.
  
 -- Issue #21209: Fix asyncio.tasks.CoroWrapper to workaround a bug
 -  in yield-from implementation in CPythons prior to 3.4.1.
 +- Issue #21134: Fix segfault when str is called on an uninitialized
 +  UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.
  
 -- asyncio: Add gi_{frame,running,code} properties to CoroWrapper
 -  (upstream issue #163).
 +- Issue #19537: Fix PyUnicode_DATA() alignment under m68k.  Patch by
 +  Andreas Schwab.
  
 -- Issue #21311: Avoid exception in _osx_support with non-standard compiler
 -  configurations.  Patch by John Szakmeister.
 +- Issue #20929: Add a type cast to avoid shifting a negative number.
  
 -- Issue #11571: Ensure that the turtle window becomes the topmost window
 -  when launched on OS X.
 +- Issue #20731: Properly position in source code files even if they
 +  are opened in text mode. Patch by Serhiy Storchaka.
  
 -Extension Modules
 ------------------
 +- Issue #20637: Key-sharing now also works for instance dictionaries of
 +  subclasses.  Patch by Peter Ingebretson.
  
 -- Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
 +- Issue #8297: Attributes missing from modules now include the module name
 +  in the error text.  Original patch by ysj.ray.
  
 -- Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
 -  (and friends).
 +- Issue #19995: %c, %o, %x, and %X now raise TypeError on non-integer input.
  
 -IDLE
 -----
 +- Issue #19655: The ASDL parser - used by the build process to generate code for
 +  managing the Python AST in C - was rewritten. The new parser is self contained
 +  and does not require to carry long the spark.py parser-generator library;
 +  spark.py was removed from the source base.
  
 -- Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.
 +- Issue #12546: Allow \x00 to be used as a fill character when using str, int,
 +  float, and complex __format__ methods.
  
 -- Issue #21284: Paragraph reformat test passes after user changes reformat width.
 +- Issue #20480: Add ipaddress.reverse_pointer. Patch by Leon Weber.
  
 -- Issue #17654: Ensure IDLE menus are customized properly on OS X for
 -  non-framework builds and for all variants of Tk.
 +- Issue #13598: Modify string.Formatter to support auto-numbering of
 +  replacement fields. It now matches the behavior of str.format() in
 +  this regard. Patches by Phil Elson and Ramchandra Apte.
  
 -Build
 ------
 +- Issue #8931: Make alternate formatting ('#') for type 'c' raise an
 +  exception. In versions prior to 3.5, '#' with 'c' had no effect. Now
 +  specifying it is an error.  Patch by Torsten Landschoff.
  
 -- The Windows build now includes OpenSSL 1.0.1g
 +- Issue #23165: Perform overflow checks before allocating memory in the
 +  _Py_char2wchar function.
  
 -- Issue #21285: Refactor and fix curses configure check to always search
 -  in a ncursesw directory.
 +Library
 +-------
  
 -- Issue #15234: For BerkelyDB and Sqlite, only add the found library and
 -  include directories if they aren't already being searched. This avoids
 -  an explicit runtime library dependency.
 +- Issue #23399: pyvenv creates relative symlinks where possible.
  
 -- Issue #20644: OS X installer build support for documentation build changes
 -  in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.
 +- Issue #20289: cgi.FieldStorage() now supports the context management
 +  protocol.
  
 -C API
 ------
 +- Issue #13128: Print response headers for CONNECT requests when debuglevel
 +  > 0. Patch by Demian Brecht.
  
 -- Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
 -  match what importlib does; this affects _frozen_importlib as well as any
 -  module loaded using imp.init_frozen().
 +- Issue #15381: Optimized io.BytesIO to make less allocations and copyings.
  
 -Documentation
 --------------
 +- Issue #22818: Splitting on a pattern that could match an empty string now
 +  raises a warning.  Patterns that can only match empty strings are now
 +  rejected.
  
 -- Issue #17386: Expanded functionality of the ``Doc/make.bat`` script to make
 -  it much more comparable to ``Doc/Makefile``.
 +- Issue #23099: Closing io.BytesIO with exported buffer is rejected now to
 +  prevent corrupting exported buffer.
  
 -- Issue #21043: Remove the recommendation for specific CA organizations and to
 -  mention the ability to load the OS certificates.
 +- Issue #23326: Removed __ne__ implementations.  Since fixing default __ne__
 +  implementation in issue #21408 they are redundant.
  
 -- Issue #20765: Add missing documentation for PurePath.with_name() and
 -  PurePath.with_suffix().
 +- Issue #23363: Fix possible overflow in itertools.permutations.
  
 -- Issue #19407: New package installation and distribution guides based on
 -  the Python Packaging Authority tools. Existing guides have been retained
 -  as legacy links from the distutils docs, as they still contain some
 -  required reference material for tool developers that isn't recorded
 -  anywhere else.
 +- Issue #23364: Fix possible overflow in itertools.product.
  
 -- Issue #19697: Document cases where __main__.__spec__ is None.
 +- Issue #23366: Fixed possible integer overflow in itertools.combinations.
  
 -Tests
 ------
 +- Issue #23369: Fixed possible integer overflow in
 +  _json.encode_basestring_ascii.
  
 -- Issue #18604: Consolidated checks for GUI availability.  All platforms now
 -  at least check whether Tk can be instantiated when the GUI resource is
 -  requested.
 +- Issue #23353: Fix the exception handling of generators in
 +  PyEval_EvalFrameEx(). At entry, save or swap the exception state even if
 +  PyEval_EvalFrameEx() is called with throwflag=0. At exit, the exception state
 +  is now always restored or swapped, not only if why is WHY_YIELD or
 +  WHY_RETURN. Patch co-written with Antoine Pitrou.
  
 -- Issue #21275: Fix a socket test on KFreeBSD.
 +- Issue #14099: Restored support of writing ZIP files to tellable but
 +  non-seekable streams.
  
 -- Issue #21223: Pass test_site/test_startup_imports when some of the extensions
 -  are built as builtins.
 +- Issue #14099: Writing to ZipFile and reading multiple ZipExtFiles is
 +  threadsafe now.
  
 -- Issue #20635: Added tests for Tk geometry managers.
 +- Issue #19361: JSON decoder now raises JSONDecodeError instead of ValueError.
  
 -- Add test case for freeze.
 +- Issue #18518: timeit now rejects statements which can't be compiled outside
 +  a function or a loop (e.g. "return" or "break").
  
 -- Issue #20743: Fix a reference leak in test_tcl.
 +- Issue #23094: Fixed readline with frames in Python implementation of pickle.
  
 -- Issue #21097: Move test_namespace_pkgs into test_importlib.
 +- Issue #23268: Fixed bugs in the comparison of ipaddress classes.
  
 -- Issue #20939: Avoid various network test failures due to new
 -  redirect of http://www.python.org/ to https://www.python.org:
 -  use http://www.example.com instead.
 +- Issue #21408: Removed incorrect implementations of __ne__() which didn't
 +  returned NotImplemented if __eq__() returned NotImplemented.  The default
 +  __ne__() now works correctly.
  
 -- Issue #20668: asyncio tests no longer rely on tests.txt file.
 -  (Patch by Vajrasky Kok)
 +- Issue #19996: :class:`email.feedparser.FeedParser` now handles (malformed)
 +  headers with no key rather than assuming the body has started.
  
 -- Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
 -  copy of libz exists in $HOME/lib or /usr/local/lib.
 +- Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the ssl
 +  module.
  
 -Tools/Demos
 ------------
 +- Issue #23133: Pickling of ipaddress objects now produces more compact and
 +  portable representation.
  
 -- Add support for ``yield from`` to 2to3.
 +- Issue #23248: Update ssl error codes from latest OpenSSL git master.
  
 -- Add support for the PEP 465 matrix multiplication operator to 2to3.
 +- Issue #23266: Much faster implementation of ipaddress.collapse_addresses()
 +  when there are many non-consecutive addresses.
  
 -- Issue #16047: Fix module exception list and __file__ handling in freeze.
 -  Patch by Meador Inge.
 +- Issue #23098: 64-bit dev_t is now supported in the os module.
  
 -- Issue #11824: Consider ABI tags in freeze. Patch by Meador Inge.
 +- Issue #21817: When an exception is raised in a task submitted to a
 +  ProcessPoolExecutor, the remote traceback is now displayed in the
 +  parent process.  Patch by Claudiu Popa.
  
 -- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
 -  Patch by Arfrever Frehtes Taifersar Arahesis.
 +- Issue #15955: Add an option to limit output size when decompressing LZMA
 +  data.  Patch by Nikolaus Rath and Martin Panter.
  
 +- Issue #23250: In the http.cookies module, capitalize "HttpOnly" and "Secure"
 +  as they are written in the standard.
  
 -What's New in Python 3.4.0?
 -===========================
 +- Issue #23063: In the disutils' check command, fix parsing of reST with code or
 +  code-block directives.
  
 -Release date: 2014-03-16
 +- Issue #23209, #23225: selectors.BaseSelector.get_key() now raises a
 +  RuntimeError if the selector is closed. And selectors.BaseSelector.close()
 +  now clears its internal reference to the selector mapping to break a
 +  reference cycle. Initial patch written by Martin Richard.
  
 -Library
 --------
 +- Issue #17911: Provide a way to seed the linecache for a PEP-302 module
 +  without actually loading the code.
  
 -- Issue #20939: Fix test_geturl failure in test_urllibnet due to
 -  new redirect of http://www.python.org/ to https://www.python.org.
 +- Issue #17911: Provide a new object API for traceback, including the ability
 +  to not lookup lines at all until the traceback is actually rendered, without
 +  any trace of the original objects being kept alive.
  
 -Documentation
 --------------
 +- Issue #19777: Provide a home() classmethod on Path objects.  Contributed
 +  by Victor Salgado and Mayank Tripathi.
  
 -- Merge in all documentation changes since branching 3.4.0rc1.
 +- Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the
 +  default case of ``ensure_ascii=True``.  Patch by Naoki Inada.
  
 +- Issue #23185: Add math.inf and math.nan constants.
  
 -What's New in Python 3.4.0 release candidate 3?
 -===============================================
 +- Issue #23186: Add ssl.SSLObject.shared_ciphers() and
 +  ssl.SSLSocket.shared_ciphers() to fetch the client's list ciphers sent at
 +  handshake.
  
 -Release date: 2014-03-09
 +- Issue #23143: Remove compatibility with OpenSSLs older than 0.9.8.
  
 -Core and Builtins
 ------------------
 +- Issue #23132: Improve performance and introspection support of comparison
 +  methods created by functool.total_ordering.
  
 -- Issue #20786: Fix signatures for dict.__delitem__ and
 -  property.__delete__ builtins.
 +- Issue #19776: Add an expanduser() method on Path objects.
  
 -Library
 --------
 +- Issue #23112: Fix SimpleHTTPServer to correctly carry the query string and
 +  fragment when it redirects to add a trailing slash.
  
 -- Issue #20839: Don't trigger a DeprecationWarning in the still supported
 -  pkgutil.get_loader() API when __loader__ isn't set on a module (nor
 -  when pkgutil.find_loader() is called directly).
 +- Issue #21793: Added http.HTTPStatus enums (i.e. HTTPStatus.OK,
 +  HTTPStatus.NOT_FOUND).  Patch by Demian Brecht.
  
 -Build
 ------
 +- Issue #23093: In the io, module allow more operations to work on detached
 +  streams.
  
 -- Issue #14512: Launch pydoc -b instead of pydocgui.pyw on Windows.
 +- Issue #23111: In the ftplib, make ssl.PROTOCOL_SSLv23 the default protocol
 +  version.
  
 -- Issue #20748: Uninstalling pip does not leave behind the pyc of
 -  the uninstaller anymore.
 +- Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
 +  instead of reading /dev/urandom, to get pseudo-random bytes.
  
 -- Issue #20568: The Windows installer now installs the unversioned ``pip``
 -  command in addition to the versioned ``pip3`` and ``pip3.4`` commands.
 +- Issue #19104: pprint now produces evaluable output for wrapped strings.
  
 -- Issue #20757: The ensurepip helper for the Windows uninstaller now skips
 -  uninstalling pip (rather than failing) if the user has updated pip to a
 -  different version from the one bundled with ensurepip.
 +- Issue #23071: Added missing names to codecs.__all__.  Patch by Martin Panter.
  
 -- Issue #20465: Update OS X and Windows installer builds to use
 -  SQLite 3.8.3.1.
 +- Issue #22783: Pickling now uses the NEWOBJ opcode instead of the NEWOBJ_EX
 +  opcode if possible.
  
 +- Issue #15513: Added a __sizeof__ implementation for pickle classes.
  
 -What's New in Python 3.4.0 release candidate 2?
 -===============================================
 +- Issue #19858: pickletools.optimize() now aware of the MEMOIZE opcode, can
 +  produce more compact result and no longer produces invalid output if input
 +  data contains MEMOIZE opcodes together with PUT or BINPUT opcodes.
  
 -Release date: 2014-02-23
 +- Issue #22095: Fixed HTTPConnection.set_tunnel with default port.  The port
 +  value in the host header was set to "None".  Patch by Demian Brecht.
  
 -Core and Builtins
 ------------------
 +- Issue #23016: A warning no longer produces an AttributeError when the program
 +  is run with pythonw.exe.
  
 -- Issue #20625: Parameter names in __annotations__ were not mangled properly.
 -  Discovered by Jonas Wielicki, patch by Yury Selivanov.
 +- Issue #21775: shutil.copytree(): fix crash when copying to VFAT. An exception
 +  handler assumed that that OSError objects always have a 'winerror' attribute.
 +  That is not the case, so the exception handler itself raised AttributeError
 +  when run on Linux (and, presumably, any other non-Windows OS).
 +  Patch by Greg Ward.
  
 -- Issue #20261: In pickle, lookup __getnewargs__ and __getnewargs_ex__ on the
 -  type of the object.
 +- Issue #1218234: Fix inspect.getsource() to load updated source of
 +  reloaded module. Initial patch by Berker Peksag.
  
 -- Issue #20619: Give the AST nodes of keyword-only arguments a column and line
 -  number.
 +- Issue #21740: Support wrapped callables in doctest. Patch by Claudiu Popa.
  
 -- Issue #20526: Revert changes of issue #19466 which introduces a regression:
 -  don't clear anymore the state of Python threads early during the Python
 -  shutdown.
 +- Issue #23009: Make sure selectors.EpollSelecrtor.select() works when no
 +  FD is registered.
  
 -Library
 --------
 +- Issue #22959: In the constructor of http.client.HTTPSConnection, prefer the
 +  context's check_hostname attribute over the *check_hostname* parameter.
  
 -- Issue #20710: The pydoc summary line no longer displays the "self" parameter
 -  for bound methods.
 +- Issue #22696: Add function :func:`sys.is_finalizing` to know about
 +  interpreter shutdown.
  
 -- Issue #20566: Change asyncio.as_completed() to use a Queue, to
 -  avoid O(N**2) behavior.
 +- Issue #16043: Add a default limit for the amount of data xmlrpclib.gzip_decode
 +  will return. This resolves CVE-2013-1753.
  
 -- Issue #20704: Implement new debug API in asyncio. Add new methods
 -  BaseEventLoop.set_debug() and BaseEventLoop.get_debug().
 -  Add support for setting 'asyncio.tasks._DEBUG' variable with
 -  'PYTHONASYNCIODEBUG' environment variable.
 +- Issue #14099: ZipFile.open() no longer reopen the underlying file.  Objects
 +  returned by ZipFile.open() can now operate independently of the ZipFile even
 +  if the ZipFile was created by passing in a file-like object as the first
 +  argument to the constructor.
  
 -- asyncio: Refactoring and fixes: BaseEventLoop.sock_connect() raises an
 -  error if the address is not resolved; use __slots__ in Handle and
 -  TimerHandle; as_completed() and wait() raise TypeError if the passed
 -  list of Futures is a single Future; call_soon() and other 'call_*()'
 -  functions raise TypeError if the passed callback is a coroutine
 -  function; _ProactorBasePipeTransport uses _FlowControlMixin;
 -  WriteTransport.set_write_buffer_size() calls _maybe_pause_protocol()
 -  to consider pausing receiving if the watermark limits have changed;
 -  fix _check_resolved_address() for IPv6 address; and other minor
 -  improvements, along with multiple documentation updates.
 +- Issue #22966: Fix __pycache__ pyc file name clobber when pyc_compile is
 +  asked to compile a source file containing multiple dots in the source file
 +  name.
  
 -- Issue #20684: Fix inspect.getfullargspec() to not to follow __wrapped__
 -  chains. Make its behaviour consistent with bound methods first argument.
 -  Patch by Nick Coghlan and Yury Selivanov.
 +- Issue #21971: Update turtledemo doc and add module to the index.
  
 -- Issue #20681: Add new error handling API in asyncio. New APIs:
 -  loop.set_exception_handler(), loop.default_exception_handler(), and
 -  loop.call_exception_handler().
 +- Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
 +  Original patch by Martin Panter.
  
 -- Issue #20673: Implement support for UNIX Domain Sockets in asyncio.
 -  New APIs: loop.create_unix_connection(), loop.create_unix_server(),
 -  streams.open_unix_connection(), and streams.start_unix_server().
 +- Issue #22407: Deprecated the use of re.LOCALE flag with str patterns or
 +  re.ASCII. It was newer worked.
  
 -- Issue #20616: Add a format() method to tracemalloc.Traceback.
 +- Issue #22902: The "ip" command is now used on Linux to determine MAC address
 +  in uuid.getnode().  Pach by Bruno Cauet.
  
 -- Issue #19744: the ensurepip installation step now just prints a warning to
 -  stderr rather than failing outright if SSL/TLS is unavailable. This allows
 -  local installation of POSIX builds without SSL/TLS support.
 +- Issue #22960: Add a context argument to xmlrpclib.ServerProxy constructor.
  
 -- Issue #20594: Avoid name clash with the libc function posix_close.
 +- Issue #22389: Add contextlib.redirect_stderr().
  
 -Build
 ------
 +- Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
 +  availability of the function is checked during the compilation. Patch written
 +  by Bernard Spil.
  
 -- Issue #20641: Run MSI custom actions (pip installation, pyc compilation)
 -  with the NoImpersonate flag, to support elevated execution (UAC).
 +- Issue #22915: SAX parser now supports files opened with file descriptor or
 +  bytes path.
  
 -- Issue #20221: Removed conflicting (or circular) hypot definition when
 -  compiled with VS 2010 or above.  Initial patch by Tabrez Mohammed.
 +- Issue #22609: Constructors and update methods of mapping classes in the
 +  collections module now accept the self keyword argument.
  
 -- Issue #20609: Restored the ability to build 64-bit Windows binaries on
 -  32-bit Windows, which was broken by the change in issue #19788.
 +- Issue #22940: Add readline.append_history_file.
  
 +- Issue #19676: Added the "namereplace" error handler.
  
 -What's New in Python 3.4.0 release candidate 1?
 -===============================================
 +- Issue #22788: Add *context* parameter to logging.handlers.HTTPHandler.
  
 -Release date: 2014-02-10
 +- Issue #22921: Allow SSLContext to take the *hostname* parameter even if
 +  OpenSSL doesn't support SNI.
  
 -Core and Builtins
 ------------------
 +- Issue #22894: TestCase.subTest() would cause the test suite to be stopped
 +  when in failfast mode, even in the absence of failures.
  
 -- Issue #19255: The builtins module is restored to initial value before
 -  cleaning other modules.  The sys and builtins modules are cleaned last.
 +- Issue #22796: HTTP cookie parsing is now stricter, in order to protect
 +  against potential injection attacks.
  
 -- Issue #20588: Make Python-ast.c C89 compliant.
 +- Issue #22370: Windows detection in pathlib is now more robust.
  
 -- Issue #20437: Fixed 22 potential bugs when deleting objects references.
 +- Issue #22841: Reject coroutines in asyncio add_signal_handler().
 +  Patch by Ludovic.Gasc.
  
 -- Issue #20500: Displaying an exception at interpreter shutdown no longer
 -  risks triggering an assertion failure in PyObject_Str.
 +- Issue #19494: Added urllib.request.HTTPBasicPriorAuthHandler. Patch by
 +  Matej Cepl.
  
 -- Issue #20538: UTF-7 incremental decoder produced inconsistent string when
 -  input was truncated in BASE64 section.
 +- Issue #22578: Added attributes to the re.error class.
  
 -- Issue #20404: io.TextIOWrapper (and hence the open() builtin) now uses the
 -  internal codec marking system added for issue #19619 to throw LookupError
 -  for known non-text encodings at stream construction time. The existing
 -  output type checks remain in place to deal with unmarked third party
 -  codecs.
 +- Issue #22849: Fix possible double free in the io.TextIOWrapper constructor.
  
 -- Issue #17162: Add PyType_GetSlot.
 +- Issue #12728: Different Unicode characters having the same uppercase but
 +  different lowercase are now matched in case-insensitive regular expressions.
  
 -- Issue #20162: Fix an alignment issue in the siphash24() hash function which
 -  caused a crash on PowerPC 64-bit (ppc64).
 +- Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian
 +  platforms.
  
 -Library
 --------
 +- Issue #21650: Add an `--sort-keys` option to json.tool CLI.
  
 -- Issue #20530: The signatures for slot builtins have been updated
 -  to reflect the fact that they only accept positional-only arguments.
 +- Issue #22824: Updated reprlib output format for sets to use set literals.
 +  Patch contributed by Berker Peksag.
  
 -- Issue #20517: Functions in the os module that accept two filenames
 -  now register both filenames in the exception on failure.
 +- Issue #22824: Updated reprlib output format for arrays to display empty
 +  arrays without an unnecessary empty list.  Suggested by Serhiy Storchaka.
  
 -- Issue #20563: The ipaddress module API is now considered stable.
 +- Issue #22406: Fixed the uu_codec codec incorrectly ported to 3.x.
 +  Based on patch by Martin Panter.
  
 -- Issue #14983: email.generator now always adds a line end after each MIME
 -  boundary marker, instead of doing so only when there is an epilogue.  This
 -  fixes an RFC compliance bug and solves an issue with signed MIME parts.
 +- Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat.
 +  Based on patch by Aivars Kalvāns.
  
 -- Issue #20540: Fix a performance regression (vs. Python 3.2) when layering
 -  a multiprocessing Connection over a TCP socket.  For small payloads, Nagle's
 -  algorithm would introduce idle delays before the entire transmission of a
 -  message.
 +- Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments.
  
 -- Issue #16983: the new email header parsing code will now decode encoded words
 -  that are (incorrectly) surrounded by quotes, and register a defect.
 +- Issue #22417: Verify certificates by default in httplib (PEP 476).
  
 -- Issue #19772: email.generator no longer mutates the message object when
 -  doing a down-transform from 8bit to 7bit CTEs.
 +- Issue #22775: Fixed unpickling of http.cookies.SimpleCookie with protocol 2
 +  and above.  Patch by Tim Graham.
  
 -- Issue #20536: the statistics module now correctly handle Decimal instances
 -  with positive exponents
 +- Issue #22776: Brought excluded code into the scope of a try block in
 +  SysLogHandler.emit().
  
 -- Issue #18805: the netmask/hostmask parsing in ipaddress now more reliably
 -  filters out illegal values and correctly allows any valid prefix length.
 +- Issue #22665: Add missing get_terminal_size and SameFileError to
 +  shutil.__all__.
  
 -- Issue #20481: For at least Python 3.4, the statistics module will require
 -  that all inputs for a single operation be of a single consistent type, or
 -  else a mixed of ints and a single other consistent type. This avoids
 -  some interoperability issues that arose with the previous approach of
 -  coercing to a suitable common type.
 +- Issue #6623: Remove deprecated Netrc class in the ftplib module. Patch by
 +  Matt Chaput.
  
 -- Issue #20478: the statistics module now treats collections.Counter inputs
 -  like any other iterable.
 +- Issue #17381: Fixed handling of case-insensitive ranges in regular
 +  expressions.
  
 -- Issue #17369: get_filename was raising an exception if the filename
 -  parameter's RFC2231 encoding was broken in certain ways.  This was
 -  a regression relative to python2.
 +- Issue #22410: Module level functions in the re module now cache compiled
 +  locale-dependent regular expressions taking into account the locale.
  
 -- Issue #20013: Some imap servers disconnect if the current mailbox is
 -  deleted, and imaplib did not handle that case gracefully.  Now it
 -  handles the 'bye' correctly.
 +- Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.)
 +  now return False when the underlying stat call raises NotADirectoryError.
  
 -- Issue #20531: Revert 3.4 version of fix for #19063, and apply the 3.3
 -  version.  That is, do *not* raise an error if unicode is passed to
 -  email.message.Message.set_payload.
 +- Issue #8876: distutils now falls back to copying files when hard linking
 +  doesn't work.  This allows use with special filesystems such as VirtualBox
 +  shared folders.
  
 -- Issue #20476: If a non-compat32 policy is used with any of the email parsers,
 -  EmailMessage is now used as the factory class.  The factory class should
 -  really come from the policy; that will get fixed in 3.5.
 +- Issue #22217: Implemented reprs of classes in the zipfile module.
  
 -- Issue #19920: TarFile.list() no longer fails when outputs a listing
 -  containing non-encodable characters.  Based on patch by Vajrasky Kok.
 +- Issue #22457: Honour load_tests in the start_dir of discovery.
  
 -- Issue #20515: Fix NULL pointer dereference introduced by issue #20368.
 +- Issue #18216: gettext now raises an error when a .mo file has an
 +  unsupported major version number.  Patch by Aaron Hill.
  
 -- Issue #19186: Restore namespacing of expat symbols inside the pyexpat module.
 +- Issue #13918: Provide a locale.delocalize() function which can remove
 +  locale-specific number formatting from a string representing a number,
 +  without then converting it to a specific type.  Patch by Cédric Krier.
  
 -- Issue #20053: ensurepip (and hence venv) are no longer affected by the
 -  settings in the default pip configuration file.
 +- Issue #22676: Make the pickling of global objects which don't have a
 +  __module__ attribute less slow.
  
 -- Issue #20426: When passing the re.DEBUG flag, re.compile() displays the
 -  debug output every time it is called, regardless of the compilation cache.
 +- Issue #18853: Fixed ResourceWarning in shlex.__nain__.
  
 -- Issue #20368: The null character now correctly passed from Tcl to Python.
 -  Improved error handling in variables-related commands.
 +- Issue #9351: Defaults set with set_defaults on an argparse subparser
 +  are no longer ignored when also set on the parent parser.
  
 -- Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline
 -  translation settings.
 +- Issue #7559: unittest test loading ImportErrors are reported as import errors
 +  with their import exception rather than as attribute errors after the import
 +  has already failed.
  
 -- tracemalloc: Fix slicing traces and fix slicing a traceback.
 +- Issue #19746: Make it possible to examine the errors from unittest
 +  discovery without executing the test suite. The new `errors` attribute
 +  on TestLoader exposes these non-fatal errors encountered during discovery.
  
 -- Issue #20354: Fix an alignment issue in the tracemalloc module on 64-bit
 -  platforms. Bug seen on 64-bit Linux when using "make profile-opt".
 +- Issue #21991: Make email.headerregistry's header 'params' attributes
 +  be read-only (MappingProxyType).  Previously the dictionary was modifiable
 +  but a new one was created on each access of the attribute.
  
 -- Issue #17159: inspect.signature now accepts duck types of functions,
 -  which adds support for Cython functions. Initial patch by Stefan Behnel.
 +- Issue #22638: SSLv3 is now disabled throughout the standard library.
 +  It can still be enabled by instantiating a SSLContext manually.
  
 -- Issue #18801: Fix inspect.classify_class_attrs to correctly classify
 -  object.__new__ and object.__init__.
 +- Issue #22641: In asyncio, the default SSL context for client connections
 +  is now created using ssl.create_default_context(), for stronger security.
  
 -- Fixed cmath.isinf's name in its argument parsing code.
 +- Issue #17401: Include closefd in io.FileIO repr.
  
 -- Issue #20311, #20452: poll and epoll now round the timeout away from zero,
 -  instead of rounding towards zero, in select and selectors modules:
 -  select.epoll.poll(), selectors.PollSelector.poll() and
 -  selectors.EpollSelector.poll(). For example, a timeout of one microsecond
 -  (1e-6) is now rounded to one millisecondi (1e-3), instead of being rounded to
 -  zero.  However, the granularity property and asyncio's resolution feature
 -  were removed again.
 +- Issue #21338: Add silent mode for compileall. quiet parameters of
 +  compile_{dir, file, path} functions now have a multilevel value. Also,
 +  -q option of the CLI now have a multilevel value. Patch by Thomas Kluyver.
  
 -- asyncio: Some refactoring; various fixes; add write flow control to
 -  unix pipes; Future.set_exception() instantiates the exception
 -  argument if it is a class; improved proactor pipe transport; support
 -  wait_for(f, None); don't log broken/disconnected pipes; use
 -  ValueError instead of assert for forbidden subprocess_{shell,exec}
 -  arguments; added a convenience API for subprocess management; added
 -  StreamReader.at_eof(); properly handle duplicate coroutines/futures
 -  in gather(), wait(), as_completed(); use a bytearray for buffering
 -  in StreamReader; and more.
 +- Issue #20152: Convert the array and cmath modules to Argument Clinic.
  
 -- Issue #20288: fix handling of invalid numeric charrefs in HTMLParser.
 +- Issue #18643: Add socket.socketpair() on Windows.
  
 -- Issue #20424: Python implementation of io.StringIO now supports lone surrogates.
 +- Issue #22435: Fix a file descriptor leak when SocketServer bind fails.
  
 -- Issue #20308: inspect.signature now works on classes without user-defined
 -  __init__ or __new__ methods.
 +- Issue #13096: Fixed segfault in CTypes POINTER handling of large
 +  values.
  
 -- Issue #20372: inspect.getfile (and a bunch of other inspect functions that
 -  use it) doesn't crash with unexpected AttributeError on classes defined in C
 -  without __module__.
 +- Issue #11694: Raise ConversionError in xdrlib as documented.  Patch
 +  by Filip Gruszczyński and Claudiu Popa.
  
 -- Issue #20356: inspect.signature formatting uses '/' to separate
 -  positional-only parameters from others.
 +- Issue #19380: Optimized parsing of regular expressions.
  
 -- Issue #20223: inspect.signature now supports methods defined with
 -  functools.partialmethods.
 +- Issue #1519638: Now unmatched groups are replaced with empty strings in re.sub()
 +  and re.subn().
  
 -- Issue #19456: ntpath.join() now joins relative paths correctly when a drive
 -  is present.
 +- Issue #18615: sndhdr.what/whathdr now return a namedtuple.
  
 -- Issue #19077: tempfile.TemporaryDirectory cleanup no longer fails when
 -  called during shutdown.  Emitting resource warning in __del__ no longer fails.
 -  Original patch by Antoine Pitrou.
 +- Issue #22462: Fix pyexpat's creation of a dummy frame to make it
 +  appear in exception tracebacks.
  
 -- Issue #20394: Silence Coverity warning in audioop module.
 +- Issue #21965: Add support for in-memory SSL to the ssl module.  Patch
 +  by Geert Jansen.
  
 -- Issue #20367: Fix behavior of concurrent.futures.as_completed() for
 -  duplicate arguments.  Patch by Glenn Langford.
 +- Issue #21173: Fix len() on a WeakKeyDictionary when .clear() was called
 +  with an iterator alive.
  
 -- Issue #8260: The read(), readline() and readlines() methods of
 -  codecs.StreamReader returned incomplete data when were called after
 -  readline() or read(size).  Based on patch by Amaury Forgeot d'Arc.
 +- Issue #11866: Eliminated race condition in the computation of names
 +  for new threads.
  
 -- Issue #20105: the codec exception chaining now correctly sets the
 -  traceback of the original exception as its __traceback__ attribute.
 +- Issue #21905: Avoid RuntimeError in pickle.whichmodule() when sys.modules
 +  is mutated while iterating.  Patch by Olivier Grisel.
  
 -- Issue #17481: inspect.getfullargspec() now uses inspect.signature() API.
 +- Issue #11271: concurrent.futures.Executor.map() now takes a *chunksize*
 +  argument to allow batching of tasks in child processes and improve
 +  performance of ProcessPoolExecutor.  Patch by Dan O'Reilly.
  
 -- Issue #15304: concurrent.futures.wait() can block forever even if
 -  Futures have completed. Patch by Glenn Langford.
 +- Issue #21883: os.path.join() and os.path.relpath() now raise a TypeError with
 +  more helpful error message for unsupported or mismatched types of arguments.
  
 -- Issue #14455: plistlib: fix serializing integers in the range
 -  of an unsigned long long but outside of the range of signed long long for
 -  binary plist files.
 +- Issue #22219: The zipfile module CLI now adds entries for directories
 +  (including empty directories) in ZIP file.
  
 -IDLE
 -----
 +- Issue #22449: In the ssl.SSLContext.load_default_certs, consult the
 +  environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows.
  
 -- Issue #20406: Use Python application icons for Idle window title bars.
 -  Patch mostly by Serhiy Storchaka.
 +- Issue #22508: The email.__version__ variable has been removed; the email
 +  code is no longer shipped separately from the stdlib, and __version__
 +  hasn't been updated in several releases.
  
 -- Update the python.gif icon for the Idle classbrowser and pathbowser
 -  from the old green snake to the new blue and yellow snakes.
 +- Issue #20076: Added non derived UTF-8 aliases to locale aliases table.
  
 -- Issue #17721: Remove non-functional configuration dialog help button until we
 -  make it actually gives some help when clicked. Patch by Guilherme Simões.
 +- Issue #20079: Added locales supported in glibc 2.18 to locale alias table.
  
 -Tests
 ------
 +- Issue #20218: Added convenience methods read_text/write_text and read_bytes/
 +  write_bytes to pathlib.Path objects.
  
 -- Issue #20532: Tests which use _testcapi now are marked as CPython only.
 +- Issue #22437: Number of capturing groups in regular expression is no longer
 +  limited by 100.
  
 -- Issue #19920: Added tests for TarFile.list().  Based on patch by Vajrasky Kok.
 +- Issue #17442: InteractiveInterpreter now displays the full chained traceback
 +  in its showtraceback method, to match the built in interactive interpreter.
  
 -- Issue #19990: Added tests for the imghdr module.  Based on patch by
 -  Claudiu Popa.
 +- Issue #23392: Added tests for marshal C API that works with FILE*.
  
 -- Issue #20474: Fix test_socket "unexpected success" failures on OS X 10.7+.
  
 -Tools/Demos
 ------------
 +- Issue #10510: distutils register and upload methods now use HTML standards
 +  compliant CRLF line endings.
  
 -- Issue #20530: Argument Clinic's signature format has been revised again.
 -  The new syntax is highly human readable while still preventing false
 -  positives.  The syntax also extends Python syntax to denote "self" and
 -  positional-only parameters, allowing inspect.Signature objects to be
 -  totally accurate for all supported builtins in Python 3.4.
 +- Issue #9850: Fixed macpath.join() for empty first component.  Patch by
 +  Oleg Oshmyan.
  
 -- Issue #20456: Argument Clinic now observes the C preprocessor conditional
 -  compilation statements of the C files it parses.  When a Clinic block is
 -  inside a conditional code, it adjusts its output to match, including
 -  automatically generating an empty methoddef macro.
 +- Issue #5309: distutils' build and build_ext commands now accept a ``-j``
 +  option to enable parallel building of extension modules.
  
 -- Issue #20456: Cloned functions in Argument Clinic now use the correct
 -  name, not the name of the function they were cloned from, for text
 -  strings inside generated code.
 +- Issue #22448: Improve canceled timer handles cleanup to prevent
 +  unbound memory usage. Patch by Joshua Moore-Oliva.
  
 -- Issue #20456: Fixed Argument Clinic's test suite and "--converters" feature.
 +- Issue #22427: TemporaryDirectory no longer attempts to clean up twice when
 +  used in the with statement in generator.
  
 -- Issue #20456: Argument Clinic now allows specifying different names
 -  for a parameter in Python and C, using "as" on the parameter line.
 +- Issue #22362: Forbidden ambiguous octal escapes out of range 0-0o377 in
 +  regular expressions.
  
 -- Issue #20326: Argument Clinic now uses a simple, unique signature to
 -  annotate text signatures in docstrings, resulting in fewer false
 -  positives.  "self" parameters are also explicitly marked, allowing
 -  inspect.Signature() to authoritatively detect (and skip) said parameters.
 +- Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS
 +  directory attributes.
  
 -- Issue #20326: Argument Clinic now generates separate checksums for the
 -  input and output sections of the block, allowing external tools to verify
 -  that the input has not changed (and thus the output is not out-of-date).
 +- Issue #21866: ZipFile.close() no longer writes ZIP64 central directory
 +  records if allowZip64 is false.
  
 -Build
 ------
 +- Issue #22278: Fix urljoin problem with relative urls, a regression observed
 +  after changes to issue22118 were submitted.
  
 -- Issue #20465: Update SQLite shipped with OS X installer to 3.8.3.
 +- Issue #22415: Fixed debugging output of the GROUPREF_EXISTS opcode in the re
 +  module.  Removed trailing spaces in debugging output.
  
 -C-API
 ------
 +- Issue #22423: Unhandled exception in thread no longer causes unhandled
 +  AttributeError when sys.stderr is None.
  
 -- Issue #20517: Added new functions allowing OSError exceptions to reference
 -  two filenames instead of one: PyErr_SetFromErrnoWithFilenameObjects() and
 -  PyErr_SetExcFromWindowsErrWithFilenameObjects().
 +- Issue #21332: Ensure that ``bufsize=1`` in subprocess.Popen() selects
 +  line buffering, rather than block buffering.  Patch by Akira Li.
  
 -Documentation
 --------------
 +- Issue #21091: Fix API bug: email.message.EmailMessage.is_attachment is now
 +  a method.
  
 -- Issue #20488: Change wording to say importlib is *the* implementation of
 -  import instead of just *an* implementation.
 +- Issue #21079: Fix email.message.EmailMessage.is_attachment to return the
 +  correct result when the header has parameters as well as a value.
  
 -- Issue #6386: Clarify in the tutorial that specifying a symlink to execute
 -  means the directory containing the executed script and not the symlink is
 -  added to sys.path.
 +- Issue #22247: Add NNTPError to nntplib.__all__.
  
 +- Issue #22366: urllib.request.urlopen will accept a context object
 +  (SSLContext) as an argument which will then used be for HTTPS connection.
 +  Patch by Alex Gaynor.
  
 -What's New in Python 3.4.0 Beta 3?
 -==================================
 +- Issue #4180: The warnings registries are now reset when the filters
 +  are modified.
  
 -Release date: 2014-01-26
 +- Issue #22419: Limit the length of incoming HTTP request in wsgiref server to
 +  65536 bytes and send a 414 error code for higher lengths. Patch contributed
 +  by Devin Cook.
  
 -Core and Builtins
 ------------------
 +- Lax cookie parsing in http.cookies could be a security issue when combined
 +  with non-standard cookie handling in some Web browsers.  Reported by
 +  Sergey Bobrov.
  
 -- Issue #20189: Four additional builtin types (PyTypeObject,
 -  PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
 -  have been modified to provide introspection information for builtins.
 +- Issue #20537: logging methods now accept an exception instance as well as a
 +  Boolean value or exception tuple. Thanks to Yury Selivanov for the patch.
  
 -- Issue #17825: Cursor "^" is correctly positioned for SyntaxError and
 -  IndentationError.
 +- Issue #22384: An exception in Tkinter callback no longer crashes the program
 +  when it is run with pythonw.exe.
  
 -- Issue #2382: SyntaxError cursor "^" is now written at correct position in most
 -  cases when multibyte characters are in line (before "^").  This still not
 -  works correctly with wide East Asian characters.
 +- Issue #22168: Prevent turtle AttributeError with non-default Canvas on OS X.
  
 -- Issue #18960: The first line of Python script could be executed twice when
 -  the source encoding was specified on the second line.  Now the source encoding
 -  declaration on the second line isn't effective if the first line contains
 -  anything except a comment.  'python -x' works now again with files with the
 -  source encoding declarations, and can be used to make Python batch files
 -  on Windows.
 +- Issue #21147: sqlite3 now raises an exception if the request contains a null
 +  character instead of truncate it.  Based on patch by Victor Stinner.
  
 -Library
 --------
 +- Issue #13968: The glob module now supports recursive search in
 +  subdirectories using the "**" pattern.
  
 -- asyncio: Various improvements and small changes not all covered by
 -  issues listed below.  E.g. wait_for() now cancels the inner task if
 -  the timeout occcurs; tweaked the set of exported symbols; renamed
 -  Empty/Full to QueueEmpty/QueueFull; "with (yield from lock)" now
 -  uses a separate context manager; readexactly() raises if not enough
 -  data was read; PTY support tweaks.
 +- Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
 +  empty string or tuple argument.
  
 -- Issue #20311: asyncio: Add a granularity attribute to BaseEventLoop: maximum
 -  between the resolution of the BaseEventLoop.time() method and the resolution
 -  of the selector. The granuarility is used in the scheduler to round time and
 -  deadline.
 +- Issue #21951: Tkinter now most likely raises MemoryError instead of crash
 +  if the memory allocation fails.
  
 -- Issue #20311: selectors: Add a resolution attribute to BaseSelector.
 +- Issue #22338: Fix a crash in the json module on memory allocation failure.
  
 -- Issue #20189: unittest.mock now no longer assumes that any object for
 -  which it could get an inspect.Signature is a callable written in Python.
 -  Fix courtesy of Michael Foord.
 +- Issue #12410: imaplib.IMAP4 now supports the context management protocol.
 +  Original patch by Tarek Ziadé.
  
 -- Issue #20317: ExitStack.__exit__ could create a self-referential loop if an
 -  exception raised by a cleanup operation already had its context set
 -  correctly (for example, by the @contextmanager decorator). The infinite
 -  loop this caused is now avoided by checking if the expected context is
 -  already set before trying to fix it.
 +- Issue #21270: We now override tuple methods in mock.call objects so that
 +  they can be used as normal call attributes.
  
 -- Issue #20374: Fix build with GNU readline >= 6.3.
 +- Issue #16662: load_tests() is now unconditionally run when it is present in
 +  a package's __init__.py.  TestLoader.loadTestsFromModule() still accepts
 +  use_load_tests, but it is deprecated and ignored.  A new keyword-only
 +  attribute `pattern` is added and documented.  Patch given by Robert Collins,
 +  tweaked by Barry Warsaw.
  
 -- Issue #20262: Warnings are raised now when duplicate names are added in the
 -  ZIP file or too long ZIP file comment is truncated.
 +- Issue #22226: First letter no longer is stripped from the "status" key in
 +  the result of Treeview.heading().
  
 -- Issue #20165: The unittest module no longer considers tests marked with
 -  @expectedFailure successful if they pass.
 +- Issue #19524: Fixed resource leak in the HTTP connection when an invalid
 +  response is received.  Patch by Martin Panter.
  
 -- Issue #18574: Added missing newline in 100-Continue reply from
 -  http.server.BaseHTTPRequestHandler. Patch by Nikolaus Rath.
 +- Issue #20421: Add a .version() method to SSL sockets exposing the actual
 +  protocol version in use.
  
 -- Issue #20270: urllib.urlparse now supports empty ports.
 +- Issue #19546: configparser exceptions no longer expose implementation details.
 +  Chained KeyErrors are removed, which leads to cleaner tracebacks.  Patch by
 +  Claudiu Popa.
  
 -- Issue #20243: TarFile no longer raise ReadError when opened in write mode.
 +- Issue #22051: turtledemo no longer reloads examples to re-run them.
 +  Initialization of variables and gui setup should be done in main(),
 +  which is called each time a demo is run, but not on import.
  
 -- Issue #20238: TarFile opened with external fileobj and "w:gz" mode didn't
 -  write complete output on close.
 +- Issue #21933: Turtledemo users can change the code font size with a menu
 +  selection or control(command) '-' or '+' or control-mousewheel.
 +  Original patch by Lita Cho.
  
 -- Issue #20245: The open functions in the tarfile module now correctly handle
 -  empty mode.
 +- Issue #21597: The separator between the turtledemo text pane and the drawing
 +  canvas can now be grabbed and dragged with a mouse.  The code text pane can
 +  be widened to easily view or copy the full width of the text.  The canvas
 +  can be widened on small screens.  Original patches by Jan Kanis and Lita Cho.
  
 -- Issue #20242: Fixed basicConfig() format strings for the alternative
 -  formatting styles. Thanks to kespindler for the bug report and patch.
 +- Issue #18132: Turtledemo buttons no longer disappear when the window is
 +  shrunk.  Original patches by Jan Kanis and Lita Cho.
  
 -- Issue #20246: Fix buffer overflow in socket.recvfrom_into.
 +- Issue #22043: time.monotonic() is now always available.
 +  ``threading.Lock.acquire()``, ``threading.RLock.acquire()`` and socket
 +  operations now use a monotonic clock, instead of the system clock, when a
 +  timeout is used.
  
 -- Issues #20206 and #5803: Fix edge case in email.quoprimime.encode where it
 -  truncated lines ending in a character needing encoding but no newline by
 -  using a more efficient algorithm that doesn't have the bug.
 +- Issue #21527: Add a default number of workers to ThreadPoolExecutor equal
 +  to 5 times the number of CPUs.  Patch by Claudiu Popa.
  
 -- Issue #19082: Working xmlrpc.server and xmlrpc.client examples. Both in
 -  modules and in documentation. Initial patch contributed by Vajrasky Kok.
 +- Issue #22216: smtplib now resets its state more completely after a quit.  The
 +  most obvious consequence of the previous behavior was a STARTTLS failure
 +  during a connect/starttls/quit/connect/starttls sequence.
  
 -- Issue #20138: The wsgiref.application_uri() and wsgiref.request_uri()
 -  functions now conform to PEP 3333 when handle non-ASCII URLs.
 +- Issue #22098: ctypes' BigEndianStructure and LittleEndianStructure now
 +  define an empty __slots__ so that subclasses don't always get an instance
 +  dict.  Patch by Claudiu Popa.
  
 -- Issue #19097: Raise the correct Exception when cgi.FieldStorage is given an
 -  invalid fileobj.
 +- Issue #22185: Fix an occasional RuntimeError in threading.Condition.wait()
 +  caused by mutation of the waiters queue without holding the lock.  Patch
 +  by Doug Zongker.
  
 -- Issue #20152: Ported Python/import.c over to Argument Clinic.
 +- Issue #22287: On UNIX, _PyTime_gettimeofday() now uses
 +  clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now
 +  depends on the librt library on Solaris and on Linux (only with glibc older
 +  than 2.17).
  
 -- Issue #13107: argparse and optparse no longer raises an exception when output
 -  a help on environment with too small COLUMNS.  Based on patch by
 -  Elazar Gershuni.
 +- Issue #22182: Use e.args to unpack exceptions correctly in
 +  distutils.file_util.move_file. Patch by Claudiu Popa.
  
 -- Issue #20207: Always disable SSLv2 except when PROTOCOL_SSLv2 is explicitly
 -  asked for.
 +- The webbrowser module now uses subprocess's start_new_session=True rather
 +  than a potentially risky preexec_fn=os.setsid call.
  
 -- Issue #18960: The tokenize module now ignore the source encoding declaration
 -  on the second line if the first line contains anything except a comment.
 +- Issue #22042: signal.set_wakeup_fd(fd) now raises an exception if the file
 +  descriptor is in blocking mode.
  
 -- Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU
 -  consumption.
 +- Issue #16808: inspect.stack() now returns a named tuple instead of a tuple.
 +  Patch by Daniel Shahaf.
  
 -- Issue #20113: os.readv() and os.writev() now raise an OSError exception on
 -  error instead of returning -1.
 +- Issue #22236: Fixed Tkinter images copying operations in NoDefaultRoot mode.
  
 -- Issue #19719: Make importlib.abc.MetaPathFinder.find_module(),
 -  PathEntryFinder.find_loader(), and Loader.load_module() use PEP 451 APIs to
 -  help with backwards-compatibility.
 +- Issue #2527: Add a *globals* argument to timeit functions, in order to
 +  override the globals namespace in which the timed code is executed.
 +  Patch by Ben Roberts.
  
 -- Issue #20144: inspect.Signature now supports parsing simple symbolic
 -  constants as parameter default values in __text_signature__.
 +- Issue #22118: Switch urllib.parse to use RFC 3986 semantics for the
 +  resolution of relative URLs, rather than RFCs 1808 and 2396.
 +  Patch by Demian Brecht.
  
 -- Issue #20072: Fixed multiple errors in tkinter with wantobjects is False.
 +- Issue #21549: Added the "members" parameter to TarFile.list().
  
 -- Issue #20229: Avoid plistlib deprecation warning in platform.mac_ver().
 +- Issue #19628: Allow compileall recursion depth to be specified with a -r
 +  option.
  
 -- Issue #14455: Fix some problems with the new binary plist support in plistlib.
 +- Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows.
  
 -IDLE
 -----
 +- Issue #22068: Avoided reference loops with Variables and Fonts in Tkinter.
  
 -- Issue #17390: Add Python version to Idle editor window title bar.
 -  Original patches by Edmond Burnett and Kent Johnson.
 +- Issue #22165: SimpleHTTPRequestHandler now supports undecodable file names.
  
 -- Issue #18960: IDLE now ignores the source encoding declaration on the second
 -  line if the first line contains anything except a comment.
 +- Issue #15381: Optimized line reading in io.BytesIO.
  
 -Tests
 ------
 +- Issue #8797: Raise HTTPError on failed Basic Authentication immediately.
 +  Initial patch by Sam Bull.
  
 -- Issue #20358: Tests for curses.window.overlay and curses.window.overwrite
 -  no longer specify min{row,col} > max{row,col}.
 +- Issue #20729: Restored the use of lazy iterkeys()/itervalues()/iteritems()
 +  in the mailbox module.
  
 -- Issue #19804: The test_find_mac test in test_uuid is now skipped if the
 -  ifconfig executable is not available.
 +- Issue #21448: Changed FeedParser feed() to avoid O(N**2) behavior when
 +  parsing long line.  Original patch by Raymond Hettinger.
  
 -- Issue #19886: Use better estimated memory requirements for bigmem tests.
 +- Issue #22184: The functools LRU Cache decorator factory now gives an earlier
 +  and clearer error message when the user forgets the required parameters.
  
 -Tools/Demos
 ------------
 +- Issue #17923: glob() patterns ending with a slash no longer match non-dirs on
 +  AIX.  Based on patch by Delhallt.
  
 -- Issue #20390: Argument Clinic's "file" output preset now defaults to
 -  "{dirname}/clinic/{basename}.h".
 +- Issue #21725: Added support for RFC 6531 (SMTPUTF8) in smtpd.
  
 -- Issue #20390: Argument Clinic's "class" directive syntax has been extended
 -  with two new required arguments: "typedef" and "type_object".
 +- Issue #22176: Update the ctypes module's libffi to v3.1.  This release
 +  adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
 +  architectures.
  
 -- Issue #20390: Argument Clinic: If __new__ or __init__ functions didn't use
 -  kwargs (or args), the PyArg_NoKeywords (or PyArg_NoPositional) calls
 -  generated are only run when the type object is an exact match.
 +- Issue #5411: Added support for the "xztar" format in the shutil module.
  
 -- Issue #20390: Argument Clinic now fails if you have required parameters after
 -  optional parameters.
 +- Issue #21121: Don't force 3rd party C extensions to be built with
 +  -Werror=declaration-after-statement.
  
 -- Issue #20390: Argument Clinic converters now have a new template they can
 -  inject code into: "modifiers".  Code put there is run in the parsing
 -  function after argument parsing but before the call to the impl.
 +- Issue #21975: Fixed crash when using uninitialized sqlite3.Row (in particular
 +  when unpickling pickled sqlite3.Row).  sqlite3.Row is now initialized in the
 +  __new__() method.
  
 -- Issue #20376: Argument Clinic now escapes backslashes in docstrings.
 +- Issue #20170: Convert posixmodule to use Argument Clinic.
  
 -- Issue #20381: Argument Clinic now sanity checks the default argument when
 -  c_default is also specified, providing a nice failure message for
 -  disallowed values.
 +- Issue #21539: Add a *exists_ok* argument to `Pathlib.mkdir()` to mimic
 +  `mkdir -p` and `os.makedirs()` functionality.  When true, ignore
 +  FileExistsErrors.  Patch by Berker Peksag.
  
 -- Issue #20189: Argument Clinic now ensures that parser functions for
 -  __new__ are always of type newfunc, the type of the tp_new slot.
 -  Similarly, parser functions for __init__ are now always of type initproc,
 -  the type of tp_init.
 +- Issue #22127: Bypass IDNA for pure-ASCII host names in the socket module
 +  (in particular for numeric IPs).
  
 -- Issue #20189: Argument Clinic now suppresses the docstring for __new__
 -  and __init__ functions if no docstring is provided in the input.
 +- Issue #21047: set the default value for the *convert_charrefs* argument
 +  of HTMLParser to True.  Patch by Berker Peksag.
  
 -- Issue #20189: Argument Clinic now suppresses the "self" parameter in the
 -  impl for @staticmethod functions.
 +- Add an __all__ to html.entities.
  
 -- Issue #20294: Argument Clinic now supports argument parsing for __new__ and
 -  __init__ functions.
 +- Issue #15114: the strict mode and argument of HTMLParser, HTMLParser.error,
 +  and the HTMLParserError exception have been removed.
  
 -- Issue #20299: Argument Clinic custom converters may now change the default
 -  value of c_default and py_default with a class member.
 +- Issue #22085: Dropped support of Tk 8.3 in Tkinter.
  
 -- Issue #20287: Argument Clinic's output is now configurable, allowing
 -  delaying its output or even redirecting it to a separate file.
 +- Issue #21580: Now Tkinter correctly handles bytes arguments passed to Tk.
 +  In particular this allows to initialize images from binary data.
  
 -- Issue #20226: Argument Clinic now permits simple expressions
 -  (e.g. "sys.maxsize - 1") as default values for parameters.
 +- Issue #22003: When initialized from a bytes object, io.BytesIO() now
 +  defers making a copy until it is mutated, improving performance and
 +  memory use on some use cases.  Patch by David Wilson.
  
 -- Issue #19936: Added executable bits or shebang lines to Python scripts which
 -  requires them.  Disable executable bits and shebang lines in test and
 -  benchmark files in order to prevent using a random system python, and in
 -  source files of modules which don't provide command line interface.  Fixed
 -  shebang lines in the unittestgui and checkpip scripts.
 +- Issue #22018: On Windows, signal.set_wakeup_fd() now also supports sockets.
 +  A side effect is that Python depends to the WinSock library.
  
 -- Issue #20268: Argument Clinic now supports cloning the parameters and
 -  return converter of existing functions.
 +- Issue #22054: Add os.get_blocking() and os.set_blocking() functions to get
 +  and set the blocking mode of a file descriptor (False if the O_NONBLOCK flag
 +  is set, True otherwise). These functions are not available on Windows.
  
 -- Issue #20228: Argument Clinic now has special support for class special
 -  methods.
 +- Issue #17172: Make turtledemo start as active on OS X even when run with
 +  subprocess.  Patch by Lita Cho.
  
 -- Issue #20214: Fixed a number of small issues and documentation errors in
 -  Argument Clinic (see issue for details).
 +- Issue #21704: Fix build error for _multiprocessing when semaphores
 +  are not available.  Patch by Arfrever Frehtes Taifersar Arahesis.
  
 -- Issue #20196: Fixed a bug where Argument Clinic did not generate correct
 -  parsing code for functions with positional-only parameters where all arguments
 -  are optional.
 +- Issue #20173: Convert sha1, sha256, sha512 and md5 to ArgumentClinic.
 +  Patch by Vajrasky Kok.
  
 -- Issue #18960: 2to3 and the findnocoding.py script now ignore the source
 -  encoding declaration on the second line if the first line contains anything
 -  except a comment.
 +- Fix repr(_socket.socket) on Windows 64-bit: don't fail with OverflowError
 +  on closed socket. repr(socket.socket) already works fine.
  
 -- Issue #19723: The marker comments Argument Clinic uses have been changed
 -  to improve readability.
 +- Issue #22033: Reprs of most Python implemened classes now contain actual
 +  class name instead of hardcoded one.
  
 -- Issue #20157: When Argument Clinic renames a parameter because its name
 -  collides with a C keyword, it no longer exposes that rename to PyArg_Parse.
 +- Issue #21947: The dis module can now disassemble generator-iterator
 +  objects based on their gi_code attribute. Patch by Clement Rouault.
  
 -- Issue #20141: Improved Argument Clinic's support for the PyArg_Parse "O!"
 -  format unit.
 +- Issue #16133: The asynchat.async_chat.handle_read() method now ignores
 +  BlockingIOError exceptions.
  
 -- Issue #20144: Argument Clinic now supports simple symbolic constants
 -  as parameter default values.
 +- Issue #22044: Fixed premature DECREF in call_tzinfo_method.
 +  Patch by Tom Flanagan.
  
 -- Issue #20143: The line numbers reported in Argument Clinic errors are
 -  now more accurate.
 +- Issue #19884: readline: Disable the meta modifier key if stdout is not
 +  a terminal to not write the ANSI sequence "\033[1034h" into stdout. This
 +  sequence is used on some terminal (ex: TERM=xterm-256color") to enable
 +  support of 8 bit characters.
  
 -- Issue #20142: Py_buffer variables generated by Argument Clinic are now
 -  initialized with a default value.
 +- Issue #4350: Removed a number of out-of-dated and non-working for a long time
 +  Tkinter methods.
  
 -Build
 ------
 +- Issue #6167: Scrollbar.activate() now returns the name of active element if
 +  the argument is not specified.  Scrollbar.set() now always accepts only 2
 +  arguments.
  
 -- Issue #12837: Silence a tautological comparison warning on OS X under Clang in
 -  socketmodule.c.
 +- Issue #15275: Clean up and speed up the ntpath module.
  
 +- Issue #21888: plistlib's load() and loads() now work if the fmt parameter is
 +  specified.
  
 -What's New in Python 3.4.0 Beta 2?
 -==================================
 +- Issue #22032: __qualname__ instead of __name__ is now always used to format
 +  fully qualified class names of Python implemented classes.
  
 -Release date: 2014-01-05
 +- Issue #22031: Reprs now always use hexadecimal format with the "0x" prefix
 +  when contain an id in form " at 0x...".
  
 -Core and Builtins
 ------------------
 +- Issue #22018: signal.set_wakeup_fd() now raises an OSError instead of a
 +  ValueError on ``fstat()`` failure.
  
 -- Issue #17432: Drop UCS2 from names of Unicode functions in python3.def.
 +- Issue #21044: tarfile.open() now handles fileobj with an integer 'name'
 +  attribute.  Based on patch by Antoine Pietri.
  
 -- Issue #19526: Exclude all new API from the stable ABI. Exceptions can be
 -  made if a need is demonstrated.
 +- Issue #21966: Respect -q command-line option when code module is ran.
  
 -- Issue #19969: PyBytes_FromFormatV() now raises an OverflowError if "%c"
 -  argument is not in range [0; 255].
 +- Issue #19076: Don't pass the redundant 'file' argument to self.error().
  
 -- Issue #19995: %c, %o, %x, and %X now issue a DeprecationWarning on non-integer
 -  input; reworded docs to clarify that an integer type should define both __int__
 -  and __index__.
 +- Issue #16382: Improve exception message of warnings.warn() for bad
 +  category. Initial patch by Phil Elson.
  
 -- Issue #19787: PyThread_set_key_value() now always set the value. In Python
 -  3.3, the function did nothing if the key already exists (if the current value
 -  is a non-NULL pointer).
 +- Issue #21932: os.read() now uses a :c:func:`Py_ssize_t` type instead of
 +  :c:type:`int` for the size to support reading more than 2 GB at once. On
 +  Windows, the size is truncted to INT_MAX. As any call to os.read(), the OS
 +  may read less bytes than the number of requested bytes.
  
 -- Issue #14432: Remove the thread state field from the frame structure. Fix a
 -  crash when a generator is created in a C thread that is destroyed while the
 -  generator is still used. The issue was that a generator contains a frame, and
 -  the frame kept a reference to the Python state of the destroyed C thread. The
 -  crash occurs when a trace function is setup.
 +- Issue #21942: Fixed source file viewing in pydoc's server mode on Windows.
  
 -- Issue #19576: PyGILState_Ensure() now initializes threads. At startup, Python
 -  has no concrete GIL. If PyGILState_Ensure() is called from a new thread for
 -  the first time and PyEval_InitThreads() was not called yet, a GIL needs to be
 -  created.
 +- Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError
 +  if the number of received bytes is negative.
  
 -- Issue #17576: Deprecation warning emitted now when __int__() or __index__()
 -  return not int instance.
 +- Issue #12523: asynchat.async_chat.push() now raises a TypeError if it doesn't
 +  get a bytes string
  
 -- Issue #19932: Fix typo in import.h, missing whitespaces in function prototypes.
 +- Issue #21707: Add missing kwonlyargcount argument to
 +  ModuleFinder.replace_paths_in_code().
  
 -- Issue #19736: Add module-level statvfs constants defined for GNU/glibc
 -  based systems.
 +- Issue #20639: calling Path.with_suffix('') allows removing the suffix
 +  again.  Patch by July Tikhonov.
  
 -- Issue #20097: Fix bad use of "self" in importlib's WindowsRegistryFinder.
 +- Issue #21714: Disallow the construction of invalid paths using
 +  Path.with_name().  Original patch by Antony Lee.
  
 -- Issue #19729: In str.format(), fix recursive expansion in format spec.
 +- Issue #15014: Added 'auth' method to smtplib to make implementing auth
 +  mechanisms simpler, and used it internally in the login method.
  
 -- Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2
 -  billion characters) input strings in _Py_dg_strtod.
 +- Issue #21151: Fixed a segfault in the winreg module when ``None`` is passed
 +  as a ``REG_BINARY`` value to SetValueEx.  Patch by John Ehresman.
  
 -Library
 --------
 +- Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before,
 +  it ignored I/O errors if at least the first C call read() succeed.
  
 -- Issue #20154: Deadlock in asyncio.StreamReader.readexactly().
 +- Issue #5800: headers parameter of wsgiref.headers.Headers is now optional.
 +  Initial patch by Pablo Torres Navarrete and SilentGhost.
  
 -- Issue #16113: Remove sha3 module again.
 +- Issue #21781: ssl.RAND_add() now supports strings longer than 2 GB.
  
 -- Issue #20111: pathlib.Path.with_suffix() now sanity checks the given suffix.
 +- Issue #21679: Prevent extraneous fstat() calls during open().  Patch by
 +  Bohuslav Kabrda.
  
 -- Fix breakage in TestSuite.countTestCases() introduced by issue #11798.
 +- Issue #21863: cProfile now displays the module name of C extension functions,
 +  in addition to their own name.
  
 -- Issue #20108: Avoid parameter name clash in inspect.getcallargs().
 +- Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
 +  object is destroyed. The destructor now closes the file if needed. The
 +  close() method can now be called twice: the second call does nothing.
  
 -- Issue #19918: Fix PurePath.relative_to() under Windows.
 +- Issue #21858: Better handling of Python exceptions in the sqlite3 module.
  
 -- Issue #19422: Explicitly disallow non-SOCK_STREAM sockets in the ssl
 -  module, rather than silently let them emit clear text data.
 +- Issue #21476: Make sure the email.parser.BytesParser TextIOWrapper is
 +  discarded after parsing, so the input file isn't unexpectedly closed.
  
 -- Issue #20046: Locale alias table no longer contains entities which can be
 -  calculated.  Generalized support of the euro modifier.
 +- Issue #20295: imghdr now recognizes OpenEXR format images.
  
 -- Issue #20027: Fixed locale aliases for devanagari locales.
 +- Issue #21729: Used the "with" statement in the dbm.dumb module to ensure
 +  files closing.  Patch by Claudiu Popa.
  
 -- Issue #20067: Tkinter variables now work when wantobjects is false.
 +- Issue #21491: socketserver: Fix a race condition in child processes reaping.
  
 -- Issue #19020: Tkinter now uses splitlist() instead of split() in configure
 -  methods.
 +- Issue #21719: Added the ``st_file_attributes`` field to os.stat_result on
 +  Windows.
  
 -- Issue #19744: ensurepip now provides a better error message when Python is
 -  built without SSL/TLS support (pip currently requires that support to run,
 -  even if only operating with local wheel files)
 +- Issue #21832: Require named tuple inputs to be exact strings.
  
 -- Issue #19734: ensurepip now ignores all pip environment variables to avoid
 -  odd behaviour based on user configuration settings
 +- Issue #21722: The distutils "upload" command now exits with a non-zero
 +  return code when uploading fails.  Patch by Martin Dengler.
  
 -- Fix TypeError on "setup.py upload --show-response".
 +- Issue #21723: asyncio.Queue: support any type of number (ex: float) for the
 +  maximum size. Patch written by Vajrasky Kok.
  
 -- Issue #20045: Fix "setup.py register --list-classifiers".
 +- Issue #21711: support for "site-python" directories has now been removed
 +  from the site module (it was deprecated in 3.4).
  
 -- Issue #18879: When a method is looked up on a temporary file, avoid closing
 -  the file before the method is possibly called.
 +- Issue #17552: new socket.sendfile() method allowing to send a file over a
 +  socket by using high-performance os.sendfile() on UNIX.
 +  Patch by Giampaolo Rodola'.
  
 -- Issue #20037: Avoid crashes when opening a text file late at interpreter
 -  shutdown.
 +- Issue #18039: dbm.dump.open() now always creates a new database when the
 +  flag has the value 'n'.  Patch by Claudiu Popa.
  
 -- Issue #19967: Thanks to the PEP 442, asyncio.Future now uses a
 -  destructor to log uncaught exceptions, instead of the dedicated
 -  _TracebackLogger class.
 +- Issue #21326: Add a new is_closed() method to asyncio.BaseEventLoop.
 +  run_forever() and run_until_complete() methods of asyncio.BaseEventLoop now
 +  raise an exception if the event loop was closed.
  
 -- Added a Task.current_task() class method to asyncio.
 +- Issue #21766: Prevent a security hole in CGIHTTPServer by URL unquoting paths
 +  before checking for a CGI script at that path.
  
 -- Issue #19850: Set SA_RESTART in asyncio when registering a signal
 -  handler to limit EINTR occurrences.
 +- Issue #21310: Fixed possible resource leak in failed open().
  
 -- Implemented write flow control in asyncio for proactor event loop (Windows).
 +- Issue #21256: Printout of keyword args should be in deterministic order in
 +  a mock function call. This will help to write better doctests.
  
 -- Change write buffer in asyncio use to avoid O(N**2) behavior.  Make
 -  write()/sendto() accept bytearray/memoryview.
 +- Issue #21677: Fixed chaining nonnormalized exceptions in io close() methods.
  
 -- Issue #20034: Updated alias mapping to most recent locale.alias file
 -  from X.org distribution using makelocalealias.py.
 +- Issue #11709: Fix the pydoc.help function to not fail when sys.stdin is not a
 +  valid file.
  
 -- Issue #5815: Fixed support for locales with modifiers.  Fixed support for
 -  locale encodings with hyphens.
 +- Issue #21515: tempfile.TemporaryFile now uses os.O_TMPFILE flag is available.
  
 -- Issue #20026: Fix the sqlite module to handle correctly invalid isolation
 -  level (wrong type).
 +- Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods
 +  that use 'self' in the example code is generated correctly.
  
 -- Issue #18829: csv.Dialect() now checks type for delimiter, escapechar and
 -  quotechar fields.  Original patch by Vajrasky Kok.
 +- Issue #21463: In urllib.request, fix pruning of the FTP cache.
  
 -- Issue #19855: uuid.getnode() on Unix now looks on the PATH for the
 -  executables used to find the mac address, with /sbin and /usr/sbin as
 -  fallbacks.
 +- Issue #21618: The subprocess module could fail to close open fds that were
 +  inherited by the calling process and already higher than POSIX resource
 +  limits would otherwise allow.  On systems with a functioning /proc/self/fd
 +  or /dev/fd interface the max is now ignored and all fds are closed.
  
 -- Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
 -  Original patch by Simon Sapin.
 +- Issue #20383: Introduce importlib.util.module_from_spec() as the preferred way
 +  to create a new module.
  
 -- Issue #19946: multiprocessing now uses runpy to initialize __main__ in
 -  child processes when necessary, allowing it to correctly handle scripts
 -  without suffixes and submodules that use explicit relative imports or
 -  otherwise rely on parent modules being correctly imported prior to
 -  execution.
 +- Issue #21552: Fixed possible integer overflow of too long string lengths in
 +  the tkinter module on 64-bit platforms.
  
 -- Issue #19921: When Path.mkdir() is called with parents=True, any missing
 -  parent is created with the default permissions, ignoring the mode argument
 -  (mimicking the POSIX "mkdir -p" command).
 +- Issue #14315: The zipfile module now ignores extra fields in the central
 +  directory that are too short to be parsed instead of letting a struct.unpack
 +  error bubble up as this "bad data" appears in many real world zip files in
 +  the wild and is ignored by other zip tools.
  
 -- Issue #19887: Improve the Path.resolve() algorithm to support certain
 -  symlink chains.
 +- Issue #13742: Added "key" and "reverse" parameters to heapq.merge().
 +  (First draft of patch contributed by Simon Sapin.)
  
 -- Issue #19912: Fixed numerous bugs in ntpath.splitunc().
 +- Issue #21402: tkinter.ttk now works when default root window is not set.
  
 -- Issue #19911: ntpath.splitdrive() now correctly processes the 'İ' character
 -  (U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
 +- Issue #3015: _tkinter.create() now creates tkapp object with wantobject=1 by
 +  default.
  
 -- Issue #19532: python -m compileall with no filename/directory arguments now
 -  respects the -f and -q flags instead of ignoring them.
 +- Issue #10203: sqlite3.Row now truly supports sequence protocol.  In particular
 +  it supports reverse() and negative indices.  Original patch by Claudiu Popa.
  
 -- Issue #19623: Fixed writing to unseekable files in the aifc module.
 +- Issue #18807: If copying (no symlinks) specified for a venv, then the python
 +  interpreter aliases (python, python3) are now created by copying rather than
 +  symlinking.
  
 -- Issue #19946: multiprocessing.spawn now raises ImportError when the module to
 -  be used as the main module cannot be imported.
 +- Issue #20197: Added support for the WebP image type in the imghdr module.
 +  Patch by Fabrice Aneche and Claudiu Popa.
  
 -- Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
 -  Fixed integer overflow in the eventmask parameter.
 -
 -- Issue #19063: if a Charset's body_encoding was set to None, the email
 -  package would generate a message claiming the Content-Transfer-Encoding
 -  was 7bit, and produce garbage output for the content.  This now works.
 -  A couple of other set_payload mishandlings of non-ASCII are also fixed.
 -  In addition, calling set_payload with a string argument without
 -  specifying a charset now raises an error (this is a new error in 3.4).
 +- Issue #21513: Speedup some properties of IP addresses (IPv4Address,
 +  IPv6Address) such as .is_private or .is_multicast.
  
 -- Issue #15475: Add __sizeof__ implementations for itertools objects.
 +- Issue #21137: Improve the repr for threading.Lock() and its variants
 +  by showing the "locked" or "unlocked" status.  Patch by Berker Peksag.
  
 -- Issue #19944: Fix importlib.find_spec() so it imports parents as needed
 -  and move the function to importlib.util.
 +- Issue #21538: The plistlib module now supports loading of binary plist files
 +  when reference or offset size is not a power of two.
  
 -- Issue #19880: Fix a reference leak in unittest.TestCase. Explicitly break
 -  reference cycles between frames and the _Outcome instance.
 +- Issue #21455: Add a default backlog to socket.listen().
  
 -- Issue #17429: platform.linux_distribution() now decodes files from the UTF-8
 -  encoding with the surrogateescape error handler, instead of decoding from the
 -  locale encoding in strict mode. It fixes the function on Fedora 19 which is
 -  probably the first major distribution release with a non-ASCII name. Patch
 -  written by Toshio Kuratomi.
 +- Issue #21525: Most Tkinter methods which accepted tuples now accept lists too.
  
 -- Issue #19343: Expose FreeBSD-specific APIs in resource module.  Original
 -  patch by Koobs.
 +- Issue #22166: With the assistance of a new internal _codecs._forget_codec
 +  helping function, test_codecs now clears the encoding caches to avoid the
 +  appearance of a reference leak
  
 -- Issue #19929: Call os.read with 32768 within subprocess.Popen.communicate
 -  rather than 4096 for efficiency.  A microbenchmark shows Linux and OS X
 -  both using ~50% less cpu time this way.
 +- Issue #22236: Tkinter tests now don't reuse default root window.  New root
 +  window is created for every test class.
  
 -- Issue #19506: Use a memoryview to avoid a data copy when piping data
 -  to stdin within subprocess.Popen.communicate.  5-10% less cpu usage.
 +- Issue #10744: Fix PEP 3118 format strings on ctypes objects with a nontrivial
 +  shape.
  
 -- Issue #19876: selectors unregister() no longer raises ValueError or OSError
 -  if the FD is closed (as long as it was registered).
 +- Issue #20826: Optimize ipaddress.collapse_addresses().
  
 -- Issue #19908: pathlib now joins relative Windows paths correctly when a drive
 -  is present.  Original patch by Antoine Pitrou.
 +- Issue #21487: Optimize ipaddress.summarize_address_range() and
 +  ipaddress.{IPv4Network,IPv6Network}.subnets().
  
 -- Issue #19296: Silence compiler warning in dbm_open
 +- Issue #21486: Optimize parsing of netmasks in ipaddress.IPv4Network and
 +  ipaddress.IPv6Network.
  
 -- Issue #6784: Strings from Python 2 can now be unpickled as bytes
 -  objects by setting the encoding argument of Unpickler to be 'bytes'.
 -  Initial patch by Merlijn van Deen.
 +- Issue #13916: Disallowed the surrogatepass error handler for non UTF-*
 +  encodings.
  
 -- Issue #19839: Fix regression in bz2 module's handling of non-bzip2 data at
 -  EOF, and analogous bug in lzma module.
 +- Issue #20998: Fixed re.fullmatch() of repeated single character pattern
 +  with ignore case.  Original patch by Matthew Barnett.
  
 -- Issue #19881: Fix pickling bug where cpickle would emit bad pickle data for
 -  large bytes string (i.e., with size greater than 2**32-1).
 +- Issue #21075: fileinput.FileInput now reads bytes from standard stream if
 +  binary mode is specified.  Patch by Sam Kimbrel.
  
 -- Issue #19138: doctest's IGNORE_EXCEPTION_DETAIL now allows a match when
 -  no exception detail exists (no colon following the exception's name, or
 -  a colon does follow but no text follows the colon).
 +- Issue #19775: Add a samefile() method to pathlib Path objects.  Initial
 +  patch by Vajrasky Kok.
  
 -- Issue #19927: Add __eq__ to path-based loaders in importlib.
 +- Issue #21226: Set up modules properly in PyImport_ExecCodeModuleObject
 +  (and friends).
  
 -- Issue #19827: On UNIX, setblocking() and settimeout() methods of
 -  socket.socket can now avoid a second syscall if the ioctl() function can be
 -  used, or if the non-blocking flag of the socket is unchanged.
 +- Issue #21398: Fix an unicode error in the pydoc pager when the documentation
 +  contains characters not encodable to the stdout encoding.
  
 -- Issue #19785: smtplib now supports SSLContext.check_hostname and server name
 -  indication for TLS/SSL connections.
 +- Issue #16531: ipaddress.IPv4Network and ipaddress.IPv6Network now accept
 +  an (address, netmask) tuple argument, so as to easily construct network
 +  objects from existing addresses.
  
 -- Issue #19784: poplib now supports SSLContext.check_hostname and server name
 -  indication for TLS/SSL connections.
 +- Issue #21156: importlib.abc.InspectLoader.source_to_code() is now a
 +  staticmethod.
  
 -- Issue #19783: nntplib now supports SSLContext.check_hostname and server name
 -  indication for TLS/SSL connections.
 +- Issue #21424: Simplified and optimized heaqp.nlargest() and nmsmallest()
 +  to make fewer tuple comparisons.
  
 -- Issue #19782: imaplib now supports SSLContext.check_hostname and server name
 -  indication for TLS/SSL connections.
 +- Issue #21396: Fix TextIOWrapper(..., write_through=True) to not force a
 +  flush() on the underlying binary stream.  Patch by akira.
  
 -- Issue #20123: Fix pydoc.synopsis() for "binary" modules.
 +- Issue #18314: Unlink now removes junctions on Windows. Patch by Kim Gräsman
  
 -- Issue #19834: Support unpickling of exceptions pickled by Python 2.
 +- Issue #21088: Bugfix for curses.window.addch() regression in 3.4.0.
 +  In porting to Argument Clinic, the first two arguments were reversed.
  
 -- Issue #19781: ftplib now supports SSLContext.check_hostname and server name
 -  indication for TLS/SSL connections.
 +- Issue #21407: _decimal: The module now supports function signatures.
  
 -- Issue #19509: Add SSLContext.check_hostname to match the peer's certificate
 -  with server_hostname on handshake.
 +- Issue #10650: Remove the non-standard 'watchexp' parameter from the
 +  Decimal.quantize() method in the Python version.  It had never been
 +  present in the C version.
  
 -- Issue #15798: Fixed subprocess.Popen() to no longer fail if file
 -  descriptor 0, 1 or 2 is closed.
 +- Issue #21469: Reduced the risk of false positives in robotparser by
 +  checking to make sure that robots.txt has been read or does not exist
 +  prior to returning True in can_fetch().
  
 -- Issue #17897: Optimized unpickle prefetching.
 +- Issue #19414: Have the OrderedDict mark deleted links as unusable.
 +  This gives an early failure if the link is deleted during iteration.
  
 -- Issue #3693: Make the error message more helpful when the array.array()
 -  constructor is given a str. Move the array module typecode documentation to
 -  the docstring of the constructor.
 +- Issue #21421: Add __slots__ to the MappingViews ABC.
 +  Patch by Josh Rosenberg.
  
 -- Issue #19088: Fixed incorrect caching of the copyreg module in
 -  object.__reduce__() and object.__reduce_ex__().
 +- Issue #21101: Eliminate double hashing in the C speed-up code for
 +  collections.Counter().
  
 -- Issue #19698: Removed exec_module() methods from
 -  importlib.machinery.BuiltinImporter and ExtensionFileLoader.
 +- Issue #21321: itertools.islice() now releases the reference to the source
 +  iterator when the slice is exhausted.  Patch by Anton Afanasyev.
  
 -- Issue #18864: Added a setter for ModuleSpec.has_location.
 +- Issue #21057: TextIOWrapper now allows the underlying binary stream's
 +  read() or read1() method to return an arbitrary bytes-like object
 +  (such as a memoryview).  Patch by Nikolaus Rath.
  
 -- Fixed _pickle.Unpickler to not fail when loading empty strings as
 -  persistent IDs.
 +- Issue #20951: SSLSocket.send() now raises either SSLWantReadError or
 +  SSLWantWriteError on a non-blocking socket if the operation would block.
 +  Previously, it would return 0.  Patch by Nikolaus Rath.
  
 -- Issue #11480: Fixed copy.copy to work with classes with custom metaclasses.
 -  Patch by Daniel Urban.
 +- Issue #13248: removed previously deprecated asyncore.dispatcher __getattr__
 +  cheap inheritance hack.
  
 -- Issue #6477: Added support for pickling the types of built-in singletons
 -  (i.e., Ellipsis, NotImplemented, None).
 +- Issue #9815: assertRaises now tries to clear references to local variables
 +  in the exception's traceback.
  
 -- Issue #19713: Add remaining PEP 451-related deprecations and move away
 -  from using find_module/find_loaer/load_module.
 +- Issue #19940: ssl.cert_time_to_seconds() now interprets the given time
 +  string in the UTC timezone (as specified in RFC 5280), not the local
 +  timezone.
  
 -- Issue #19708: Update pkgutil to use the new importer APIs.
 +- Issue #13204: Calling sys.flags.__new__ would crash the interpreter,
 +  now it raises a TypeError.
  
 -- Issue #19703: Update pydoc to use the new importer APIs.
 +- Issue #19385: Make operations on a closed dbm.dumb database always raise the
 +  same exception.
  
 -- Issue #19851: Fixed a regression in reloading sub-modules.
 +- Issue #21207: Detect when the os.urandom cached fd has been closed or
 +  replaced, and open it anew.
  
 -- ssl.create_default_context() sets OP_NO_COMPRESSION to prevent CRIME.
 +- Issue #21291: subprocess's Popen.wait() is now thread safe so that
 +  multiple threads may be calling wait() or poll() on a Popen instance
 +  at the same time without losing the Popen.returncode value.
  
 -- Issue #19802: Add socket.SO_PRIORITY.
 +- Issue #21127: Path objects can now be instantiated from str subclass
 +  instances (such as ``numpy.str_``).
  
 -- Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with
 -  virtual interface.  Original patch by Kent Frazier.
 +- Issue #15002: urllib.response object to use _TemporaryFileWrapper (and
 +  _TemporaryFileCloser) facility. Provides a better way to handle file
 +  descriptor close. Patch contributed by Christian Theune.
  
 -- Issue #11489: JSON decoder now accepts lone surrogates.
 +- Issue #12220: mindom now raises a custom ValueError indicating it doesn't
 +  support spaces in URIs instead of letting a 'split' ValueError bubble up.
  
 -- Issue #19545: Avoid chained exceptions while passing stray % to
 -  time.strptime().  Initial patch by Claudiu Popa.
 +- Issue #21068: The ssl.PROTOCOL* constants are now enum members.
  
 -IDLE
 -----
 +- Issue #21276: posixmodule: Don't define USE_XATTRS on KFreeBSD and the Hurd.
  
 -- Issue #20058: sys.stdin.readline() in IDLE now always returns only one line.
 +- Issue #21262: New method assert_not_called for Mock.
 +  It raises AssertionError if the mock has been called.
  
 -- Issue #19481: print() of string subclass instance in IDLE no longer hangs.
 +- Issue #21238: New keyword argument `unsafe` to Mock. It raises
 +  `AttributeError` incase of an attribute startswith assert or assret.
  
 -- Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
 -  shell window is present.
 +- Issue #20896: ssl.get_server_certificate() now uses PROTOCOL_SSLv23, not
 +  PROTOCOL_SSLv3, for maximum compatibility.
  
 -Tests
 ------
 +- Issue #21239: patch.stopall() didn't work deterministically when the same
 +  name was patched more than once.
  
 -- Issue #20055: Fix test_shutil under Windows with symlink privileges held.
 -  Patch by Vajrasky Kok.
 +- Issue #21203: Updated fileConfig and dictConfig to remove inconsistencies.
 +  Thanks to Jure Koren for the patch.
  
 -- Issue #20070: Don't run test_urllib2net when network resources are not
 -  enabled.
 +- Issue #21222: Passing name keyword argument to mock.create_autospec now
 +  works.
  
 -- Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been
 -  disabled since 3.0 due to the changes in listcomp handling.
 +- Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.
  
 -- Issue #19320: test_tcl no longer fails when wantobjects is false.
 +- Issue #17498: Some SMTP servers disconnect after certain errors, violating
 +  strict RFC conformance.  Instead of losing the error code when we issue the
 +  subsequent RSET, smtplib now returns the error code and defers raising the
 +  SMTPServerDisconnected error until the next command is issued.
  
 -- Issue #19919: Fix flaky SSL test. connect_ex() sometimes returns
 -  EWOULDBLOCK on Windows or VMs hosted on Windows.
 +- Issue #17826: setting an iterable side_effect on a mock function created by
 +  create_autospec now works. Patch by Kushal Das.
  
 -- Issue #19912: Added tests for ntpath.splitunc().
 +- Issue #7776: Fix ``Host:`` header and reconnection when using
 +  http.client.HTTPConnection.set_tunnel(). Patch by Nikolaus Rath.
  
 -- Issue #19828: Fixed test_site when the whole suite is run with -S.
 +- Issue #20968: unittest.mock.MagicMock now supports division.
 +  Patch by Johannes Baiter.
  
 -- Issue #19928: Implemented a test for repr() of cell objects.
 +- Fix arbitrary memory access in JSONDecoder.raw_decode with a negative second
 +  parameter. Bug reported by Guido Vranken.
  
 -- Issue #19535: Fixed test_docxmlrpc, test_functools, test_inspect, and
 -  test_statistics when python is run with -OO.
 +- Issue #21169: getpass now handles non-ascii characters that the
 +  input stream encoding cannot encode by re-encoding using the
 +  replace error handler.
  
 -- Issue #19926: Removed unneeded test_main from test_abstract_numbers.
 -  Patch by Vajrasky Kok.
 +- Issue #21171: Fixed undocumented filter API of the rot13 codec.
 +  Patch by Berker Peksag.
  
 -- Issue #19572: More skipped tests explicitly marked as skipped.
 +- Issue #20539: Improved math.factorial error message for large positive inputs
 +  and changed exception type (OverflowError -> ValueError) for large negative
 +  inputs.
  
 -- Issue #19595, #19987: Re-enabled a long-disabled test in test_winsound.
 +- Issue #21172: isinstance check relaxed from dict to collections.Mapping.
  
 -- Issue #19588: Fixed tests in test_random that were silently skipped most
 -  of the time.  Patch by Julian Gindi.
 +- Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
 +  if path and sock are specified at the same time.
  
 -Build
 ------
 +- Issue #21136: Avoid unnecessary normalization of Fractions resulting from
 +  power and other operations.  Patch by Raymond Hettinger.
  
 -- Issue #19728: Enable pip installation by default on Windows.
 +- Issue #17621: Introduce importlib.util.LazyLoader.
  
 -- Issue #16136: Remove VMS support
 +- Issue #21076: signal module constants were turned into enums.
 +  Patch by Giampaolo Rodola'.
  
 -- Issue #18215: Add script Tools/ssl/test_multiple_versions.py to compile and
 -  run Python's unit tests with multiple versions of OpenSSL.
 +- Issue #20636: Improved the repr of Tkinter widgets.
  
 -- Issue #19922: define _INCLUDE__STDC_A1_SOURCE in HP-UX to include mbstate_t
 -  for mbrtowc().
 +- Issue #19505: The items, keys, and values views of OrderedDict now support
 +  reverse iteration using reversed().
  
 -- Issue #19788: kill_python(_d).exe is now run as a PreBuildEvent on the
 -  pythoncore sub-project.  This should prevent build errors due a previous
 -  build's python(_d).exe still running.
 +- Issue #21149: Improved thread-safety in logging cleanup during interpreter
 +  shutdown. Thanks to Devin Jeanpierre for the patch.
  
 -Documentation
 --------------
 +- Issue #21058: Fix a leak of file descriptor in
 +  :func:`tempfile.NamedTemporaryFile`, close the file descriptor if
 +  :func:`io.open` fails
  
 -- Issue #20265: Updated some parts of the Using Windows document.
 +- Issue #21200: Return None from pkgutil.get_loader() when __spec__ is missing.
  
 -- Issue #20266: Updated some parts of the Windows FAQ.
 +- Issue #21013: Enhance ssl.create_default_context() when used for server side
 +  sockets to provide better security by default.
  
 -- Issue #20255: Updated the about and bugs pages.
 +- Issue #20145: `assertRaisesRegex` and `assertWarnsRegex` now raise a
 +  TypeError if the second argument is not a string or compiled regex.
  
 -- Issue #20253: Fixed a typo in the ipaddress docs that advertised an
 -  illegal attribute name.  Found by INADA Naoki.
 +- Issue #20633: Replace relative import by absolute import.
  
 -- Issue #18840: Introduce the json module in the tutorial, and de-emphasize
 -  the pickle module.
 +- Issue #20980: Stop wrapping exception when using ThreadPool.
  
 -- Issue #19845: Updated the Compiling Python on Windows section.
 +- Issue #21082: In os.makedirs, do not set the process-wide umask. Note this
 +  changes behavior of makedirs when exist_ok=True.
  
 -- Issue #19795: Improved markup of True/False constants.
 +- Issue #20990: Fix issues found by pyflakes for multiprocessing.
  
 -Tools/Demos
 ------------
 +- Issue #21015: SSL contexts will now automatically select an elliptic
 +  curve for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise
 +  default to "prime256v1".
  
 -- Issue #19659: Added documentation for Argument Clinic.
 +- Issue #21000: Improve the command-line interface of json.tool.
  
 -- Issue #19976: Argument Clinic METH_NOARGS functions now always
 -  take two parameters.
 +- Issue #20995: Enhance default ciphers used by the ssl module to enable
 +  better security an prioritize perfect forward secrecy.
  
 +- Issue #20884: Don't assume that __file__ is defined on importlib.__init__.
  
 -What's New in Python 3.4.0 Beta 1?
 -==================================
 +- Issue #21499: Ignore __builtins__ in several test_importlib.test_api tests.
  
 -Release date: 2013-11-24
 +- Issue #20627: xmlrpc.client.ServerProxy is now a context manager.
  
 -Core and Builtins
 ------------------
 +- Issue #19165: The formatter module now raises DeprecationWarning instead of
 +  PendingDeprecationWarning.
  
 -- Use the repr of a module name in more places in import, especially
 -  exceptions.
 +- Issue #13936: Remove the ability of datetime.time instances to be considered
 +  false in boolean contexts.
  
 -- Issue #19619: str.encode, bytes.decode and bytearray.decode now use an
 -  internal API to throw LookupError for known non-text encodings, rather
 -  than attempting the encoding or decoding operation and then throwing a
 -  TypeError for an unexpected output type. (The latter mechanism remains
 -  in place for third party non-text encodings)
 +- Issue #18931: selectors module now supports /dev/poll on Solaris.
 +  Patch by Giampaolo Rodola'.
  
 -- Issue #19183: Implement PEP 456 'secure and interchangeable hash algorithm'.
 -  Python now uses SipHash24 on all major platforms.
 +- Issue #19977: When the ``LC_TYPE`` locale is the POSIX locale (``C`` locale),
 +  :py:data:`sys.stdin` and :py:data:`sys.stdout` are now using the
 +  ``surrogateescape`` error handler, instead of the ``strict`` error handler.
  
 -- Issue #12892: The utf-16* and utf-32* encoders no longer allow surrogate code
 -  points (U+D800-U+DFFF) to be encoded.  The utf-32* decoders no longer decode
 -  byte sequences that correspond to surrogate code points.  The surrogatepass
 -  error handler now works with the utf-16* and utf-32* codecs.  Based on
 -  patches by Victor Stinner and Kang-Hao (Kenny) Lu.
 +- Issue #20574: Implement incremental decoder for cp65001 code (Windows code
 +  page 65001, Microsoft UTF-8).
  
 -- Issue #17806: Added keyword-argument support for "tabsize" to
 -  str/bytes.expandtabs().
 +- Issue #20879: Delay the initialization of encoding and decoding tables for
 +  base32, ascii85 and base85 codecs in the base64 module, and delay the
 +  initialization of the unquote_to_bytes() table of the urllib.parse module, to
 +  not waste memory if these modules are not used.
  
 -- Issue #17828: Output type errors in str.encode(), bytes.decode() and
 -  bytearray.decode() now direct users to codecs.encode() or codecs.decode()
 -  as appropriate.
 +- Issue #19157: Include the broadcast address in the usuable hosts for IPv6
 +  in ipaddress.
  
 -- Issue #17828: The interpreter now attempts to chain errors that occur in
 -  codec processing with a replacement exception of the same type that
 -  includes the codec name in the error message. It ensures it only does this
 -  when the creation of the replacement exception won't lose any information.
 +- Issue #11599: When an external command (e.g. compiler) fails, distutils now
 +  prints out the whole command line (instead of just the command name) if the
 +  environment variable DISTUTILS_DEBUG is set.
  
 -- Issue #19466: Clear the frames of daemon threads earlier during the
 -  Python shutdown to call objects destructors. So "unclosed file" resource
 -  warnings are now corretly emitted for daemon threads.
 +- Issue #4931: distutils should not produce unhelpful "error: None" messages
 +  anymore.  distutils.util.grok_environment_error is kept but doc-deprecated.
  
 -- Issue #19514: Deduplicate some _Py_IDENTIFIER declarations.
 -  Patch by Andrei Dorian Duma.
 +- Issue #20875: Prevent possible gzip "'read' is not defined" NameError.
 +  Patch by Claudiu Popa.
  
 -- Issue #17936: Fix O(n**2) behaviour when adding or removing many subclasses
 -  of a given type.
 +- Issue #11558: ``email.message.Message.attach`` now returns a more
 +  useful error message if ``attach`` is called on a message for which
 +  ``is_multipart`` is False.
  
 -- Issue #19428: zipimport now handles errors when reading truncated or invalid
 -  ZIP archive.
 +- Issue #20283: RE pattern methods now accept the string keyword parameters
 +  as documented.  The pattern and source keyword parameters are left as
 +  deprecated aliases.
  
 -- Issue #18408: Add a new PyFrame_FastToLocalsWithError() function to handle
 -  exceptions when merging fast locals into f_locals of a frame.
 -  PyEval_GetLocals() now raises an exception and return NULL on failure.
 +- Issue #20778: Fix modulefinder to work with bytecode-only modules.
  
 -- Issue #19369: Optimized the usage of __length_hint__().
 +- Issue #20791: copy.copy() now doesn't make a copy when the input is
 +  a bytes object.  Initial patch by Peter Otten.
  
 -- Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the
 -  Python executable and not removed by the linker's optimizer.
 +- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
 +  outsize range [1902; 2037].
  
 -- Issue #19306: Add extra hints to the faulthandler module's stack
 -  dumps that these are "upside down".
 +- Issue #19573: inspect.signature: Use enum for parameter kind constants.
  
 -Library
 --------
 +- Issue #20726: inspect.signature: Make Signature and Parameter picklable.
  
 -- Issue #3158: doctest can now find doctests in functions and methods
 -  written in C.
 +- Issue #17373: Add inspect.Signature.from_callable method.
  
 -- Issue #13477: Added command line interface to the tarfile module.
 -  Original patch by Berker Peksag.
 +- Issue #20378: Improve repr of inspect.Signature and inspect.Parameter.
  
 -- Issue #19674: inspect.signature() now produces a correct signature
 -  for some builtins.
 +- Issue #20816: Fix inspect.getcallargs() to raise correct TypeError for
 +  missing keyword-only arguments. Patch by Jeremiah Lowin.
  
 -- Issue #19722: Added opcode.stack_effect(), which
 -  computes the stack effect of bytecode instructions.
 +- Issue #20817: Fix inspect.getcallargs() to fail correctly if more
 +  than 3 arguments are missing. Patch by Jeremiah Lowin.
  
 -- Issue #19735: Implement private function ssl._create_stdlib_context() to
 -  create SSLContext objects in Python's stdlib module. It provides a single
 -  configuration point and makes use of SSLContext.load_default_certs().
 +- Issue #6676: Ensure a meaningful exception is raised when attempting
 +  to parse more than one XML document per pyexpat xmlparser instance.
 +  (Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with
 +  suggested wording by David Gutteridge)
  
 -- Issue #16203: Add re.fullmatch() function and regex.fullmatch() method,
 -  which anchor the pattern at both ends of the string to match.
 -  Original patch by Matthew Barnett.
 +- Issue #21117: Fix inspect.signature to better support functools.partial.
 +  Due to the specifics of functools.partial implementation,
 +  positional-or-keyword arguments passed as keyword arguments become
 +  keyword-only.
  
 -- Issue #13592: Improved the repr for regular expression pattern objects.
 -  Based on patch by Hugo Lopes Tavares.
 +- Issue #20334: inspect.Signature and inspect.Parameter are now hashable.
 +  Thanks to Antony Lee for bug reports and suggestions.
  
 -- Issue #19641: Added the audioop.byteswap() function to convert big-endian
 -  samples to little-endian and vice versa.
 +- Issue #15916: doctest.DocTestSuite returns an empty unittest.TestSuite instead
 +  of raising ValueError if it finds no tests
  
 -- Issue #15204: Deprecated the 'U' mode in file-like objects.
 +- Issue #21209: Fix asyncio.tasks.CoroWrapper to workaround a bug
 +  in yield-from implementation in CPythons prior to 3.4.1.
  
 -- Issue #17810: Implement PEP 3154, pickle protocol 4.
 +- asyncio: Add gi_{frame,running,code} properties to CoroWrapper
 +  (upstream issue #163).
  
 -- Issue #19668: Added support for the cp1125 encoding.
 +- Issue #21311: Avoid exception in _osx_support with non-standard compiler
 +  configurations.  Patch by John Szakmeister.
  
 -- Issue #19689: Add ssl.create_default_context() factory function. It creates
 -  a new SSLContext object with secure default settings.
 +- Issue #11571: Ensure that the turtle window becomes the topmost window
 +  when launched on OS X.
  
 -- Issue #19727: os.utime(..., None) is now potentially more precise
 -  under Windows.
 +- Issue #21801: Validate that __signature__ is None or an instance of Signature.
  
 -- Issue #17201: ZIP64 extensions now are enabled by default.  Patch by
 -  William Mallard.
 +- Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler
 +  due to possible uninitialized _config_vars.
  
 -- Issue #19292: Add SSLContext.load_default_certs() to load default root CA
 -  certificates from default stores or system stores. By default the method
 -  loads CA certs for authentication of server certs.
 +- Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
 +  broken by the fix for security issue #19435.  Patch by Zach Byrne.
  
 -- Issue #19673: Add pathlib to the stdlib as a provisional module (PEP 428).
 +- Issue #22733: Fix ffi_prep_args not zero-extending argument values correctly
 +  on 64-bit Windows.
  
 -- Issue #16596: pdb in a generator now properly skips over yield and
 -  yield from rather than stepping out of the generator into its
 -  caller.  (This is essential for stepping through asyncio coroutines.)
 +- Issue #23302: Default to TCP_NODELAY=1 upon establishing an HTTPConnection.
 +  Removed use of hard-coded MSS as it's an optimization that's no longer needed
 +  with Nagle disabled.
  
 -- Issue #17916: Added dis.Bytecode.from_traceback() and
 -  dis.Bytecode.current_offset to easily display "current instruction"
 -  markers in the new disassembly API (Patch by Claudiu Popa).
 +IDLE
 +----
  
 -- Issue #19552: venv now supports bootstrapping pip into virtual environments
 +- Issue #20577: Configuration of the max line length for the FormatParagraph
 +  extension has been moved from the General tab of the Idle preferences dialog
 +  to the FormatParagraph tab of the Config Extensions dialog.
 +  Patch by Tal Einat.
  
 -- Issue #17134: Finalize interface to Windows' certificate store. Cert and
 -  CRL enumeration are now two functions. enum_certificates() also returns
 -  purpose flags as set of OIDs.
 +- Issue #16893: Update Idle doc chapter to match current Idle and add new
 +  information.
  
 -- Issue #19555: Restore sysconfig.get_config_var('SO'), (and the distutils
 -  equivalent) with a DeprecationWarning pointing people at $EXT_SUFFIX.
 +- Issue #3068: Add Idle extension configuration dialog to Options menu.
 +  Changes are written to HOME/.idlerc/config-extensions.cfg.
 +  Original patch by Tal Einat.
  
- - Issue #16233: A module browser (File : Class Browser, Alt+C) requires a
 -- Issue #8813: Add SSLContext.verify_flags to change the verification flags
 -  of the context in order to enable certification revocation list (CRL)
 -  checks or strict X509 rules.
++- Issue #16233: A module browser (File : Class Browser, Alt+C) requires an
 +  editor window with a filename.  When Class Browser is requested otherwise,
 +  from a shell, output window, or 'Untitled' editor, Idle no longer displays
 +  an error box.  It now pops up an Open Module box (Alt+M). If a valid name
 +  is entered and a module is opened, a corresponding browser is also opened.
  
 -- Issue #18294: Fix the zlib module to make it 64-bit safe.
 +- Issue #4832: Save As to type Python files automatically adds .py to the
 +  name you enter (even if your system does not display it).  Some systems
 +  automatically add .txt when type is Text files.
  
 -- Issue #19682: Fix compatibility issue with old version of OpenSSL that
 -  was introduced by Issue #18379.
 +- Issue #21986: Code objects are not normally pickled by the pickle module.
 +  To match this, they are no longer pickled when running under Idle.
  
 -- Issue #14455: plistlib now supports binary plists and has an updated API.
 +- Issue #17390: Adjust Editor window title; remove 'Python',
 +  move version to end.
  
 -- Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on
 -  big-endian platforms.
 +- Issue #14105: Idle debugger breakpoints no longer disappear
 +  when inseting or deleting lines.
  
 -- Issue #18379: SSLSocket.getpeercert() returns CA issuer AIA fields, OCSP
 -  and CRL distribution points.
 +- Issue #17172: Turtledemo can now be run from Idle.
 +  Currently, the entry is on the Help menu, but it may move to Run.
 +  Patch by Ramchandra Apt and Lita Cho.
  
 -- Issue #18138: Implement cadata argument of SSLContext.load_verify_location()
 -  to load CA certificates and CRL from memory. It supports PEM and DER
 -  encoded strings.
 +- Issue #21765: Add support for non-ascii identifiers to HyperParser.
  
 -- Issue #18775: Add name and block_size attribute to HMAC object. They now
 -  provide the same API elements as non-keyed cryptographic hash functions.
 +- Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav
 +  Heblikar.
  
 -- Issue #17276: MD5 as default digestmod for HMAC is deprecated. The HMAC
 -  module supports digestmod names, e.g. hmac.HMAC('sha1').
 +- Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster.
  
 -- Issue #19449: in csv's writerow, handle non-string keys when generating the
 -  error message that certain keys are not in the 'fieldnames' list.
 +- Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.
  
 -- Issue #13633: Added a new convert_charrefs keyword arg to HTMLParser that,
 -  when True, automatically converts all character references.
 +- Issue #21686: add unittest for HyperParser. Original patch by Saimadhav
 +  Heblikar.
  
 -- Issue #2927: Added the unescape() function to the html module.
 +- Issue #12387: Add missing upper(lower)case versions of default Windows key
 +  bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy.
  
 -- Issue #8402: Added the escape() function to the glob module.
 +- Issue #21695: Closing a Find-in-files output window while the search is
 +  still in progress no longer closes Idle.
  
 -- Issue #17618: Add Base85 and Ascii85 encoding/decoding to the base64 module.
 +- Issue #18910: Add unittest for textView. Patch by Phil Webster.
  
 -- Issue #19634: time.strftime("%y") now raises a ValueError on AIX when given a
 -  year before 1900.
 +- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
  
 -- Fix test.support.bind_port() to not cause an error when Python was compiled
 -  on a system with SO_REUSEPORT defined in the headers but run on a system
 -  with an OS kernel that does not support that reasonably new socket option.
 +- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
  
 -- Fix compilation error under gcc of the ctypes module bundled libffi for arm.
 +- Issue #21477: htest.py - Improve framework, complete set of tests.
 +  Patches by Saimadhav Heblikar
  
 -- Issue #19448: Add private API to SSL module to lookup ASN.1 objects by OID,
 -  NID, short name and long name.
 +- Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin
 +  consolidating and improving human-validated tests of Idle. Change other files
 +  as needed to work with htest.  Running the module as __main__ runs all tests.
  
 -- Issue #19282: dbm.open now supports the context management protocol. (Inital
 -  patch by Claudiu Popa)
 +- Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation.
  
 -- Issue #8311: Added support for writing any bytes-like objects in the aifc,
 -  sunau, and wave modules.
 +- Issue #21284: Paragraph reformat test passes after user changes reformat width.
  
 -- Issue #5202: Added support for unseekable files in the wave module.
 +- Issue #17654: Ensure IDLE menus are customized properly on OS X for
 +  non-framework builds and for all variants of Tk.
  
 -- Issue #19544 and Issue #1180: Restore global option to ignore
 -  ~/.pydistutils.cfg in Distutils, accidentally removed in backout of
 -  distutils2 changes.
 +- Issue #23180: Rename IDLE "Windows" menu item to "Window".
 +  Patch by Al Sweigart.
  
 -- Issue #19523: Closed FileHandler leak which occurred when delay was set.
 +Build
 +-----
  
 -- Issue #19544 and Issue #6516: Restore support for --user and --group
 -  parameters to sdist command accidentally rolled back as part of the
 -  distutils2 rollback.
 +- Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure
 +  script.
  
 -- Issue #13674: Prevented time.strftime from crashing on Windows when given
 -  a year before 1900 and a format of %y.
 +- Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
 +  SSL 3.
  
 -- Issue #19406: implementation of the ensurepip module (part of PEP 453).
 -  Patch by Donald Stufft and Nick Coghlan.
 +- Issue #22592: Drop support of the Borland C compiler to build Python. The
 +  distutils module still supports it to build extensions.
  
 -- Issue #19544 and Issue #6286: Restore use of urllib over http allowing use
 -  of http_proxy for Distutils upload command, a feature accidentally lost
 -  in the rollback of distutils2.
 +- Issue #22591: Drop support of MS-DOS, especially of the DJGPP compiler
 +  (MS-DOS port of GCC).
  
 -- Issue #19544 and Issue #7457: Restore the read_pkg_file method to
 -  distutils.dist.DistributionMetadata accidentally removed in the undo of
 -  distutils2.
 +- Issue #16537: Check whether self.extensions is empty in setup.py. Patch by
 +  Jonathan Hosmer.
  
 -- Issue #16685: Added support for any bytes-like objects in the audioop module.
 -  Removed support for strings.
 +- Issue #22359: Remove incorrect uses of recursive make.  Patch by Jonas
 +  Wagner.
  
 -- Issue #7171: Add Windows implementation of ``inet_ntop`` and ``inet_pton``
 -  to socket module. Patch by Atsuo Ishimoto.
 +- Issue #21958: Define HAVE_ROUND when building with Visual Studio 2013 and
 +  above.  Patch by Zachary Turner.
  
 -- Issue #19261: Added support for writing 24-bit samples in the sunau module.
 +- Issue #18093: the programs that embed the CPython runtime are now in a
 +  separate "Programs" directory, rather than being kept in the Modules
 +  directory.
  
 -- Issue #1097797: Added CP273 encoding, used on IBM mainframes in
 -  Germany and Austria.  Mapping provided by Michael Bierenfeld.
 +- Issue #15759: "make suspicious", "make linkcheck" and "make doctest" in Doc/
 +  now display special message when and only when there are failures.
  
 -- Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms.
 +- Issue #21141: The Windows build process no longer attempts to find Perl,
 +  instead relying on OpenSSL source being configured and ready to build.  The
 +  ``PCbuild\build_ssl.py`` script has been re-written and re-named to
 +  ``PCbuild\prepare_ssl.py``, and takes care of configuring OpenSSL source
 +  for both 32 and 64 bit platforms.  OpenSSL sources obtained from
 +  svn.python.org will always be pre-configured and ready to build.
  
 -- Issue #19378: Fixed a number of cases in the dis module where the new
 -  "file" parameter was not being honoured correctly
 +- Issue #21037: Add a build option to enable AddressSanitizer support.
  
 -- Issue #19378: Removed the "dis.Bytecode.show_info" method
 +- Issue #19962: The Windows build process now creates "python.bat" in the
 +  root of the source tree, which passes all arguments through to the most
 +  recently built interpreter.
  
 -- Issue #19378: Renamed the "dis.Bytecode.display_code" method to
 -  "dis.Bytecode.dis" and converted it to returning a string rather than
 -  printing output.
 +- Issue #21285: Refactor and fix curses configure check to always search
 +  in a ncursesw directory.
  
 -- Issue #19378: the "line_offset" parameter in the new "dis.get_instructions"
 -  API has been renamed to "first_line" (and the default value and usage
 -  changed accordingly). This should reduce confusion with the more common use
 -  of "offset" in the dis docs to refer to bytecode offsets.
 -
 -- Issue #18678: Corrected spwd struct member names in spwd module:
 -  sp_nam->sp_namp, and sp_pwd->sp_pwdp.  The old names are kept as extra
 -  structseq members, for backward compatibility.
 -
 -- Issue #6157: Fixed tkinter.Text.debug().  tkinter.Text.bbox() now raises
 -  TypeError instead of TclError on wrong number of arguments.  Original patch
 -  by Guilherme Polo.
 -
 -- Issue #10197: Rework subprocess.get[status]output to use subprocess
 -  functionality and thus to work on Windows. Patch by Nick Coghlan
 +- Issue #15234: For BerkelyDB and Sqlite, only add the found library and
 +  include directories if they aren't already being searched. This avoids
 +  an explicit runtime library dependency.
  
 -- Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of
 -  integers instead of a string.  Based on patch by Guilherme Polo.
 +- Issue #17861: Tools/scripts/generate_opcode_h.py automatically regenerates
 +  Include/opcode.h from Lib/opcode.py if the later gets any change.
  
 -- Issue #19403: contextlib.redirect_stdout is now reentrant
 +- Issue #20644: OS X installer build support for documentation build changes
 +  in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.
  
 -- Issue #19286: Directories in ``package_data`` are no longer added to
 -  the filelist, preventing failure outlined in the ticket.
 +- Issue #20022: Eliminate use of deprecated bundlebuilder in OS X builds.
  
 -- Issue #19480: HTMLParser now accepts all valid start-tag names as defined
 -  by the HTML5 standard.
 +- Issue #15968: Incorporated Tcl, Tk, and Tix builds into the Windows build
 +  solution.
  
 -- Issue #15114: The html.parser module now raises a DeprecationWarning when the
 -  strict argument of HTMLParser or the HTMLParser.error method are used.
 +- Issue #17095: Fix Modules/Setup *shared* support.
  
 -- Issue #19410: Undo the special-casing removal of '' for
 -  importlib.machinery.FileFinder.
 +- Issue #21811: Anticipated fixes to support OS X versions > 10.9.
  
 -- Issue #19424: Fix the warnings module to accept filename containing surrogate
 -  characters.
 +- Issue #21166: Prevent possible segfaults and other random failures of
 +  python --generate-posix-vars in pybuilddir.txt build target.
  
 -- Issue #19435: Fix directory traversal attack on CGIHttpRequestHandler.
 +- Issue #18096: Fix library order returned by python-config.
  
 -- Issue #19227: Remove pthread_atfork() handler. The handler was added to
 -  solve #18747 but has caused issues.
 +- Issue #17219: Add library build dir for Python extension cross-builds.
  
 -- Issue #19420: Fix reference leak in module initalization code of
 -  _hashopenssl.c
 +- Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015),
 +  which will be used for the official release.
  
 -- Issue #19329: Optimized compiling charsets in regular expressions.
 +- Issue #21236: Build _msi.pyd with cabinet.lib instead of fci.lib
  
 -- Issue #19227: Try to fix deadlocks caused by re-seeding then OpenSSL
 -  pseudo-random number generator on fork().
 +- Issue #17128: Use private version of OpenSSL for OS X 10.5+ installer.
  
 -- Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more than
 -  100 headers are read.  Adapted from patch by Jyrki Pulliainen.
 +C API
 +-----
  
 -- Issue #16040: CVE-2013-1752: nntplib: Limit maximum line lengths to 2048 to
 -  prevent readline() calls from consuming too much memory.  Patch by Jyrki
 -  Pulliainen.
 +- Issue #14203: Remove obsolete support for view==NULL in PyBuffer_FillInfo(),
 +  bytearray_getbuffer(), bytesiobuf_getbuffer() and array_buffer_getbuf().
 +  All functions now raise BufferError in that case.
  
 -- Issue #16041: CVE-2013-1752: poplib: Limit maximum line lengths to 2048 to
 -  prevent readline() calls from consuming too much memory.  Patch by Jyrki
 -  Pulliainen.
 +- Issue #22445: PyBuffer_IsContiguous() now implements precise contiguity
 +  tests, compatible with NumPy's NPY_RELAXED_STRIDES_CHECKING compilation
 +  flag.  Previously the function reported false negatives for corner cases.
  
 -- Issue #17997: Change behavior of ``ssl.match_hostname()`` to follow RFC 6125,
 -  for security reasons.  It now doesn't match multiple wildcards nor wildcards
 -  inside IDN fragments.
 +- Issue #22079: PyType_Ready() now checks that statically allocated type has
 +  no dynamically allocated bases.
  
 -- Issue #16039: CVE-2013-1752: Change use of readline in imaplib module to limit
 -  line length.  Patch by Emil Lind.
 +- Issue #22453: Removed non-documented macro PyObject_REPR().
  
 -- Issue #19330: the unnecessary wrapper functions have been removed from the
 -  implementations of the new contextlib.redirect_stdout and
 -  contextlib.suppress context managers, which also ensures they provide
 -  reasonable help() output on instances
 +- Issue #18395: Rename ``_Py_char2wchar()`` to :c:func:`Py_DecodeLocale`,
 +  rename ``_Py_wchar2char()`` to :c:func:`Py_EncodeLocale`, and document
 +  these functions.
  
 -- Issue #19393: Fix symtable.symtable function to not be confused when there are
 -  functions or classes named "top".
 +- Issue #21233: Add new C functions: PyMem_RawCalloc(), PyMem_Calloc(),
 +  PyObject_Calloc(), _PyObject_GC_Calloc(). bytes(int) is now using
 +  ``calloc()`` instead of ``malloc()`` for large objects which is faster and
 +  use less memory.
  
 -- Issue #18685: Restore re performance to pre-PEP 393 levels.
 +- Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
 +  match what importlib does; this affects _frozen_importlib as well as any
 +  module loaded using imp.init_frozen().
  
 -- Issue #19339: telnetlib module is now using time.monotonic() when available
 -  to compute timeout.
 +Documentation
 +-------------
  
 -- Issue #19399: fix sporadic test_subprocess failure.
 +- Issue #19548: Update the codecs module documentation to better cover the
 +  distinction between text encodings and other codecs, together with other
 +  clarifications. Patch by Martin Panter.
  
 -- Issue #13234: Fix os.listdir to work with extended paths on Windows.
 -  Patch by Santoso Wijaya.
 +- Issue #22394: Doc/Makefile now supports ``make venv PYTHON=../python`` to
 +  create a venv for generating the documentation, e.g.,
 +  ``make html PYTHON=venv/bin/python3``.
  
 -- Issue #19375: The site module adding a "site-python" directory to sys.path,
 -  if it exists, is now deprecated.
 +- Issue #21514: The documentation of the json module now refers to new JSON RFC
 +  7159 instead of obsoleted RFC 4627.
  
 -- Issue #19379: Lazily import linecache in the warnings module, to make
 -  startup with warnings faster until a warning gets printed.
 +- Issue #21777: The binary sequence methods on bytes and bytearray are now
 +  documented explicitly, rather than assuming users will be able to derive
 +  the expected behaviour from the behaviour of the corresponding str methods.
  
 -- Issue #19288: Fixed the "in" operator of dbm.gnu databases for string
 -  argument.  Original patch by Arfrever Frehtes Taifersar Arahesis.
 +- Issue #6916: undocument deprecated asynchat.fifo class.
  
 -- Issue #19287: Fixed the "in" operator of dbm.ndbm databases for string
 -  argument.  Original patch by Arfrever Frehtes Taifersar Arahesis.
 +- Issue #17386: Expanded functionality of the ``Doc/make.bat`` script to make
 +  it much more comparable to ``Doc/Makefile``.
  
 -- Issue #19327: Fixed the working of regular expressions with too big charset.
 +- Issue #21312: Update the thread_foobar.h template file to include newer
 +  threading APIs.  Patch by Jack McCracken.
  
 -- Issue #17400: New 'is_global' attribute for ipaddress to tell if an address
 -  is allocated by IANA for global or private networks.
 +- Issue #21043: Remove the recommendation for specific CA organizations and to
 +  mention the ability to load the OS certificates.
  
 -- Issue #19350: Increasing the test coverage of macurl2path. Patch by Colin
 -  Williams.
 +- Issue #20765: Add missing documentation for PurePath.with_name() and
 +  PurePath.with_suffix().
  
 -- Issue #19365: Optimized the parsing of long replacement string in re.sub*()
 -  functions.
 +- Issue #19407: New package installation and distribution guides based on
 +  the Python Packaging Authority tools. Existing guides have been retained
 +  as legacy links from the distutils docs, as they still contain some
 +  required reference material for tool developers that isn't recorded
 +  anywhere else.
  
 -- Issue #19352: Fix unittest discovery when a module can be reached
 -  through several paths (e.g. under Debian/Ubuntu with virtualenv).
 +- Issue #19697: Document cases where __main__.__spec__ is None.
  
 -- Issue #15207: Fix mimetypes to read from correct part of Windows registry
 -  Original patch by Dave Chambers
 +Tests
 +-----
  
 -- Issue #16595: Add prlimit() to resource module.
 +- Issue #18982: Add tests for CLI of the calendar module.
  
 -- Issue #19324: Expose Linux-specific constants in resource module.
 +- Issue #19548: Added some additional checks to test_codecs to ensure that
 +  statements in the updated documentation remain accurate. Patch by Martin
 +  Panter.
  
 -- Load SSL's error strings in hashlib.
 +- Issue #22838: All test_re tests now work with unittest test discovery.
  
 -- Issue #18527: Upgrade internal copy of zlib to 1.2.8.
 +- Issue #22173: Update lib2to3 tests to use unittest test discovery.
  
 -- Issue #19274: Add a filterfunc parameter to PyZipFile.writepy.
 +- Issue #16000: Convert test_curses to use unittest.
  
 -- Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
 -  Patch by Martin Matusiak.
 +- Issue #21456: Skip two tests in test_urllib2net.py if _ssl module not
 +  present. Patch by Remi Pointel.
  
 -- Issue #19413: Restore pre-3.3 reload() semantics of re-finding modules.
 +- Issue #20746: Fix test_pdb to run in refleak mode (-R).  Patch by Xavier
 +  de Gaye.
  
 -- Issue #18958: Improve error message for json.load(s) while passing a string
 -  that starts with a UTF-8 BOM.
 +- Issue #22060: test_ctypes has been somewhat cleaned up and simplified; it
 +  now uses unittest test discovery to find its tests.
  
 -- Issue #19307: Improve error message for json.load(s) while passing objects
 -  of the wrong type.
 +- Issue #22104: regrtest.py no longer holds a reference to the suite of tests
 +  loaded from test modules that don't define test_main().
  
 -- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
 -  limiting the call to readline().  Original patch by Michał
 -  Jastrzębski and Giampaolo Rodola.
 +- Issue #22111: Assorted cleanups in test_imaplib.  Patch by Milan Oberkirch.
  
 -- Issue #17087: Improved the repr for regular expression match objects.
 +- Issue #22002: Added ``load_package_tests`` function to test.support and used
 +  it to implement/augment test discovery in test_asyncio, test_email,
 +  test_importlib, test_json, and test_tools.
  
 -Tests
 ------
 +- Issue #21976: Fix test_ssl to accept LibreSSL version strings.  Thanks
 +  to William Orr.
  
 -- Issue #19664: test_userdict's repr test no longer depends on the order
 -  of dict elements.
 +- Issue #21918: Converted test_tools from a module to a package containing
 +  separate test files for each tested script.
  
 -- Issue #19440: Clean up test_capi by removing an unnecessary __future__
 -  import, converting from test_main to unittest.main, and running the
 -  _testcapi module tests as subTests of a unittest TestCase method.
 +- Issue #9554: Use modern unittest features in test_argparse. Initial patch by
 +  Denver Coneybeare and Radu Voicilas.
  
 -- Issue #19378: the main dis module tests are now run with both stdout
 -  redirection *and* passing an explicit file parameter
 +- Issue #20155: Changed HTTP method names in failing tests in test_httpservers
 +  so that packet filtering software (specifically Windows Base Filtering Engine)
 +  does not interfere with the transaction semantics expected by the tests.
  
 -- Issue #19378: removed the not-actually-helpful assertInstructionMatches
 -  and assertBytecodeExactlyMatches helpers from bytecode_helper
 +- Issue #19493: Refactored the ctypes test package to skip tests explicitly
 +  rather than silently.
  
 -- Issue #18702: All skipped tests now reported as skipped.
 +- Issue #18492: All resources are now allowed when tests are not run by
 +  regrtest.py.
  
 -- Issue #19439: interpreter embedding tests are now executed on Windows
 -  (Patch by Zachary Ware)
 +- Issue #21634: Fix pystone micro-benchmark: use floor division instead of true
 +  division to benchmark integers instead of floating point numbers. Set pystone
 +  version to 1.2. Patch written by Lennart Regebro.
  
 -- Issue #19085: Added basic tests for all tkinter widget options.
 +- Issue #21605: Added tests for Tkinter images.
  
 -- Issue #19384: Fix test_py_compile for root user, patch by Claudiu Popa.
 +- Issue #21493: Added test for ntpath.expanduser().  Original patch by
 +  Claudiu Popa.
  
 -Documentation
 --------------
 +- Issue #19925: Added tests for the spwd module. Original patch by Vajrasky Kok.
  
 -- Issue #18326: Clarify that list.sort's arguments are keyword-only.  Also,
 -  attempt to reduce confusion in the glossary by not saying there are
 -  different "types" of arguments and parameters.
 +- Issue #21522: Added Tkinter tests for Listbox.itemconfigure(),
 +  PanedWindow.paneconfigure(), and Menu.entryconfigure().
  
 -Build
 ------
 +- Issue #17756: Fix test_code test when run from the installed location.
  
 -- Issue #19358: "make clinic" now runs the Argument Clinic preprocessor
 -  over all CPython source files.
 +- Issue #17752: Fix distutils tests when run from the installed location.
  
 -- Update SQLite to 3.8.1, xz to 5.0.5, and Tcl/Tk to 8.6.1 on Windows.
 +- Issue #18604: Consolidated checks for GUI availability.  All platforms now
 +  at least check whether Tk can be instantiated when the GUI resource is
 +  requested.
  
 -- Issue #16632: Enable DEP and ASLR on Windows.
 +- Issue #21275: Fix a socket test on KFreeBSD.
  
 -- Issue #17791: Drop PREFIX and EXEC_PREFIX definitions from PC/pyconfig.h
 +- Issue #21223: Pass test_site/test_startup_imports when some of the extensions
 +  are built as builtins.
  
 -- Add workaround for VS 2010 nmake clean issue. VS 2010 doesn't set up PATH
 -  for nmake.exe correctly.
 +- Issue #20635: Added tests for Tk geometry managers.
  
 -- Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
 +- Add test case for freeze.
  
 -- Issue #19520: Fix compiler warning in the _sha3 module on 32bit Windows.
 +- Issue #20743: Fix a reference leak in test_tcl.
  
 -- Issue #19356: Avoid using a C variabled named "_self", it's a reserved
 -  word in some C compilers.
 +- Issue #21097: Move test_namespace_pkgs into test_importlib.
  
 -- Issue #15792: Correct build options on Win64. Patch by Jeremy Kloth.
 +- Issue #21503: Use test_both() consistently in test_importlib.
  
 -- Issue #19373: Apply upstream change to Tk 8.5.15 fixing OS X 10.9
 -  screen refresh problem for OS X installer build.
 +- Issue #20939: Avoid various network test failures due to new
 +  redirect of http://www.python.org/ to https://www.python.org:
 +  use http://www.example.com instead.
  
 -- Issue #19649: On OS X, the same set of file names are now installed
 -  in bin directories for all configurations: non-framework vs framework,
 -  and single arch vs universal builds.  pythonx.y-32 is now always
 -  installed for 64-bit/32-bit universal builds.  The obsolete and
 -  undocumented pythonw* symlinks are no longer installed anywhere.
 +- Issue #20668: asyncio tests no longer rely on tests.txt file.
 +  (Patch by Vajrasky Kok)
  
 -- Issue #19553: PEP 453 - "make install" and "make altinstall" now install or
 -  upgrade pip by default, using the bundled pip provided by the new ensurepip
 -  module.  A new configure option, --with-ensurepip[=upgrade|install|no], is
 -  available to override the default ensurepip "--upgrade" option.  The option
 -  can also be set with "make [alt]install ENSUREPIP=[upgrade|install\no]".
 +- Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
 +  copy of libz exists in $HOME/lib or /usr/local/lib.
  
 -- Issue #19551: PEP 453 - the OS X installer now installs pip by default.
 +- Issue #22770: Prevent some Tk segfaults on OS X when running gui tests.
  
 -- Update third-party libraries for OS X installers: xz 5.0.3 -> 5.0.5,
 -  SQLite 3.7.13 -> 3.8.1
 +- Issue #23211: Workaround test_logging failure on some OS X 10.6 systems.
  
 -- Issue #15663: Revert OS X installer built-in Tcl/Tk support for 3.4.0b1.
 -  Some third-party projects, such as Matplotlib and PIL/Pillow,
 -  depended on being able to build with Tcl and Tk frameworks in
 -  /Library/Frameworks.
 +- Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
 +  values (like 0.9.8zc).
  
  Tools/Demos
  -----------
diff --cc Modules/_ssl.c
Simple merge
Simple merge
Simple merge