Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
aed69fc5
Commit
aed69fc5
authored
Nov 21, 2016
by
Martin Panter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix up grammar, markup, etc in 3.6 What’s New
parent
2db9f2c6
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
51 deletions
+51
-51
Doc/whatsnew/3.6.rst
Doc/whatsnew/3.6.rst
+51
-51
No files found.
Doc/whatsnew/3.6.rst
View file @
aed69fc5
...
...
@@ -425,16 +425,16 @@ which represents a file system path. Code can use :func:`os.fspath`,
object.
The built-in :func:`open` function has been updated to accept
:class:`os.PathLike` objects as have all relevant functions in the
:mod:`os` and :mod:`os.path` modules, a
s well as most
functions and
:class:`os.PathLike` objects
,
as have all relevant functions in the
:mod:`os` and :mod:`os.path` modules, a
nd most other
functions and
classes in the standard library. The :class:`os.DirEntry` class
and relevant classes in :mod:`pathlib` have also been updated to
implement :class:`os.PathLike`.
The hope i
n i
s that updating the fundamental functions for operating
The hope is that updating the fundamental functions for operating
on file system paths will lead to third-party code to implicitly
support all :term:`path-like objects <path-like object>` without any
code changes or at least very minimal ones (e.g. calling
code changes
,
or at least very minimal ones (e.g. calling
:func:`os.fspath` at the beginning of code before operating on a
path-like object).
...
...
@@ -635,18 +635,18 @@ PYTHONMALLOC environment variable
---------------------------------
The new :envvar:`PYTHONMALLOC` environment variable allows setting the Python
memory allocators and
/or install
debug hooks.
memory allocators and
installing
debug hooks.
It is now possible to install debug hooks on Python memory allocators on Python
compiled in release mode using ``PYTHONMALLOC=debug``. Effects of debug hooks:
* Newly allocated memory is filled with the byte ``0xCB``
* Freed memory is filled with the byte ``0xDB``
* Detect violations of Python memory allocator API. For example,
* Detect violations of
the
Python memory allocator API. For example,
:c:func:`PyObject_Free` called on a memory block allocated by
:c:func:`PyMem_Malloc`.
* Detect write
before the start of the buffer (buffer underflow
)
* Detect write
after the end of the buffer (buffer overflow
)
* Detect write
s before the start of a buffer (buffer underflows
)
* Detect write
s after the end of a buffer (buffer overflows
)
* Check that the :term:`GIL <global interpreter lock>` is held when allocator
functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and
:c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called.
...
...
@@ -658,8 +658,8 @@ memory allocators.
It is now also possible to force the usage of the :c:func:`malloc` allocator of
the C library for all Python memory allocations using ``PYTHONMALLOC=malloc``.
It helps to use external memory debuggers like Valgrind on a Python compiled i
n
release mode.
This is helpful when using external memory debuggers like Valgrind o
n
a Python compiled in
release mode.
On error, the debug hooks on Python memory allocators now use the
:mod:`tracemalloc` module to get the traceback where a memory block was
...
...
@@ -754,7 +754,7 @@ Some smaller changes made to the core Python language are:
* Import now raises the new exception :exc:`ModuleNotFoundError`
(subclass of :exc:`ImportError`) when it cannot find a module. Code
that current checks for ImportError (in try-except) will still work.
that current
ly
checks for ImportError (in try-except) will still work.
(Contributed by Eric Snow in :issue:`15767`.)
* Class methods relying on zero-argument ``super()`` will now work correctly
...
...
@@ -810,7 +810,7 @@ Contributed by Victor Stinner in :issue:`26146`.
asyncio
-------
Starting with Python 3.6 the ``asyncio`` is no longer provisional and its
Starting with Python 3.6 the ``asyncio``
module
is no longer provisional and its
API is considered stable.
Notable changes in the :mod:`asyncio` module since Python 3.5.0
...
...
@@ -871,7 +871,7 @@ Notable changes in the :mod:`asyncio` module since Python 3.5.0
* :meth:`Future.set_exception <asyncio.futures.Future.set_exception>`
will now raise :exc:`TypeError` when passed an instance of
:exc:`StopIteration` exception.
the
:exc:`StopIteration` exception.
(Contributed by Chris Angelico in :issue:`26221`.)
* New :meth:`Loop.connect_accepted_socket() <asyncio.BaseEventLoop.connect_accepted_socket>`
...
...
@@ -909,7 +909,7 @@ added to represent sized iterable container classes.
(Contributed by Ivan Levkivskyi, docs by Neil Girdhar in :issue:`27598`.)
The new :class:`~collections.abc.Reversible` abstract base class represents
iterable classes that also provide the :meth:`__reversed__`.
iterable classes that also provide the :meth:`__reversed__`
method
.
(Contributed by Ivan Levkivskyi in :issue:`25987`.)
The new :class:`~collections.abc.AsyncGenerator` abstract base class represents
...
...
@@ -932,7 +932,7 @@ Recursive :class:`collections.deque` instances can now be pickled.
concurrent.futures
------------------
The :class:`ThreadPoolExecutor <concurrent.futures.
thread.ThreadPoolExecutor
`
The :class:`ThreadPoolExecutor <concurrent.futures.
ThreadPoolExecutor>
`
class constructor now accepts an optional *thread_name_prefix* argument
to make it possible to customize the names of the threads created by the
pool.
...
...
@@ -998,7 +998,7 @@ distutils
The ``default_format`` attribute has been removed from
:class:`distutils.command.sdist.sdist` and the ``formats``
attribute defaults to ``['gztar']``. Although not anticipated,
A
ny code relying on the presence of ``default_format`` may
a
ny code relying on the presence of ``default_format`` may
need to be adapted. See :issue:`27819` for more details.
...
...
@@ -1027,7 +1027,7 @@ for the new policies it is :class:`~email.message.EmailMessage`.
encodings
---------
On Windows, added the ``'oem'`` encoding to use ``CP_OEMCP`` and the ``'ansi'``
On Windows, added the ``'oem'`` encoding to use ``CP_OEMCP``
,
and the ``'ansi'``
alias for the existing ``'mbcs'`` encoding, which uses the ``CP_ACP`` code page.
(Contributed by Steve Dower in :issue:`27959`.)
...
...
@@ -1192,7 +1192,7 @@ multiprocessing
os
--
See the summary
for
:ref:`PEP 519 <whatsnew36-pep519>` for details on how the
See the summary
of
:ref:`PEP 519 <whatsnew36-pep519>` for details on how the
:mod:`os` and :mod:`os.path` modules now support
:term:`path-like objects <path-like object>`.
...
...
@@ -1219,7 +1219,7 @@ pathlib
:mod:`pathlib` now supports :term:`path-like objects <path-like object>`.
(Contributed by Brett Cannon in :issue:`27186`.)
See the summary
for
:ref:`PEP 519 <whatsnew36-pep519>` for details.
See the summary
of
:ref:`PEP 519 <whatsnew36-pep519>` for details.
pdb
...
...
@@ -1232,7 +1232,7 @@ to control whether ``.pdbrc`` files should be read.
pickle
------
Objects that need
calling ``__new__``
with keyword arguments can now be pickled
Objects that need
``__new__`` called
with keyword arguments can now be pickled
using :ref:`pickle protocols <pickle-protocols>` older than protocol version 4.
Protocol version 4 already supports this case. (Contributed by Serhiy
Storchaka in :issue:`24164`.)
...
...
@@ -1241,7 +1241,7 @@ Storchaka in :issue:`24164`.)
pickletools
-----------
:func:`pickletools.dis()` now outputs implicit memo index for the
:func:`pickletools.dis()` now outputs
the
implicit memo index for the
``MEMOIZE`` opcode.
(Contributed by Serhiy Storchaka in :issue:`25382`.)
...
...
@@ -1278,7 +1278,7 @@ Match object groups can be accessed by ``__getitem__``, which is
equivalent to ``group()``. So ``mo['name']`` is now equivalent to
``mo.group('name')``. (Contributed by Eric Smith in :issue:`24454`.)
:class:`~re.Match` objects
in the
now support
:class:`~re.Match` objects now support
:meth:`index-like objects <object.__index__>` as group
indices.
(Contributed by Jeroen Demeyer and Xiang Zhang in :issue:`27177`.)
...
...
@@ -1338,7 +1338,7 @@ The :meth:`~socket.socket.getsockopt` constants ``SO_DOMAIN``,
The :meth:`~socket.socket.setsockopt` now supports the
``setsockopt(level, optname, None, optlen: int)`` form.
(Contributed by Christian Heimes in issue:`27744`.)
(Contributed by Christian Heimes in
:
issue:`27744`.)
The socket module now supports the address family
:data:`~socket.AF_ALG` to interface with Linux Kernel crypto API. ``ALG_*``,
...
...
@@ -1415,9 +1415,9 @@ subprocess
:class:`subprocess.Popen` destructor now emits a :exc:`ResourceWarning` warning
if the child process is still running. Use the context manager protocol (``with
proc: ...``) or
call explicitly
the :meth:`~subprocess.Popen.wait` method to
read the exit status of the child process (Contributed by Victor Stinner in
:issue:`26741`
).
proc: ...``) or
explicitly call
the :meth:`~subprocess.Popen.wait` method to
read the exit status of the child process
.
(Contributed by Victor Stinner in
:issue:`26741`
.)
The :class:`subprocess.Popen` constructor and all functions that pass arguments
through to it now accept *encoding* and *errors* arguments. Specifying either
...
...
@@ -1625,8 +1625,8 @@ A new optional *source* parameter has been added to the
:class:`warnings.WarningMessage` (contributed by Victor Stinner in
:issue:`26568` and :issue:`26567`).
When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc` is now
used to try to retrieve the traceback where the detroyed object was allocated.
When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc`
module
is now
used to try to retrieve the traceback where the de
s
troyed object was allocated.
Example with the script ``example.py``::
...
...
@@ -1648,9 +1648,9 @@ Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::
File "example.py", lineno 6
f = func()
The "Object allocated at" traceback is new and only displayed if
The "Object allocated at" traceback is new and
is
only displayed if
:mod:`tracemalloc` is tracing Python memory allocations and if the
:mod:`warnings` was already imported.
:mod:`warnings`
module
was already imported.
winreg
...
...
@@ -1672,7 +1672,7 @@ xmlrpc.client
-------------
The :mod:`xmlrpc.client` module now supports unmarshalling
additional data types used by Apache XML-RPC implementation
additional data types used by
the
Apache XML-RPC implementation
for numerics and ``None``.
(Contributed by Serhiy Storchaka in :issue:`26885`.)
...
...
@@ -1703,16 +1703,16 @@ Xiang Zhang in :issue:`16764` respectively.)
Optimizations
=============
*
Python interpreter now uses
16-bit wordcode instead of bytecode which
*
The Python interpreter now uses a
16-bit wordcode instead of bytecode which
made a number of opcode optimizations possible.
(Contributed by Demur Rumed with input and reviews from
Serhiy Storchaka and Victor Stinner in :issue:`26647` and :issue:`28050`.)
* The :class:`Future <asyncio.futures.Future>` now has an optimized
* The :class:`Future <asyncio.futures.Future>`
class
now has an optimized
C implementation.
(Contributed by Yury Selivanov and INADA Naoki in :issue:`26801`.)
* The :class:`Task <asyncio.tasks.Task>` now has an optimized
* The :class:`Task <asyncio.tasks.Task>`
class
now has an optimized
C implementation. (Contributed by Yury Selivanov in :issue:`28544`.)
* Various implementation improvements in the :mod:`typing` module
...
...
@@ -1758,7 +1758,7 @@ Optimizations
deserializing many small objects (Contributed by Victor Stinner in
:issue:`27056`).
-
Passing :term:`keyword arguments <keyword argument>` to a function has an
*
Passing :term:`keyword arguments <keyword argument>` to a function has an
overhead in comparison with passing :term:`positional arguments
<positional argument>`. Now in extension functions implemented with using
Argument Clinic this overhead is significantly decreased.
...
...
@@ -1791,7 +1791,7 @@ Build and C API Changes
For more information, see :pep:`7` and :issue:`17884`.
* Cross-compiling CPython with the Android NDK and the Android API level set to
21 (Android 5.0 Lollilop) or greater
,
runs successfully. While Android is not
21 (Android 5.0 Lollilop) or greater runs successfully. While Android is not
yet a supported platform, the Python test suite runs on the Android emulator
with only about 16 tests failures. See the Android meta-issue :issue:`26865`.
...
...
@@ -1821,7 +1821,7 @@ Build and C API Changes
(Contributed by Eric Snow in :issue:`15767`.)
* The new :c:func:`PyErr_ResourceWarning` function can be used to generate
the
:exc:`ResourceWarning` providing the source of the resource allocation.
a
:exc:`ResourceWarning` providing the source of the resource allocation.
(Contributed by Victor Stinner in :issue:`26567`.)
* The new :c:func:`PyOS_FSPath` function returns the file system
...
...
@@ -1977,7 +1977,7 @@ Deprecated functions and types of the C API
Undocumented functions :c:func:`PyUnicode_AsEncodedObject`,
:c:func:`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode`
and :c:func:`PyUnicode_AsDecodedUnicode` are deprecated now.
Use :ref:`generic codec based API <codec-registry>` instead.
Use
the
:ref:`generic codec based API <codec-registry>` instead.
Deprecated Build Options
...
...
@@ -2054,7 +2054,7 @@ Changes in the Python API
with ``'+'``.
(Contributed by Jeff Balogh and John O'Connor in :issue:`2091`.)
* :mod:`sqlite3` no longer implicitly commit an open transaction before DDL
* :mod:`sqlite3` no longer implicitly commit
s
an open transaction before DDL
statements.
* On Linux, :func:`os.urandom` now blocks until the system urandom entropy pool
...
...
@@ -2067,12 +2067,12 @@ Changes in the Python API
argument is not set. Previously only ``NULL`` was returned.
* The format of the ``co_lnotab`` attribute of code objects changed to support
negative line number delta. By default, Python does not emit bytecode with
negative line number delta. Functions using ``frame.f_lineno``,
a
negative line number delta. By default, Python does not emit bytecode with
a
negative line number delta. Functions using ``frame.f_lineno``,
``PyFrame_GetLineNumber()`` or ``PyCode_Addr2Line()`` are not affected.
Functions d
ecoding directly
``co_lnotab`` should be updated to use a signed
8-bit integer type for the line number delta, but
it'
s only required to
support applications using negative line number delta. See
Functions d
irectly decoding
``co_lnotab`` should be updated to use a signed
8-bit integer type for the line number delta, but
this i
s only required to
support applications using
a
negative line number delta. See
``Objects/lnotab_notes.txt`` for the ``co_lnotab`` format and how to decode
it, and see the :pep:`511` for the rationale.
...
...
@@ -2124,7 +2124,7 @@ Changes in the Python API
an error (e.g. ``EBADF``) was reported by the underlying system call.
(Contributed by Martin Panter in :issue:`26685`.)
* The *decode_data* argument for :class:`smtpd.SMTPChannel` and
* The *decode_data* argument for
the
:class:`smtpd.SMTPChannel` and
:class:`smtpd.SMTPServer` constructors is now ``False`` by default.
This means that the argument passed to
:meth:`~smtpd.SMTPServer.process_message` is now a bytes object by
...
...
@@ -2204,15 +2204,15 @@ Changes in the Python API
(Contributed by Ramchandra Apte in :issue:`17211`.)
* :func:`re.sub` now raises an error for invalid numerical group
reference
in replacement template
even if the pattern is not
found in the string.
Error message for invalid group reference
reference
s in replacement templates
even if the pattern is not
found in the string.
The error message for invalid group references
now includes the group index and the position of the reference.
(Contributed by SilentGhost, Serhiy Storchaka in :issue:`25953`.)
* :class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for
unrecognized compression values. Previously a plain :exc:`RuntimeError`
was raised. Additionally, calling :class:`~zipfile.ZipFile` methods
or
on a closed ZipFile or calling
:meth:`~zipfile.ZipFile.write` methods
was raised. Additionally, calling :class:`~zipfile.ZipFile` methods
on a closed ZipFile or calling
the :meth:`~zipfile.ZipFile.write` method
on a ZipFile created with mode ``'r'`` will raise a :exc:`ValueError`.
Previously, a :exc:`RuntimeError` was raised in those scenarios.
...
...
@@ -2220,8 +2220,8 @@ Changes in the Python API
Changes in the C API
--------------------
* :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc allocator
<pymalloc>` rather than system :c:func:`malloc`. Applications calling
*
The
:c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc allocator
<pymalloc>` rather than
the
system :c:func:`malloc`. Applications calling
:c:func:`PyMem_Malloc` without holding the GIL can now crash. Set the
:envvar:`PYTHONMALLOC` environment variable to ``debug`` to validate the
usage of memory allocators in your application. See :issue:`26249`.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment