From: Terry Jan Reedy Date: Sat, 10 Sep 2016 20:28:01 +0000 (-0400) Subject: IDLE newx items. merge from 3.5 X-Git-Tag: v3.6.0b1~85 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=70360194c768efb0b26d524d5b94d4da963d632a;p=python IDLE newx items. merge from 3.5 --- 70360194c768efb0b26d524d5b94d4da963d632a diff --cc Lib/idlelib/NEWS.txt index 9c739c6507,e64c493eb4..dfc83feb75 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@@ -1,7 -1,14 +1,21 @@@ -What's New in IDLE 3.5.3? -========================= -*Release date: 2017-01-01?* +What's New in IDLE 3.6.0? +=========================== - *Release date: 2016-09-??* ++*Release date: 2016-12-16?* + + - Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. + ++- Issue #27891: Consistently group and sort imports within idlelib modules. ++ ++- Issue #17642: add larger font sizes for classroom projection. ++ + - Add version to title of IDLE help window. + + - Issue #25564: In section on IDLE -- console differences, mention that + using exec means that __builtins__ is defined for each statement. + ++- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets ++ from being selected when no custom theme was defined. + - 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. diff --cc Misc/NEWS index 7d89170741,10a732544d..b70d2ed4a0 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -318,839 -148,230 +318,856 @@@ Librar - 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 #26027: Add support for path-like objects in PyUnicode_FSConverter() & + PyUnicode_FSDecoder(). -- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise - an error about unclean EOF. +Tests +----- -- Issue #27466: Change time format returned by http.cookie.time2netscape, - confirming the netscape cookie format and making it consistent with - documentation. +- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo. -- Issue #26664: Fix activate.fish by removing mis-use of ``$``. +- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a + poor libm implementation of tan. -- 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 #26040: Improve test_math and test_cmath coverage and rigour. Patch by + Jeff Allen. -- 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 #27787: Call gc.collect() before checking each test for "dangling + threads", since the dangling threads are weak references. -- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). +Build +----- -- Issue #26754: Some functions (compile() etc) accepted a filename argument - encoded as an iterable of integers. Now only strings and byte-like objects - are accepted. +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) -- Issue #27048: Prevents distutils failing on Windows when environment - variables contain non-ASCII characters +- Issue #27705: Update message in validate_ucrtbase.py -- Issue #27330: Fixed possible leaks in the ctypes module. +- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on + non-OSX UNIX platforms. -- Issue #27238: Got rid of bare excepts in the turtle module. Original patch - by Jelle Zijlstra. +- 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 #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 #21590: Support for DTrace and SystemTap probes. -- [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 #26307: The profile-opt build now applys PGO to the built-in modules. -- Issue #26386: Fixed ttk.TreeView selection operations with item id's - containing spaces. +- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build + support when available. -- [Security] Issue #22636: Avoid shell injection problems with - ctypes.util.find_library(). +- Issue #27917: Set platform triplets for Android builds. -- 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 #25825: Update references to the $(LIBPL) installation path on AIX. + This path was changed in 3.2a4. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2. -- Issue #27392: Add loop.connect_accepted_socket(). - Patch by Jim Fulton. +- Issue #21122: Fix LTO builds on OS X. -- Issue #27930: Improved behaviour of logging.handlers.QueueListener. - Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch. +Windows +------- -- Issue #21201: Improves readability of multiprocessing error message. Thanks - to Wojciech Walczak for patch. +- Issue #25144: Ensures TargetDir is set before continuing with custom + install. -IDLE ----- +- Issue #1602: Windows console doesn't input or print Unicode (PEP 528) -- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen. +- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529) -- Add version to title of IDLE help window. +- Issue #27731: Opt-out of MAX_PATH on Windows 10 -- Issue #25564: In section on IDLE -- console differences, mention that - using exec means that __builtins__ is defined for each statement. +- Issue #6135: Adds encoding and errors parameters to subprocess. -- 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 #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to + codec lookup. -- 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 #27982: The functions of the winsound module now accept keyword + arguments. -- Issue #27452: add line counter and crc to IDLE configHandler test dump. +- Issue #20366: Build full text search support into SQLite on Windows. -- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. +- Issue #27756: Adds new icons for Python files and processes on Windows. + Designs by Cherry Wang. -- 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 #27883: Update sqlite to 3.14.1.0 on Windows. -C API ------ -- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as - an iterable of integers. Now only strings and bytes-like objects are accepted. +What's New in Python 3.6.0 alpha 4 +================================== -Tests ------ +*Release date: 2016-08-15* -- Issue #27787: Call gc.collect() before checking each test for "dangling - threads", since the dangling threads are weak references. +Core and Builtins +----------------- -- Issue #27369: In test_pyexpat, avoid testing an error message detail that - changed in Expat 2.2.0. +- 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. -Tools/Demos ------------ +- Issue #26823: Large sections of repeated lines in tracebacks are now + abbreviated as "[Previous line repeated {count} more times]" by the builtin + traceback rendering. Patch by Emanuel Barry. -- Issue #27332: Fixed the type of the first argument of module-level functions - generated by Argument Clinic. Patch by Petr Viktorin. +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions + implemented with using Argument Clinic. -- Issue #27418: Fixed Tools/importbench/importbench.py. +- Issue #22557: Now importing already imported modules is up to 2.5 times + faster. -Windows -------- +- Issue #17596: Include to help with Min GW building. -- Issue #25144: Ensures TargetDir is set before continuing with custom - install. +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER + structure to avoid conflicting with the definition from Min GW. -- Issue #27469: Adds a shell extension to the launcher so that drag and drop - works correctly. +- Issue #27507: Add integer overflow check in bytearray.extend(). Patch by + Xiang Zhang. -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest. +- Issue #27581: Don't rely on wrapping for overflow check in + PySequence_Tuple(). Patch by Xiang Zhang. -Build ------ +- Issue #1621: Avoid signed integer overflow in list and tuple operations. + Patch by Xiang Zhang. -- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach) +- 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 #27705: Update message in validate_ucrtbase.py +- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows. -- 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 #27514: Make having too many statically nested blocks a SyntaxError + instead of SystemError. -- Issue #26307: The profile-opt build now applys PGO to the built-in modules. +- 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 #26359: Add the --with-optimizations configure flag. +Library +------- -- Issue #27713: Suppress spurious build warnings when updating importlib's - bootstrap files. Patch by Xiang Zhang +- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path + modules. Includes code from Jelle Zijlstra. -- Issue #25825: Correct the references to Modules/python.exp and ld_so_aix, - which are required on AIX. This updates references to an installation path - that was changed in 3.2a4, and undoes changed references to the build tree - that were made in 3.5.0a1. +- Issue #27598: Add Collections to collections.abc. + Patch by Ivan Levkivskyi, docs by Neil Girdhar. -- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by - Chi Hsuan Yen. +- 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 #27641: The configure script now inserts comments into the makefile - to prevent the pgen and _freeze_importlib executables from being cross- - compiled. +- Issue #16764: Support keyword arguments to zlib.decompress(). Patch by + Xiang Zhang. -- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be - used for file generation during the build. +- Issue #27736: Prevent segfault after interpreter re-initialization due + to ref count problem introduced in code for Issue #27038 in 3.6.0a3. + Patch by Xiang Zhang. -- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X. - Also update FreedBSD version checks for the original ctype UTF-8 workaround. +- Issue #25628: The *verbose* and *rename* parameters for + collections.namedtuple are now keyword-only. +- Issue #12345: Add mathematical constant tau to math and cmath. See also + PEP 628. -What's New in Python 3.5.2? -=========================== +- 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. -Release date: 2016-06-26 +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor() + the ability to specify a thread name prefix. -Core and Builtins ------------------ +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module. -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. +- Issue #27573: code.interact now prints an message when exiting. -Tests ------ +- Issue #6422: Add autorange method to timeit.Timer objects. -- Issue #26867: Ubuntu's openssl OP_NO_SSLv3 is forced on by default; fix test. +- Issue #27773: Correct some memory management errors server_hostname in + _ssl.wrap_socket(). -IDLE ----- +- 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 #27365: Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2. +- 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. -What's New in Python 3.5.2 release candidate 1? -=============================================== +- 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 +----------------- + +- Issue #27473: Fixed possible integer overflow in bytes and bytearray + concatenations. Patch by Xiang Zhang. + +- Issue #23034: The output of a special Python build with defined COUNT_ALLOCS, + SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by default. It can + be re-enabled using the "-X showalloccount" option. It now outputs to stderr + instead of stdout. + +- Issue #27443: __length_hint__() of bytearray iterators no longer return a + negative integer for a resized bytearray. + +- Issue #27007: The fromhex() class methods of bytes and bytearray subclasses + now return an instance of corresponding subclass. + +Library +------- + +- Issue #26844: Fix error message for imp.find_module() to refer to 'path' + instead of 'name'. Patch by Lev Maximov. + +- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise + an error about unclean EOF. + +- Issue #27466: Change time format returned by http.cookie.time2netscape, + confirming the netscape cookie format and making it consistent with + documentation. + +- Issue #21708: Deprecated dbm.dumb behavior that differs from common dbm + behavior: creating a database in 'r' and 'w' modes and modifying a database + in 'r' mode. + +- Issue #26721: Change the socketserver.StreamRequestHandler.wfile attribute + to implement BufferedIOBase. In particular, the write() method no longer + does partial writes. + +- Issue #22115: Added methods trace_add, trace_remove and trace_info in the + tkinter.Variable class. They replace old methods trace_variable, trace, + trace_vdelete and trace_vinfo that use obsolete Tcl commands and might + not work in future versions of Tcl. Fixed old tracing methods: + trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now + always returns a list of pairs of strings, tracing in the "u" mode now works. + +- Issue #26243: Only the level argument to zlib.compress() is keyword argument + now. The first argument is positional-only. + +- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by + Jelle Zijlstra. + +- Issue #27186: Update os.fspath()/PyOS_FSPath() to check the return value of + __fspath__() to be either str or bytes. + +- Issue #18726: All optional parameters of the dump(), dumps(), + load() and loads() functions and JSONEncoder and JSONDecoder class + constructors in the json module are now keyword-only. + +- Issue #27319: Methods selection_set(), selection_add(), selection_remove() + and selection_toggle() of ttk.TreeView now allow passing multiple items as + multiple arguments instead of passing them as a tuple. Deprecated + undocumented ability of calling the selection() method with arguments. + +- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct(). + +- Issue #27294: Numerical state in the repr for Tkinter event objects is now + represented as a combination of known flags. + +- Issue #27177: Match objects in the re module now support index-like objects + as group indices. Based on patches by Jeroen Demeyer and Xiang Zhang. + +- Issue #26754: Some functions (compile() etc) accepted a filename argument + encoded as an iterable of integers. Now only strings and byte-like objects + are accepted. + +- Issue #26536: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by + Daniel Stokes. + +- Issue #27048: Prevents distutils failing on Windows when environment + variables contain non-ASCII characters + +- Issue #27330: Fixed possible leaks in the ctypes module. + +- Issue #27238: Got rid of bare excepts in the turtle module. Original patch + by Jelle Zijlstra. + +- 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. + +- [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 #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement. + Initial patch by Alex LordThorsen. + +- Issue #26386: Fixed ttk.TreeView selection operations with item id's + containing spaces. + +- Issue #8637: Honor a pager set by the env var MANPAGER (in preference to + one set by the env var PAGER). + +- [Security] Issue #22636: Avoid shell injection problems with + ctypes.util.find_library(). + +- 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 #27392: Add loop.connect_accepted_socket(). + Patch by Jim Fulton. + +IDLE +---- + +- Issue #27477: IDLE search dialogs now use ttk widgets. + +- 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: make command line "idle-test> python test_help.py" work. + __file__ is relative when python is started in the file's directory. + +- Issue #27452: add line counter and crc to IDLE configHandler test dump. + +- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets. + Module had subclasses SectionName, ModuleName, and HelpSource, which are + used to get information from users by configdialog and file =>Load Module. + Each subclass has itw own validity checks. Using ModuleName allows users + to edit bad module names instead of starting over. + Add tests and delete the two files combined into the new one. + +- Issue #27372: Test_idle no longer changes the locale. + +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names. + +- 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 #24137: Run IDLE, test_idle, and htest with tkinter default root + disabled. Fix code and tests that fail with this restriction. Fix htests to + not create a second and redundant root and mainloop. + +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import. + +C API +----- + +- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as + an iterable of integers. Now only strings and byte-like objects are accepted. + +Build +----- + +- Issue #27442: Expose the Android API level that python was built against, in + sysconfig.get_config_vars() as 'ANDROID_API_LEVEL'. + +- Issue #27434: The interpreter that runs the cross-build, found in PATH, must + now be of the same feature version (e.g. 3.6) as the source being built. + +- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h. + +- Issue #23968: Rename the platform directory from plat-$(MACHDEP) to + plat-$(PLATFORM_TRIPLET). + Rename the config directory (LIBPL) from config-$(LDVERSION) to + config-$(LDVERSION)-$(PLATFORM_TRIPLET). + Install the platform specifc _sysconfigdata module into the platform + directory and rename it to include the ABIFLAGS. + +- Don't use largefile support for GNU/Hurd. + +Tools/Demos +----------- + +- Issue #27332: Fixed the type of the first argument of module-level functions + generated by Argument Clinic. Patch by Petr Viktorin. + +- Issue #27418: Fixed Tools/importbench/importbench.py. + +Documentation +------------- + +- Issue #19489: Moved the search box from the sidebar to the header and footer + of each page. Patch by Ammar Askar. + +- Issue #27285: Update documentation to reflect the deprecation of ``pyvenv`` + and normalize on the term "virtual environment". Patch by Steve Piercy. + +Tests +----- + +- Issue #27027: Added test.support.is_android that is True when this is an + Android build. + + +What's New in Python 3.6.0 alpha 2 +================================== + +*Release date: 2016-06-13* + +Core and Builtins +----------------- + +- Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes. + Patch by Demur Rumed. + +- Issue #27190: Raise NotSupportedError if sqlite3 is older than 3.3.1. + Patch by Dave Sawyer. + +- Issue #27286: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling + function with generalized unpacking (PEP 448) and conflicting keyword names + could cause undefined behavior. + +- Issue #27140: Added BUILD_CONST_KEY_MAP opcode. + +- Issue #27186: Add support for os.PathLike objects to open() (part of PEP 519). + +- Issue #27066: Fixed SystemError if a custom opener (for open()) returns a + negative number without setting an exception. + +- Issue #26983: float() now always return an instance of exact float. + The deprecation warning is emitted if __float__ returns an instance of + a strict subclass of float. In a future versions of Python this can + be an error. + +- Issue #27097: Python interpreter is now about 7% faster due to optimized + instruction decoding. Based on patch by Demur Rumed. + +- Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode. + Patch by Demur Rumed. + +- Issue #23275: Allow assigning to an empty target list in round brackets: + () = iterable. + +- Issue #27243: Update the __aiter__ protocol: instead of returning + an awaitable that resolves to an asynchronous iterator, the asynchronous + iterator should be returned directly. Doing the former will trigger a + PendingDeprecationWarning. + + +Library +------- + +- Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants + exposed on the API which are not implemented on GNU/Hurd. They would not + work at runtime anyway. + +- Issue #25455: Fixed crashes in repr of recursive ElementTree.Element and + functools.partial objects. + +- Issue #27294: Improved repr for Tkinter event objects. + +- Issue #20508: Improve exception message of IPv{4,6}Network.__getitem__. + Patch by Gareth Rees. + +- [Security] Issue #26556: Update expat to 2.1.1, fixes CVE-2015-1283. + +- [Security] Fix TLS stripping vulnerability in smtplib, CVE-2016-0772. + Reported by Team Oststrom. + +- Issue #21386: Implement missing IPv4Address.is_global property. It was + documented since 07a5610bae9d. Initial patch by Roger Luethi. + +- Issue #27029: Removed deprecated support of universal newlines mode from + ZipFile.open(). + +- Issue #27030: Unknown escapes consisting of ``'\'`` and an ASCII letter in + regular expressions now are errors. The re.LOCALE flag now can be used + only with bytes patterns. + +- Issue #27186: Add os.PathLike support to DirEntry (part of PEP 519). + Initial patch by Jelle Zijlstra. + +- Issue #20900: distutils register command now decodes HTTP responses + correctly. Initial patch by ingrid. + +- Issue #27186: Add os.PathLike support to pathlib, removing its provisional + status (part of PEP 519). Initial patch by Dusty Phillips. + +- Issue #27186: Add support for os.PathLike objects to os.fsencode() and + os.fsdecode() (part of PEP 519). + +- Issue #27186: Introduce os.PathLike and os.fspath() (part of PEP 519). + +- A new version of typing.py provides several new classes and + features: @overload outside stubs, Reversible, DefaultDict, Text, + ContextManager, Type[], NewType(), TYPE_CHECKING, and numerous bug + fixes (note that some of the new features are not yet implemented in + mypy or other static analyzers). Also classes for PEP 492 + (Awaitable, AsyncIterable, AsyncIterator) have been added (in fact + they made it into 3.5.1 but were never mentioned). + +- Issue #25738: Stop http.server.BaseHTTPRequestHandler.send_error() from + sending a message body for 205 Reset Content. Also, don't send Content + header fields in responses that don't have a body. Patch by Susumu + Koshiba. + +- Issue #21313: Fix the "platform" module to tolerate when sys.version + contains truncated build information. + +- [Security] Issue #26839: On Linux, :func:`os.urandom` now calls + ``getrandom()`` with ``GRND_NONBLOCK`` to fall back on reading + ``/dev/urandom`` if the urandom entropy pool is not initialized yet. Patch + written by Colm Buckley. + +- Issue #23883: Added missing APIs to __all__ to match the documented APIs + for the following modules: cgi, mailbox, mimetypes, plistlib and smtpd. + Patches by Jacek Kołodziej. + +- Issue #27164: In the zlib module, allow decompressing raw Deflate streams + with a predefined zdict. Based on patch by Xiang Zhang. + +- Issue #24291: Fix wsgiref.simple_server.WSGIRequestHandler to completely + write data to the client. Previously it could do partial writes and + truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout + doing partial writes, but this is deprecated. + +- Issue #21272: Use _sysconfigdata.py to initialize distutils.sysconfig. + +- Issue #19611: :mod:`inspect` now reports the implicit ``.0`` parameters + generated by the compiler for comprehension and generator expression scopes + as if they were positional-only parameters called ``implicit0``. + Patch by Jelle Zijlstra. + +- Issue #26809: Add ``__all__`` to :mod:`string`. Patch by Emanuel Barry. + +- Issue #26373: subprocess.Popen.communicate now correctly ignores + BrokenPipeError when the child process dies before .communicate() + is called in more/all circumstances. + +- signal, socket, and ssl module IntEnum constant name lookups now return a + consistent name for values having multiple names. Ex: signal.Signals(6) + now refers to itself as signal.SIGALRM rather than flipping between that + and signal.SIGIOT based on the interpreter's hash randomization seed. + +- Issue #27167: Clarify the subprocess.CalledProcessError error message text + when the child process died due to a signal. + +- Issue #25931: Don't define socketserver.Forking* names on platforms such + as Windows that do not support os.fork(). + +- Issue #21776: distutils.upload now correctly handles HTTPError. + Initial patch by Claudiu Popa. + +- Issue #26526: Replace custom parse tree validation in the parser + module with a simple DFA validator. + +- Issue #27114: Fix SSLContext._load_windows_store_certs fails with + PermissionError + +- Issue #18383: Avoid creating duplicate filters when using filterwarnings + and simplefilter. Based on patch by Alex Shkop. + +- Issue #23026: winreg.QueryValueEx() now return an integer for REG_QWORD type. + +- Issue #26741: subprocess.Popen destructor now emits a ResourceWarning warning + if the child process is still running. + +- Issue #27056: Optimize pickle.load() and pickle.loads(), up to 10% faster + to deserialize a lot of small objects. + +- Issue #21271: New keyword only parameters in reset_mock call. + +IDLE +---- + +- Issue #5124: Paste with text selected now replaces the selection on X11. + This matches how paste works on Windows, Mac, most modern Linux apps, + and ttk widgets. Original patch by Serhiy Storchaka. + +- Issue #24750: Switch all scrollbars in IDLE to ttk versions. + Where needed, minimal tests are added to cover changes. + +- Issue #24759: IDLE requires tk 8.5 and availability ttk widgets. + Delete now unneeded tk version tests and code for older versions. + Add test for IDLE syntax colorizoer. + +- Issue #27239: idlelib.macosx.isXyzTk functions initialize as needed. + +- Issue #27262: move Aqua unbinding code, which enable context menus, to maxosx. + +- Issue #24759: Make clear in idlelib.idle_test.__init__ that the directory + is a private implementation of test.test_idle and tool for maintainers. + +- Issue #27196: Stop 'ThemeChanged' warnings when running IDLE tests. + These persisted after other warnings were suppressed in #20567. + Apply Serhiy Storchaka's update_idletasks solution to four test files. + Record this additional advice in idle_test/README.txt + +- Issue #20567: Revise idle_test/README.txt with advice about avoiding + tk warning messages from tests. Apply advice to several IDLE tests. + +- Issue #24225: Update idlelib/README.txt with new file names + and event handlers. + +- Issue #27156: Remove obsolete code not used by IDLE. Replacements: + 1. help.txt, replaced by help.html, is out-of-date and should not be used. + Its dedicated viewer has be replaced by the html viewer in help.py. + 2. ``import idlever; I = idlever.IDLE_VERSION`` is the same as + ``import sys; I = version[:version.index(' ')]`` + 3. After ``ob = stackviewer.VariablesTreeItem(*args)``, + ``ob.keys() == list(ob.object.keys)``. + 4. In macosc, runningAsOSXAPP == isAquaTk; idCarbonAquaTk == isCarbonTk + +- Issue #27117: Make colorizer htest and turtledemo work with dark themes. + Move code for configuring text widget colors to a new function. + +- Issue #24225: Rename many `idlelib/*.py` and `idle_test/test_*.py` files. + Edit files to replace old names with new names when the old name + referred to the module rather than the class it contained. + See the issue and IDLE section in What's New in 3.6 for more. + +- Issue #26673: When tk reports font size as 0, change to size 10. + Such fonts on Linux prevented the configuration dialog from opening. + +- Issue #21939: Add test for IDLE's percolator. + Original patch by Saimadhav Heblikar. + +- Issue #21676: Add test for IDLE's replace dialog. + Original patch by Saimadhav Heblikar. + +- Issue #18410: Add test for IDLE's search dialog. + Original patch by Westley Martínez. + +- Issue #21703: Add test for undo delegator. Patch mostly by + Saimadhav Heblikar . + +- Issue #27044: Add ConfigDialog.remove_var_callbacks to stop memory leaks. + +- Issue #23977: Add more asserts to test_delegator. + +Documentation +------------- + +- Issue #16484: Change the default PYTHONDOCS URL to "https:", and fix the + resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik + Nadikuditi. + +- Issue #24136: Document the new PEP 448 unpacking syntax of 3.5. + +- Issue #22558: Add remaining doc links to source code for Python-coded modules. + Patch by Yoni Lavi. + +Tests +----- + +- Issue #25285: regrtest now uses subprocesses when the -j1 command line option + is used: each test file runs in a fresh child process. Before, the -j1 option + was ignored. + +- Issue #25285: Tools/buildbot/test.bat script now uses -j1 by default to run + each test file in fresh child process. + +Windows +------- + +- Issue #27064: The py.exe launcher now defaults to Python 3. + The Windows launcher ``py.exe`` no longer prefers an installed + Python 2 version over Python 3 by default when used interactively. + +Build +----- + +- Issue #27229: Fix the cross-compiling pgen rule for in-tree builds. Patch + by Xavier de Gaye. + +- Issue #26930: Update OS X 10.5+ 32-bit-only installer to build + and link with OpenSSL 1.0.2h. + +Misc +---- + +- Issue #17500, and https://github.com/python/pythondotorg/issues/945: Remove + unused and outdated icons. + +C API +----- + +- Issue #27186: Add the PyOS_FSPath() function (part of PEP 519). + +- Issue #26282: PyArg_ParseTupleAndKeywords() now supports positional-only + parameters. + +Tools/Demos +----------- + +- Issue #26282: Argument Clinic now supports positional-only and keyword + parameters in the same function. + + +What's New in Python 3.6.0 alpha 1? +=================================== -Release date: 2016-06-12 +Release date: 2016-05-16 Core and Builtins -----------------