Opened 4 years ago

Closed 4 years ago

#4146 closed task (fixed)


Reported by: bdubbs@… Owned by: lfs-book@…
Priority: normal Milestone: 8.2
Component: Book Version: SVN
Severity: normal Keywords:


New point version.

Change History (2)

comment:1 by bdubbs@…, 4 years ago

What's New in Python 3.6.3 final?

*Release date: 2017-10-03*


  • bpo-31641: Re-allow arbitrary iterables in concurrent.futures.as_completed(). Fixes regression in 3.6.3rc1.


  • bpo-31662: Fix typos in Windows uploadrelease.bat script. Fix Windows Doc build issues in Doc/make.bat.
  • bpo-31423: Fix building the PDF documentation with newer versions of Sphinx.

What's New in Python 3.6.3 release candidate 1?

*Release date: 2017-09-18*


  • bpo-29781: SSLObject.version() now correctly returns None when handshake over BIO has not been performed yet.
  • bpo-30947: Upgrade libexpat embedded copy from version 2.2.1 to 2.2.3 to get security fixes.

Core and Builtins

  • bpo-31471: Fix an assertion failure in subprocess.Popen() on Windows, in case the env argument has a bad keys() method. Patch by Oren Milman.
  • bpo-31418: Fix an assertion failure in PyErr_WriteUnraisable() in case of an exception with a bad module attribute. Patch by Oren Milman.
  • bpo-31416: Fix assertion failures in case of a bad warnings.filters or warnings.defaultaction. Patch by Oren Milman.
  • bpo-31411: Raise a TypeError instead of SystemError in case warnings.onceregistry is not a dictionary. Patch by Oren Milman.
  • bpo-31373: Fix several possible instances of undefined behavior due to floating-point demotions.
  • bpo-30465: Location information (lineno and col_offset) in f-strings is now (mostly) correct. This fixes tools like flake8 from showing warnings on the wrong line (typically the first line of the file).
  • bpo-31343: Include sys/sysmacros.h for major(), minor(), and makedev(). GNU C libray plans to remove the functions from sys/types.h.
  • bpo-31291: Fix an assertion failure in zipimport.zipimporter.get_data on Windows, when the return value of pathname.replace('/','
    ') isn't a string. Patch by Oren Milman.
  • bpo-31271: Fix an assertion failure in the write() method of io.TextIOWrapper, when the encoder doesn't return a bytes object. Patch by Oren Milman.
  • bpo-31243: Fix a crash in some methods of io.TextIOWrapper, when the decoder's state is invalid. Patch by Oren Milman.
  • bpo-30721: print now shows correct usage hint for using Python 2 redirection syntax. Patch by Sanyam Khurana.
  • bpo-31070: Fix a race condition in importlib _get_module_lock().
  • bpo-31095: Fix potential crash during GC caused by tp_dealloc which doesn't call PyObject_GC_UnTrack().
  • bpo-31071: Avoid masking original TypeError in call with * unpacking when other arguments are passed.
  • bpo-30978: str.format_map() now passes key lookup exceptions through. Previously any exception was replaced with a KeyError exception.
  • bpo-30808: Use _Py_atomic API for concurrency-sensitive signal state.
  • bpo-30876: Relative import from unloaded package now reimports the package instead of failing with SystemError. Relative import from non-package now fails with ImportError rather than SystemError.
  • bpo-30703: Improve signal delivery.

Avoid using Py_AddPendingCall from signal handler, to avoid calling signal- unsafe functions. The tests I'm adding here fail without the rest of the patch, on Linux and OS X. This means our signal delivery logic had defects (some signals could be lost).

  • bpo-30765: Avoid blocking in pthread_mutex_lock() when PyThread_acquire_lock() is asked not to block.
  • bpo-31161: Make sure the 'Missing parentheses' syntax error message is only applied to SyntaxError, not to subclasses. Patch by Martijn Pieters.
  • bpo-30814: Fixed a race condition when import a submodule from a package.
  • bpo-30597: print now shows expected input in custom error message when used as a Python 2 statement. Patch by Sanyam Khurana.


  • bpo-31499: xml.etree: Fix a crash when a parser is part of a reference cycle.
  • bpo-28556: typing.get_type_hints now finds the right globalns for classes and modules by default (when no globalns was specified by the caller).
  • bpo-28556: Speed improvements to the typing module. Original PRs by Ivan Levkivskyi and Mitar.
  • bpo-31544: The C accelerator module of ElementTree ignored exceptions raised when looking up TreeBuilder target methods in XMLParser().
  • bpo-31234: socket.create_connection() now fixes manually a reference cycle: clear the variable storing the last exception on success.
  • bpo-31457: LoggerAdapter objects can now be nested.
  • bpo-31400: Improves SSL error handling to avoid losing error numbers.
  • bpo-28958: ssl.SSLContext() now uses OpenSSL error information when a context cannot be instantiated.
  • bpo-27340: SSLSocket.sendall() now uses memoryview to create slices of data. This fixes support for all bytes-like object. It is also more efficient and avoids costly copies.
  • bpo-31178: Fix string concatenation bug in rare error path in the subprocess module
  • bpo-31350: Micro-optimize :func:asyncio._get_running_loop to become up to 10% faster.
  • bpo-29136: Add TLS 1.3 cipher suites and OP_NO_TLSv1_3.
  • bpo-29212: Fix concurrent.futures.thread.ThreadPoolExecutor threads to have a non repr() based thread name by default when no thread_name_prefix is supplied. They will now identify themselves as "ThreadPoolExecutor- y_n".
  • bpo-9146: Fix a segmentation fault in _hashopenssl when standard hash functions such as md5 are not available in the linked OpenSSL library. As in some special FIPS-140 build environments.
  • bpo-27144: The map() and as_completed() iterators in concurrent.futures now avoid keeping a reference to yielded objects.
  • bpo-10746: Fix ctypes producing wrong PEP 3118 type codes for integer types.
  • bpo-22536: The subprocess module now sets the filename when FileNotFoundError is raised on POSIX systems due to the executable or cwd not being found.
  • bpo-31249: concurrent.futures: used by ThreadPoolExecutor now breaks a reference cycle between an exception object and the WorkItem object.
  • bpo-31247: xmlrpc.server now explicitly breaks reference cycles when using sys.exc_info() in code handling exceptions.
  • bpo-30102: The ssl and hashlib modules now call OPENSSL_add_all_algorithms_noconf() on OpenSSL < 1.1.0. The function detects CPU features and enables optimizations on some CPU architectures such as POWER8. Patch is based on research from Gustavo Serra Scalet.
  • bpo-31185: Fixed miscellaneous errors in asyncio speedup module.
  • bpo-31135: ttk: fix the destroy() method of LabeledScale and OptionMenu classes. Call the parent destroy() method even if the used attribute doesn't exist. The LabeledScale.destroy() method now also explicitly clears label and scale attributes to help the garbage collector to destroy all widgets.
  • bpo-31107: Fix copyreg._slotnames() mangled attribute calculation for classes whose name begins with an underscore. Patch by Shane Harvey.
  • bpo-31061: Fixed a crash when using asyncio and threads.
  • bpo-30502: Fix handling of long oids in ssl. Based on patch by Christian Heimes.
  • bpo-30119: ftplib.FTP.putline() now throws ValueError on commands that contains CR or LF. Patch by Dong-hee Na.
  • bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader in non- blocking mode if it succeeded to aquire the lock but the acquire took longer than the timeout.
  • bpo-29403: Fix unittest.mock's autospec to not fail on method-bound builtin functions. Patch by Aaron Gallagher.
  • bpo-30961: Fix decrementing a borrowed reference in tracemalloc.
  • bpo-25684: Change ttk.OptionMenu radiobuttons to be unique across instances of OptionMenu.
  • bpo-30886: Fix multiprocessing.Queue.join_thread(): it now waits until the thread completes, even if the thread was started by the same process which created the queue.
  • bpo-29854: Fix segfault in readline when using readline's history-size option. Patch by Nir Soffer.
  • bpo-30319: socket.close() now ignores ECONNRESET error.
  • bpo-30828: Fix out of bounds write in asyncio.CFuture.remove_done_callback().
  • bpo-30807: signal.setitimer() may disable the timer when passed a tiny value.

Tiny values (such as 1e-6) are valid non-zero values for setitimer(), which is specified as taking microsecond-resolution intervals. However, on some platform, our conversion routine could convert 1e-6 into a zero interval, therefore disabling the timer instead of (re-)scheduling it.

  • bpo-30441: Fix bug when modifying os.environ while iterating over it
  • bpo-30532: Fix email header value parser dropping folding white space in certain cases.
  • bpo-30879: os.listdir() and os.scandir() now emit bytes names when called with bytes- like argument.
  • bpo-30746: Prohibited the '=' character in environment variable names in os.putenv() and os.spawn*().
  • bpo-29755: Fixed the lgettext() family of functions in the gettext module. They now always return bytes.


  • bpo-31294: Fix incomplete code snippet in the ZeroMQSocketListener and ZeroMQSocketHandler examples and adapt them to Python 3.
  • bpo-21649: Add RFC 7525 and Mozilla server side TLS links to SSL documentation.
  • bpo-30803: Clarify doc on truth value testing. Original patch by Peter Thomassen.


  • bpo-31320: Silence traceback in test_ssl
  • bpo-25674: Remove ssl test
  • bpo-30715: Address ALPN callback changes for OpenSSL 1.1.0f. The latest version behaves like OpenSSL 1.0.2 and no longer aborts handshake.
  • bpo-30822: regrtest: Exclude tzdata from regrtest --all. When running the test suite using --use=all / -u all, exclude tzdata since it makes test_datetime too slow (15-20 min on some buildbots) which then times out on some buildbots. Fix also regrtest command line parser to allow passing -u extralargefile to run test_zipfile64.


  • bpo-30854: Fix compile error when compiling --without-threads.

comment:2 by bdubbs@…, 4 years ago

Resolution: fixed
Status: newclosed

Fixed at revision 11309.

Note: See TracTickets for help on using tickets.