diff options
author | Martin Panter <vadmium> | 2015-09-09 03:45:58 (GMT) |
---|---|---|
committer | Martin Panter <vadmium> | 2015-09-09 03:45:58 (GMT) |
commit | 6a563b683952bf3f77fa7c5e1999e004c2947857 (patch) | |
tree | e83f4abfe7cd96cb72e09d909631728e3e462fcc | |
parent | 5127cdea054eba8d1f7631f050f3a91cc01b6542 (diff) | |
parent | 0ac5f28beec9e7aaba50c4b89c2e11d729c4bde8 (diff) | |
download | cpython-6a563b683952bf3f77fa7c5e1999e004c2947857.zip cpython-6a563b683952bf3f77fa7c5e1999e004c2947857.tar.gz cpython-6a563b683952bf3f77fa7c5e1999e004c2947857.tar.bz2 |
Merge 3.5 branches
-rw-r--r-- | Doc/whatsnew/3.5.rst | 127 |
1 files changed, 52 insertions, 75 deletions
diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index c2e0251..fe2115e 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -48,7 +48,6 @@ when researching a change. This article explains the new features in Python 3.5, compared to 3.4. - For full details, see the :source:`Misc/NEWS` file. .. note:: @@ -83,13 +82,16 @@ New library modules: New built-in features: * ``bytes % args``, ``bytearray % args``: :pep:`461` - Adding ``%`` formatting - to bytes and bytearray + to bytes and bytearray. + * ``b'\xf0\x9f\x90\x8d'.hex()``, ``bytearray(b'\xf0\x9f\x90\x8d').hex()``, ``memoryview(b'\xf0\x9f\x90\x8d').hex()``: :issue:`9951` - A ``hex`` method has been added to bytes, bytearray, and memoryview. + * Generators have new ``gi_yieldfrom`` attribute, which returns the object being iterated by ``yield from`` expressions. (Contributed by Benno Leslie and Yury Selivanov in :issue:`24450`.) + * New :exc:`RecursionError` exception. (Contributed by Georg Brandl in :issue:`19235`.) @@ -101,6 +103,7 @@ Implementation improvements: (:issue:`19977`). * :pep:`488`, the elimination of ``.pyo`` files. + * :pep:`489`, multi-phase initialization of extension modules. Significantly Improved Library Modules: @@ -120,6 +123,11 @@ Significantly Improved Library Modules: protocol handling from network IO. (Contributed by Geert Jansen in :issue:`21965`.) +* :mod:`traceback` has new lightweight and convenient to work with + classes :class:`~traceback.TracebackException`, + :class:`~traceback.StackSummary`, and :class:`traceback.FrameSummary`. + (Contributed by Robert Collins in :issue:`17911`.) + Security improvements: * SSLv3 is now disabled throughout the standard library. @@ -135,27 +143,13 @@ Windows improvements: * A new installer for Windows has replaced the old MSI. See :ref:`using-on-windows` for more information. + * Windows builds now use Microsoft Visual C++ 14.0, and extension modules should use the same. - -Please read on for a comprehensive list of user-facing changes. - - -.. PEP-sized items next. - -.. _pep-4XX: - -.. PEP 4XX: Virtual Environments -.. ============================= - - -.. (Implemented by Foo Bar.) - -.. .. seealso:: - - :pep:`4XX` - Python Virtual Environments - PEP written by Carl Meyer +Please read on for a comprehensive list of user-facing changes, including many +other smaller improvements, CPython optimizations, deprecations, and potential +porting issues. New Features @@ -267,7 +261,12 @@ Matrix multiplication is a notably common operation in many fields of mathematics, science, engineering, and the addition of ``@`` allows writing cleaner code:: - >>> S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r) + S = (H @ beta - r).T @ inv(H @ V @ H.T) @ (H @ beta - r) + +instead of:: + + S = dot((dot(H, beta) - r).T, + dot(inv(dot(dot(H, V), H.T)), dot(H, beta) - r)) An upcoming release of NumPy 1.10 will add support for the new operator:: @@ -411,60 +410,38 @@ Examples of functions which are now retried when interrupted by a signal instead of raising :exc:`InterruptedError` if the Python signal handler does not raise an exception: -* :func:`open`, :func:`os.open`, :func:`io.open` -* functions of the :mod:`faulthandler` module -* :mod:`os` functions: - - - :func:`os.fchdir` - - :func:`os.fchmod` - - :func:`os.fchown` - - :func:`os.fdatasync` - - :func:`os.fstat` - - :func:`os.fstatvfs` - - :func:`os.fsync` - - :func:`os.ftruncate` - - :func:`os.mkfifo` - - :func:`os.mknod` - - :func:`os.posix_fadvise` - - :func:`os.posix_fallocate` - - :func:`os.pread` - - :func:`os.pwrite` - - :func:`os.read` - - :func:`os.readv` - - :func:`os.sendfile` - - :func:`os.wait3` - - :func:`os.wait4` - - :func:`os.wait` - - :func:`os.waitid` - - :func:`os.waitpid` - - :func:`os.write` - - :func:`os.writev` - - special cases: :func:`os.close` and :func:`os.dup2` now ignore - :py:data:`~errno.EINTR` error, the syscall is not retried (see the PEP - for the rationale) - -* :mod:`select` functions: - - - :func:`select.devpoll.poll` - - :func:`select.epoll.poll` - - :func:`select.kqueue.control` - - :func:`select.poll.poll` - - :func:`select.select` - -* :func:`socket.socket` methods: - - - :meth:`~socket.socket.accept` - - :meth:`~socket.socket.connect` (except for non-blocking sockets) - - :meth:`~socket.socket.recv` - - :meth:`~socket.socket.recvfrom` - - :meth:`~socket.socket.recvmsg` - - :meth:`~socket.socket.send` - - :meth:`~socket.socket.sendall` - - :meth:`~socket.socket.sendmsg` - - :meth:`~socket.socket.sendto` - -* :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo` -* :func:`time.sleep` +* :func:`open`, :func:`os.open`, :func:`io.open`; + +* functions of the :mod:`faulthandler` module; + +* :mod:`os` functions: :func:`~os.fchdir`, :func:`~os.fchmod`, + :func:`~os.fchown`, :func:`~os.fdatasync`, :func:`~os.fstat`, + :func:`~os.fstatvfs`, :func:`~os.fsync`, :func:`~os.ftruncate`, + :func:`~os.mkfifo`, :func:`~os.mknod`, :func:`~os.posix_fadvise`, + :func:`~os.posix_fallocate`, :func:`~os.pread`, :func:`~os.pwrite`, + :func:`~os.read`, :func:`~os.readv`, :func:`~os.sendfile`, + :func:`~os.wait3`, :func:`~os.wait4`, :func:`~os.wait`, + :func:`~os.waitid`, :func:`~os.waitpid`, :func:`~os.write`, + :func:`~os.writev`; + +* special cases: :func:`os.close` and :func:`os.dup2` now ignore + :py:data:`~errno.EINTR` error, the syscall is not retried (see the PEP + for the rationale); + +* :mod:`select` functions: :func:`~select.devpoll.poll`, + :func:`~select.epoll.poll`, :func:`~select.kqueue.control`, + :func:`~select.poll.poll`, :func:`~select.select`; + +* :func:`socket.socket` methods: :meth:`~socket.socket.accept`, + :meth:`~socket.socket.connect` (except for non-blocking sockets), + :meth:`~socket.socket.recv`, :meth:`~socket.socket.recvfrom`, + :meth:`~socket.socket.recvmsg`, :meth:`~socket.socket.send`, + :meth:`~socket.socket.sendall`, :meth:`~socket.socket.sendmsg`, + :meth:`~socket.socket.sendto`; + +* :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo`; + +* :func:`time.sleep`. .. seealso:: |