- Issue #2466: posixpath.ismount now correctly recognizes mount points which
the user does not have permission to access.
-- Issue #27773: Correct some memory management errors server_hostname in
- _ssl.wrap_socket().
+- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH
+ for shared libraries.
-- Issue #26750: unittest.mock.create_autospec() now works properly for
- subclasses of property() and other data descriptors.
+- Issue #27573: exit message for code.interact is now configurable.
-- In the curses module, raise an error if window.getstr() or window.instr() is
- passed a negative value.
+- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
+ Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
-- Issue #27783: Fix possible usage of uninitialized memory in
- operator.methodcaller.
+- Issue #6766: Distributed reference counting added to multiprocessing
+ to support nesting of shared values / proxy objects.
-- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
+- Issue #21201: Improves readability of multiprocessing error message. Thanks
+ to Wojciech Walczak for patch.
-- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
+IDLE
+----
-- Issue #27758: Fix possible integer overflow in the _csv module for large
- record lengths.
+- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
-- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
- HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
- that the script is in CGI mode.
+- Issue #27891: Consistently group and sort imports within idlelib modules.
-- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
+- Issue #17642: add larger font sizes for classroom projection.
-- Issue #27130: In the "zlib" module, fix handling of large buffers
- (typically 4 GiB) when compressing and decompressing. Previously, inputs
- were limited to 4 GiB, and compression and decompression operations did not
- properly handle results of 4 GiB.
+- Add version to title of IDLE help window.
-- Issue #27533: Release GIL in nt._isdir
+- Issue #25564: In section on IDLE -- console differences, mention that
+ using exec means that __builtins__ is defined for each statement.
-- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
- Original patch by Alexandre Vassalotti.
+- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets
+ from being selected when no custom theme was defined.
-- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
+C API
+-----
-- Issue #26844: Fix error message for imp.find_module() to refer to 'path'
- instead of 'name'. Patch by Lev Maximov.
+- Issue #26900: Excluded underscored names and other private API from limited API.
-- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
- an error about unclean EOF.
+- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter() &
+ PyUnicode_FSDecoder().
-- Issue #27466: Change time format returned by http.cookie.time2netscape,
- confirming the netscape cookie format and making it consistent with
- documentation.
+Tests
+-----
-- Issue #26664: Fix activate.fish by removing mis-use of ``$``.
+- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo.
-- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong
- mode no longer break tracing, trace_vinfo() now always returns a list of
- pairs of strings, tracing in the "u" mode now works.
+- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a
+ poor libm implementation of tan.
-- Fix a scoping issue in importlib.util.LazyLoader which triggered an
- UnboundLocalError when lazy-loading a module that was already put into
- sys.modules.
+- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by
+ Jeff Allen.
-- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct().
+- Issue #27787: Call gc.collect() before checking each test for "dangling
+ threads", since the dangling threads are weak references.
-- Issue #26754: Some functions (compile() etc) accepted a filename argument
- encoded as an iterable of integers. Now only strings and byte-like objects
- are accepted.
+Build
+-----
-- Issue #27048: Prevents distutils failing on Windows when environment
- variables contain non-ASCII characters
+- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach)
-- Issue #27330: Fixed possible leaks in the ctypes module.
+- Issue #27705: Update message in validate_ucrtbase.py
-- Issue #27238: Got rid of bare excepts in the turtle module. Original patch
- by Jelle Zijlstra.
+- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on
+ non-OSX UNIX platforms.
-- Issue #27122: When an exception is raised within the context being managed
- by a contextlib.ExitStack() and one of the exit stack generators
- catches and raises it in a chain, do not re-raise the original exception
- when exiting, let the new chained one through. This avoids the PEP 479
- bug described in issue25782.
+- Issue #27983: Cause lack of llvm-profdata tool when using clang as
+ required for PGO linking to be a configure time error rather than
+ make time when --with-optimizations is enabled. Also improve our
+ ability to find the llvm-profdata tool on MacOS and some Linuxes.
-- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on
- Linux. Truncate size to INT_MAX and loop until we collected enough random
- bytes, instead of casting a directly Py_ssize_t to int.
+- Issue #21590: Support for DTrace and SystemTap probes.
-- Issue #26386: Fixed ttk.TreeView selection operations with item id's
- containing spaces.
+- Issue #26307: The profile-opt build now applys PGO to the built-in modules.
-- [Security] Issue #22636: Avoid shell injection problems with
- ctypes.util.find_library().
+- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build
+ support when available.
-- Issue #16182: Fix various functions in the "readline" module to use the
- locale encoding, and fix get_begidx() and get_endidx() to return code point
- indexes.
+- Issue #27917: Set platform triplets for Android builds.
-- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
+- Issue #25825: Update references to the $(LIBPL) installation path on AIX.
+ This path was changed in 3.2a4.
-- Issue #27392: Add loop.connect_accepted_socket().
- Patch by Jim Fulton.
+- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2.
-- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
- Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
+- Issue #21122: Fix LTO builds on OS X.
-- Issue #21201: Improves readability of multiprocessing error message. Thanks
- to Wojciech Walczak for patch.
++Tools/Demos
++-----------
+
-IDLE
-----
++- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
++ current "re" module, avoid invalid Python backslash escapes, and fix a bug
++ parsing escaped C quote signs.
+
-- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
+Windows
+-------
-- Add version to title of IDLE help window.
+- Issue #25144: Ensures TargetDir is set before continuing with custom
+ install.
-- Issue #25564: In section on IDLE -- console differences, mention that
- using exec means that __builtins__ is defined for each statement.
+- Issue #1602: Windows console doesn't input or print Unicode (PEP 528)
-- Issue #27714: text_textview and test_autocomplete now pass when re-run
- in the same process. This occurs when test_idle fails when run with the
- -w option but without -jn. Fix warning from test_config.
+- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529)
-- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
- Users must include the same imports required to run directly in Python.
+- Issue #27731: Opt-out of MAX_PATH on Windows 10
-- Issue #27452: add line counter and crc to IDLE configHandler test dump.
+- Issue #6135: Adds encoding and errors parameters to subprocess.
-- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
+- Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to
+ codec lookup.
-- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
- Previously, when IDLE was started from a console or by import, a cascade
- of warnings was emitted. Patch by Serhiy Storchaka.
+- Issue #27982: The functions of the winsound module now accept keyword
+ arguments.
-C API
------
+- Issue #20366: Build full text search support into SQLite on Windows.
-- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
- an iterable of integers. Now only strings and bytes-like objects are accepted.
+- Issue #27756: Adds new icons for Python files and processes on Windows.
+ Designs by Cherry Wang.
-Tests
------
+- Issue #27883: Update sqlite to 3.14.1.0 on Windows.
-- Issue #27787: Call gc.collect() before checking each test for "dangling
- threads", since the dangling threads are weak references.
-- Issue #27369: In test_pyexpat, avoid testing an error message detail that
- changed in Expat 2.2.0.
+What's New in Python 3.6.0 alpha 4
+==================================
-Tools/Demos
------------
+*Release date: 2016-08-15*
-- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
- current "re" module, avoid invalid Python backslash escapes, and fix a bug
- parsing escaped C quote signs.
+Core and Builtins
+-----------------
-- Issue #27332: Fixed the type of the first argument of module-level functions
- generated by Argument Clinic. Patch by Petr Viktorin.
+- Issue #27704: Optimized creating bytes and bytearray from byte-like objects
+ and iterables. Speed up to 3 times for short objects. Original patch by
+ Naoki Inada.
-- Issue #27418: Fixed Tools/importbench/importbench.py.
+- Issue #26823: Large sections of repeated lines in tracebacks are now
+ abbreviated as "[Previous line repeated {count} more times]" by the builtin
+ traceback rendering. Patch by Emanuel Barry.
-Windows
--------
+- Issue #27574: Decreased an overhead of parsing keyword arguments in functions
+ implemented with using Argument Clinic.
-- Issue #25144: Ensures TargetDir is set before continuing with custom
- install.
+- Issue #22557: Now importing already imported modules is up to 2.5 times
+ faster.
-- Issue #27469: Adds a shell extension to the launcher so that drag and drop
- works correctly.
+- Issue #17596: Include <wincrypt.h> to help with Min GW building.
-- Issue #27309: Enabled proper Windows styles in python[w].exe manifest.
+- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER
+ structure to avoid conflicting with the definition from Min GW.
-Build
------
+- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by
+ Xiang Zhang.
-- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach)
+- Issue #27581: Don't rely on wrapping for overflow check in
+ PySequence_Tuple(). Patch by Xiang Zhang.
-- Issue #27705: Update message in validate_ucrtbase.py
+- Issue #1621: Avoid signed integer overflow in list and tuple operations.
+ Patch by Xiang Zhang.
-- Issue #27983: Cause lack of llvm-profdata tool when using clang as
- required for PGO linking to be a configure time error rather than
- make time when --with-optimizations is enabled. Also improve our
- ability to find the llvm-profdata tool on MacOS and some Linuxes.
+- Issue #27419: Standard __import__() no longer look up "__import__" in globals
+ or builtins for importing submodules or "from import". Fixed a crash if
+ raise a warning about unabling to resolve package from __spec__ or
+ __package__.
-- Issue #26307: The profile-opt build now applys PGO to the built-in modules.
+- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows.
-- Issue #26359: Add the --with-optimizations configure flag.
+- Issue #27514: Make having too many statically nested blocks a SyntaxError
+ instead of SystemError.
-- Issue #27713: Suppress spurious build warnings when updating importlib's
- bootstrap files. Patch by Xiang Zhang
+- Issue #27366: Implemented PEP 487 (Simpler customization of class creation).
+ Upon subclassing, the __init_subclass__ classmethod is called on the base
+ class. Descriptors are initialized with __set_name__ after class creation.
-- Issue #25825: Correct the references to Modules/python.exp and ld_so_aix,
- which are required on AIX. This updates references to an installation path
- that was changed in 3.2a4, and undoes changed references to the build tree
- that were made in 3.5.0a1.
+Library
+-------
-- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
- Chi Hsuan Yen.
+- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path
+ modules. Includes code from Jelle Zijlstra.
-- Issue #27641: The configure script now inserts comments into the makefile
- to prevent the pgen and _freeze_importlib executables from being cross-
- compiled.
+- Issue #27598: Add Collections to collections.abc.
+ Patch by Ivan Levkivskyi, docs by Neil Girdhar.
-- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
- used for file generation during the build.
+- Issue #25958: Support "anti-registration" of special methods from
+ various ABCs, like __hash__, __iter__ or __len__. All these (and
+ several more) can be set to None in an implementation class and the
+ behavior will be as if the method is not defined at all.
+ (Previously, this mechanism existed only for __hash__, to make
+ mutable classes unhashable.) Code contributed by Andrew Barnert and
+ Ivan Levkivskyi.
-- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X.
- Also update FreedBSD version checks for the original ctype UTF-8 workaround.
+- Issue #16764: Support keyword arguments to zlib.decompress(). Patch by
+ Xiang Zhang.
+- Issue #27736: Prevent segfault after interpreter re-initialization due
+ to ref count problem introduced in code for Issue #27038 in 3.6.0a3.
+ Patch by Xiang Zhang.
-What's New in Python 3.5.2?
-===========================
+- Issue #25628: The *verbose* and *rename* parameters for
+ collections.namedtuple are now keyword-only.
-Release date: 2016-06-26
+- Issue #12345: Add mathematical constant tau to math and cmath. See also
+ PEP 628.
+
+- Issue #26823: traceback.StackSummary.format now abbreviates large sections of
+ repeated lines as "[Previous line repeated {count} more times]" (this change
+ then further affects other traceback display operations in the module). Patch
+ by Emanuel Barry.
+
+- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor()
+ the ability to specify a thread name prefix.
+
+- Issue #27181: Add geometric_mean and harmonic_mean to statistics module.
+
+- Issue #27573: code.interact now prints an message when exiting.
+
+- Issue #6422: Add autorange method to timeit.Timer objects.
+
+- Issue #27773: Correct some memory management errors server_hostname in
+ _ssl.wrap_socket().
+
+- Issue #26750: unittest.mock.create_autospec() now works properly for
+ subclasses of property() and other data descriptors. Removes the never
+ publicly used, never documented unittest.mock.DescriptorTypes tuple.
+
+- Issue #26754: Undocumented support of general bytes-like objects
+ as path in compile() and similar functions is now deprecated.
+
+- Issue #26800: Undocumented support of general bytes-like objects
+ as paths in os functions is now deprecated.
+
+- Issue #26981: Add _order_ compatibility shim to enum.Enum for
+ Python 2/3 code bases.
+
+- Issue #27661: Added tzinfo keyword argument to datetime.combine.
+
+- In the curses module, raise an error if window.getstr() or window.instr() is
+ passed a negative value.
+
+- Issue #27783: Fix possible usage of uninitialized memory in
+ operator.methodcaller.
+
+- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
+
+- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
+
+- Issue #27758: Fix possible integer overflow in the _csv module for large
+ record lengths.
+
+- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
+ HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
+ that the script is in CGI mode.
+
+- Issue #7063: Remove dead code from the "array" module's slice handling.
+ Patch by Chuck.
+
+- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
+
+- Issue #27130: In the "zlib" module, fix handling of large buffers
+ (typically 4 GiB) when compressing and decompressing. Previously, inputs
+ were limited to 4 GiB, and compression and decompression operations did not
+ properly handle results of 4 GiB.
+
+- Issue #24773: Implemented PEP 495 (Local Time Disambiguation).
+
+- Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module.
+
+- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select
+ module.
+
+- Issue #1621: Avoid signed int negation overflow in the "audioop" module.
+
+- Issue #27533: Release GIL in nt._isdir
+
+- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
+ Original patch by Alexandre Vassalotti.
+
+- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
+
+- Issue #27512: Fix a segfault when os.fspath() called an __fspath__() method
+ that raised an exception. Patch by Xiang Zhang.
+
+IDLE
+----
+
+- Issue #27714: text_textview and test_autocomplete now pass when re-run
+ in the same process. This occurs when test_idle fails when run with the
+ -w option but without -jn. Fix warning from test_config.
+
+- Issue #27621: Put query response validation error messages in the query
+ box itself instead of in a separate massagebox. Redo tests to match.
+ Add Mac OSX refinements. Original patch by Mark Roseman.
+
+- Issue #27620: Escape key now closes Query box as cancelled.
+
+- Issue #27609: IDLE: tab after initial whitespace should tab, not
+ autocomplete. This fixes problem with writing docstrings at least
+ twice indented.
+
+- Issue #27609: Explicitly return None when there are also non-None
+ returns. In a few cases, reverse a condition and eliminate a return.
+
+- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
+ Users must include the same imports required to run directly in Python.
+
+- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
+ Make the default key set depend on the platform.
+ Add tests for the changes to the config module.
+
+- Issue #27452: add line counter and crc to IDLE configHandler test dump.
+
+Tests
+-----
+
+- Issue #25805: Skip a test in test_pkgutil as needed that doesn't work when
+ ``__name__ == __main__``. Patch by SilentGhost.
+
+- Issue #27472: Add test.support.unix_shell as the path to the default shell.
+
+- Issue #27369: In test_pyexpat, avoid testing an error message detail that
+ changed in Expat 2.2.0.
+
+- Issue #27594: Prevent assertion error when running test_ast with coverage
+ enabled: ensure code object has a valid first line number.
+ Patch suggested by Ivan Levkivskyi.
+
+Windows
+-------
+
+- Issue #27647: Update bundled Tcl/Tk to 8.6.6.
+
+- Issue #27610: Adds PEP 514 metadata to Windows installer
+
+- Issue #27469: Adds a shell extension to the launcher so that drag and drop
+ works correctly.
+
+- Issue #27309: Enables proper Windows styles in python[w].exe manifest.
+
+Build
+-----
+
+- Issue #27713: Suppress spurious build warnings when updating importlib's
+ bootstrap files. Patch by Xiang Zhang
+
+- Issue #25825: Correct the references to Modules/python.exp, which is
+ required on AIX. The references were accidentally changed in 3.5.0a1.
+
+- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
+ Chi Hsuan Yen.
+
+- Issue #27641: The configure script now inserts comments into the makefile
+ to prevent the pgen and _freeze_importlib executables from being cross-
+ compiled.
+
+- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
+ used for file generation during the build.
+
+- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X.
+ Also update FreedBSD version checks for the original ctype UTF-8 workaround.
+
+What's New in Python 3.6.0 alpha 3
+==================================
+
+*Release date: 2016-07-11*
Core and Builtins
-----------------