mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08:00
Merge tag 'v3.8.0a4'
Python 3.8.0a4
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 function’s name '
|
||||
' | "__name__" | The function’s name. '
|
||||
'| Writable |\n'
|
||||
' '
|
||||
'+---------------------------+---------------------------------+-------------+\n'
|
||||
' | "__qualname__" | The function’s *qualified name* '
|
||||
' | "__qualname__" | The function’s *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 doesn’t 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
1421
Misc/NEWS.d/3.8.0a4.rst
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,2 +0,0 @@
|
||||
Remove references to "aix3" and "aix4".
|
||||
Patch by M. Felt.
|
||||
@@ -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.
|
||||
@@ -1 +0,0 @@
|
||||
Fix regression introduced in bpo-36146 refactoring setup.py
|
||||
@@ -1 +0,0 @@
|
||||
setup.py now correctly reports missing OpenSSL headers and libraries again.
|
||||
@@ -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.
|
||||
@@ -1,2 +0,0 @@
|
||||
``make tags`` and ``make TAGS`` now also parse ``Modules/_io/*.c`` and
|
||||
``Modules/_io/*.h``.
|
||||
@@ -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.
|
||||
@@ -1 +0,0 @@
|
||||
Don't build the ``_crypt`` extension on VxWorks.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -1 +0,0 @@
|
||||
Remove the stale scriptsinstall Makefile target.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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``.
|
||||
@@ -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()``.
|
||||
@@ -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
Reference in New Issue
Block a user