Merge tag 'v3.8.0a4'

Python 3.8.0a4
This commit is contained in:
Łukasz Langa
2019-05-07 16:56:06 +02:00
139 changed files with 1477 additions and 385 deletions

View File

@@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 8
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 3
#define PY_RELEASE_SERIAL 4
/* Version as a string */
#define PY_VERSION "3.8.0a3+"
#define PY_VERSION "3.8.0a4"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View File

@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Mon Mar 25 20:32:23 2019
# Autogenerated by Sphinx on Mon May 6 20:27:55 2019
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -162,20 +162,21 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Note: If the object is a class instance and the attribute '
'reference\n'
' occurs on both sides of the assignment operator, the RHS '
'expression,\n'
' "a.x" can access either an instance attribute or (if no '
'instance\n'
' attribute exists) a class attribute. The LHS target "a.x" '
'is always\n'
' set as an instance attribute, creating it if necessary. '
'Thus, the\n'
' two occurrences of "a.x" do not necessarily refer to the '
'same\n'
' attribute: if the RHS expression refers to a class '
'attribute, the\n'
' LHS creates a new instance attribute as the target of the\n'
' assignment:\n'
' occurs on both sides of the assignment operator, the '
'right-hand side\n'
' expression, "a.x" can access either an instance attribute or '
'(if no\n'
' instance attribute exists) a class attribute. The left-hand '
'side\n'
' target "a.x" is always set as an instance attribute, '
'creating it if\n'
' necessary. Thus, the two occurrences of "a.x" do not '
'necessarily\n'
' refer to the same attribute: if the right-hand side '
'expression\n'
' refers to a class attribute, the left-hand side creates a '
'new\n'
' instance attribute as the target of the assignment:\n'
'\n'
' class Cls:\n'
' x = 3 # class variable\n'
@@ -3302,11 +3303,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation '
'of an\n'
' object. The "format_spec" argument is a string that '
' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
' of the "format_spec" argument is up to the type '
' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -6189,8 +6190,8 @@ topics = {'assert': 'The "assert" statement\n'
'end up importing "pkg.mod". If you execute "from ..subpkg2 import '
'mod"\n'
'from within "pkg.subpkg1" you will import "pkg.subpkg2.mod". The\n'
'specification for relative imports is contained within **PEP '
'328**.\n'
'specification for relative imports is contained in the Package\n'
'Relative Imports section.\n'
'\n'
'"importlib.import_module()" is provided to support applications '
'that\n'
@@ -8002,11 +8003,11 @@ topics = {'assert': 'The "assert" statement\n'
'"str.format()"\n'
' method, to produce a “formatted” string representation of '
'an\n'
' object. The "format_spec" argument is a string that '
' object. The *format_spec* argument is a string that '
'contains a\n'
' description of the formatting options desired. The '
'interpretation\n'
' of the "format_spec" argument is up to the type '
' of the *format_spec* argument is up to the type '
'implementing\n'
' "__format__()", however most classes will either '
'delegate\n'
@@ -8768,15 +8769,15 @@ topics = {'assert': 'The "assert" statement\n'
'When a class definition is executed, the following steps '
'occur:\n'
'\n'
'* MRO entries are resolved\n'
'* MRO entries are resolved;\n'
'\n'
'* the appropriate metaclass is determined\n'
'* the appropriate metaclass is determined;\n'
'\n'
'* the class namespace is prepared\n'
'* the class namespace is prepared;\n'
'\n'
'* the class body is executed\n'
'* the class body is executed;\n'
'\n'
'* the class object is created\n'
'* the class object is created.\n'
'\n'
'\n'
'Resolving MRO entries\n'
@@ -8806,16 +8807,16 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'* if no bases and no explicit metaclass are given, then '
'"type()" is\n'
' used\n'
' used;\n'
'\n'
'* if an explicit metaclass is given and it is *not* an '
'instance of\n'
' "type()", then it is used directly as the metaclass\n'
' "type()", then it is used directly as the metaclass;\n'
'\n'
'* if an instance of "type()" is given as the explicit '
'metaclass, or\n'
' bases are defined, then the most derived metaclass is '
'used\n'
'used.\n'
'\n'
'The most derived metaclass is selected from the explicitly '
'specified\n'
@@ -8931,7 +8932,7 @@ topics = {'assert': 'The "assert" statement\n'
'with the\n'
' class being defined and the assigned name of that '
'particular\n'
' descriptor; and\n'
' descriptor;\n'
'\n'
'* finally, the "__init_subclass__()" hook is called on the '
'immediate\n'
@@ -9030,7 +9031,7 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'One can implement the generic class syntax as specified by '
'**PEP 484**\n'
'(for example "List[int]") by defining a special method\n'
'(for example "List[int]") by defining a special method:\n'
'\n'
'classmethod object.__class_getitem__(cls, key)\n'
'\n'
@@ -9672,6 +9673,14 @@ topics = {'assert': 'The "assert" statement\n'
'capitalized\n'
' and the rest lowercased.\n'
'\n'
' Changed in version 3.8: The first character is now put '
'into\n'
' titlecase rather than uppercase. This means that '
'characters like\n'
' digraphs will only have their first letter capitalized, '
'instead of\n'
' the full character.\n'
'\n'
'str.casefold()\n'
'\n'
' Return a casefolded copy of the string. Casefolded '
@@ -10416,9 +10425,7 @@ topics = {'assert': 'The "assert" statement\n'
' >>> def titlecase(s):\n'
' ... return re.sub(r"[A-Za-z]+(\'[A-Za-z]+)?",\n'
' ... lambda mo: '
'mo.group(0)[0].upper() +\n'
' ... '
'mo.group(0)[1:].lower(),\n'
'mo.group(0).capitalize(),\n'
' ... s)\n'
' ...\n'
' >>> titlecase("they\'re bill\'s friends.")\n'
@@ -11286,17 +11293,17 @@ topics = {'assert': 'The "assert" statement\n'
'| |\n'
' | | unavailable; not inherited by '
'| |\n'
' | | subclasses '
' | | subclasses. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
' | "__name__" | The functions name '
' | "__name__" | The functions name. '
'| Writable |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
' | "__qualname__" | The functions *qualified name* '
' | "__qualname__" | The functions *qualified '
'| Writable |\n'
' | | New in version 3.3. '
' | | name*. New in version 3.3. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -11316,7 +11323,7 @@ topics = {'assert': 'The "assert" statement\n'
'| |\n'
' | | or "None" if no arguments have '
'| |\n'
' | | a default value '
' | | a default value. '
'| |\n'
' '
'+---------------------------+---------------------------------+-------------+\n'
@@ -12172,7 +12179,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' "fromkeys()" is a class method that returns a new '
'dictionary.\n'
' *value* defaults to "None".\n'
' *value* defaults to "None". All of the values refer '
'to just a\n'
' single instance, so it generally doesnt make sense '
'for *value*\n'
' to be a mutable object such as an empty list. To get '
'distinct\n'
' values, use a dict comprehension instead.\n'
'\n'
' get(key[, default])\n'
'\n'

1421
Misc/NEWS.d/3.8.0a4.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
Remove references to "aix3" and "aix4".
Patch by M. Felt.

View File

@@ -1,3 +0,0 @@
``python-config --ldflags`` no longer includes flags of the
``LINKFORSHARED`` variable. The ``LINKFORSHARED`` variable must only be used
to build executables.

View File

@@ -1 +0,0 @@
Fix regression introduced in bpo-36146 refactoring setup.py

View File

@@ -1 +0,0 @@
setup.py now correctly reports missing OpenSSL headers and libraries again.

View File

@@ -1,6 +0,0 @@
Release builds and debug builds are now ABI compatible: defining the
``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro, which
introduces the only ABI incompatibility. The ``Py_TRACE_REFS`` macro, which
adds the :func:`sys.getobjects` function and the :envvar:`PYTHONDUMPREFS`
environment variable, can be set using the new ``./configure --with-trace-refs``
build option.

View File

@@ -1,2 +0,0 @@
``make tags`` and ``make TAGS`` now also parse ``Modules/_io/*.c`` and
``Modules/_io/*.h``.

View File

@@ -1,8 +0,0 @@
Add ``-fmax-type-align=8`` to CFLAGS when clang compiler is detected. The
pymalloc memory allocator aligns memory on 8 bytes. On x86-64, clang expects
alignment on 16 bytes by default and so uses MOVAPS instruction which can
lead to segmentation fault. Instruct clang that Python is limited to
alignemnt on 8 bytes to use MOVUPS instruction instead: slower but don't
trigger a SIGSEGV if the memory is not aligned on 16 bytes. Sadly, the flag
must be added to ``CFLAGS`` and not just ``CFLAGS_NODIST``, since third party C
extensions can have the same issue.

View File

@@ -1 +0,0 @@
Don't build the ``_crypt`` extension on VxWorks.

View File

@@ -1,5 +0,0 @@
Change ``PyAPI_FUNC(type)``, ``PyAPI_DATA(type)`` and ``PyMODINIT_FUNC``
macros of ``pyport.h`` when ``Py_BUILD_CORE_MODULE`` is defined. The
``Py_BUILD_CORE_MODULE`` define must be now be used to build a C extension
as a dynamic library accessing Python internals: export the PyInit_xxx()
function in DLL exports on Windows.

View File

@@ -1,3 +0,0 @@
``./configure --with-pymalloc`` no longer adds the ``m`` flag to SOABI
(sys.implementation.cache_tag). Enabling or disabling pymalloc has no impact
on the ABI.

View File

@@ -1,12 +0,0 @@
On Unix, C extensions are no longer linked to libpython except on Android.
It is now possible for a statically linked Python to load a C extension built
using a shared library Python.
When Python is embedded, ``libpython`` must not be loaded with ``RTLD_LOCAL``,
but ``RTLD_GLOBAL`` instead. Previously, using ``RTLD_LOCAL``, it was already
not possible to load C extensions which were not linked to ``libpython``, such
as C extensions of the standard library built by the ``*shared*`` section of
``Modules/Setup``.
distutils, python-config and python-config.py have been modified.

View File

@@ -1 +0,0 @@
Remove the stale scriptsinstall Makefile target.

View File

@@ -1,4 +0,0 @@
Modify ``PyObject_Init`` to correctly increase the refcount of heap-
allocated Type objects. Also fix the refcounts of the heap-allocated types
that were either doing this manually or not decreasing the type's refcount
in tp_dealloc

View File

@@ -1,5 +0,0 @@
Fixed an accidental change to the datetime C API where the arguments to the
:c:func:`PyDate_FromTimestamp` function were incorrectly interpreted as a
single timestamp rather than an arguments tuple, which causes existing code to
start raising :exc:`TypeError`. The backwards-incompatible change was only
present in alpha releases of Python 3.8. Patch by Paul Ganssle.

View File

@@ -1,6 +0,0 @@
Since Python 3.7.0, calling :c:func:`Py_DecodeLocale` before
:c:func:`Py_Initialize` produces mojibake if the ``LC_CTYPE`` locale is coerced
and/or if the UTF-8 Mode is enabled by the user configuration. The LC_CTYPE
coercion and UTF-8 Mode are now disabled by default to fix the mojibake issue.
They must now be enabled explicitly (opt-in) using the new
:c:func:`_Py_PreInitialize` API with ``_PyPreConfig``.

View File

@@ -1,5 +0,0 @@
Change the value of ``CLEANBYTE``, ``DEADDYTE`` and ``FORBIDDENBYTE`` internal
constants used by debug hooks on Python memory allocators
(:c:func:`PyMem_SetupDebugHooks` function). Byte patterns ``0xCB``, ``0xDB``
and ``0xFB`` have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` to use the
same values than Windows CRT debug ``malloc()`` and ``free()``.

View File

@@ -1,2 +0,0 @@
:c:macro:`PyDoc_VAR(name)` and :c:macro:`PyDoc_STRVAR(name,str)` now create
``static const char name[]`` instead of ``static char name[]``. Patch by Inada Naoki.

Some files were not shown because too many files have changed in this diff Show More