summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium>2015-09-09 03:45:58 (GMT)
committerMartin Panter <vadmium>2015-09-09 03:45:58 (GMT)
commit6a563b683952bf3f77fa7c5e1999e004c2947857 (patch)
treee83f4abfe7cd96cb72e09d909631728e3e462fcc
parent5127cdea054eba8d1f7631f050f3a91cc01b6542 (diff)
parent0ac5f28beec9e7aaba50c4b89c2e11d729c4bde8 (diff)
downloadcpython-6a563b683952bf3f77fa7c5e1999e004c2947857.zip
cpython-6a563b683952bf3f77fa7c5e1999e004c2947857.tar.gz
cpython-6a563b683952bf3f77fa7c5e1999e004c2947857.tar.bz2
Merge 3.5 branches
-rw-r--r--Doc/whatsnew/3.5.rst127
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::