Python 3.8.0b1

This commit is contained in:
Łukasz Langa
2019-06-04 19:44:34 +02:00
parent 8d0ef0b5ed
commit 3b5deb0116
203 changed files with 2142 additions and 500 deletions

View File

@@ -36,7 +36,7 @@ import suspicious
ISSUE_URI = 'https://bugs.python.org/issue%s'
SOURCE_URI = 'https://github.com/python/cpython/tree/master/%s'
SOURCE_URI = 'https://github.com/python/cpython/tree/3.8/%s'
# monkey-patch reST parser to disable alphabetic and roman enumerated lists
from docutils.parsers.rst.states import Body

View File

@@ -19,11 +19,11 @@
#define PY_MAJOR_VERSION 3
#define PY_MINOR_VERSION 8
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 4
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA
#define PY_RELEASE_SERIAL 1
/* Version as a string */
#define PY_VERSION "3.8.0a4+"
#define PY_VERSION "3.8.0b1"
/*--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 Wed May 29 01:18:52 2019
# Autogenerated by Sphinx on Tue Jun 4 19:40:37 2019
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -357,12 +357,13 @@ topics = {'assert': 'The "assert" statement\n'
'a variable or attribute annotation and an optional assignment\n'
'statement:\n'
'\n'
' annotated_assignment_stmt ::= augtarget ":" expression ["=" '
'expression]\n'
' annotated_assignment_stmt ::= augtarget ":" expression\n'
' ["=" (starred_expression | '
'yield_expression)]\n'
'\n'
'The difference from normal Assignment statements is that only '
'single\n'
'target and only single right hand side value is allowed.\n'
'target is allowed.\n'
'\n'
'For simple names as assignment targets, if in class or module '
'scope,\n'
@@ -409,7 +410,14 @@ topics = {'assert': 'The "assert" statement\n'
'standard\n'
' syntax for type annotations that can be used in static '
'analysis\n'
' tools and IDEs.\n',
' tools and IDEs.\n'
'\n'
'Changed in version 3.8: Now annotated assignments allow same\n'
'expressions in the right hand side as the regular '
'assignments.\n'
'Previously, some expressions (like un-parenthesized tuple '
'expressions)\n'
'caused a syntax error.\n',
'async': 'Coroutines\n'
'**********\n'
'\n'
@@ -2026,21 +2034,22 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
'For user-defined classes which do not define "__contains__()" '
'but do\n'
'define "__iter__()", "x in y" is "True" if some value "z" '
'with "x ==\n'
'z" is produced while iterating over "y". If an exception is '
'raised\n'
'during the iteration, it is as if "in" raised that '
'exception.\n'
'define "__iter__()", "x in y" is "True" if some value "z", '
'for which\n'
'the expression "x is z or x == z" is true, is produced while '
'iterating\n'
'over "y". If an exception is raised during the iteration, it '
'is as if\n'
'"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class '
'defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a '
'non-\n'
'negative integer index *i* such that "x == y[i]", and all '
'lower\n'
'integer indices do not raise "IndexError" exception. (If any '
'other\n'
'negative integer index *i* such that "x is y[i] or x == '
'y[i]", and no\n'
'lower integer index raises the "IndexError" exception. (If '
'any other\n'
'exception is raised, it is as if "in" raised that '
'exception).\n'
'\n'
@@ -5081,7 +5090,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'<\'" | Forces the field to be left-aligned '
'within the available |\n'
' | | space (this is the default for most '
@@ -5130,7 +5139,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'+\'" | indicates that a sign should be used for '
'both positive as |\n'
' | | well as negative '
@@ -5234,7 +5243,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'s\'" | String format. This is the default type '
'for strings and |\n'
' | | may be '
@@ -5254,7 +5263,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'b\'" | Binary format. Outputs the number in '
'base 2. |\n'
' '
@@ -5316,7 +5325,7 @@ topics = {'assert': 'The "assert" statement\n'
'Meaning '
'|\n'
' '
'|===========|============================================================|\n'
'+===========+============================================================+\n'
' | "\'e\'" | Exponent notation. Prints the number in '
'scientific |\n'
' | | notation using the letter e to indicate '
@@ -6334,14 +6343,16 @@ topics = {'assert': 'The "assert" statement\n'
'"False" otherwise.\n'
'\n'
'For user-defined classes which do not define "__contains__()" but do\n'
'define "__iter__()", "x in y" is "True" if some value "z" with "x ==\n'
'z" is produced while iterating over "y". If an exception is raised\n'
'during the iteration, it is as if "in" raised that exception.\n'
'define "__iter__()", "x in y" is "True" if some value "z", for which\n'
'the expression "x is z or x == z" is true, is produced while '
'iterating\n'
'over "y". If an exception is raised during the iteration, it is as if\n'
'"in" raised that exception.\n'
'\n'
'Lastly, the old-style iteration protocol is tried: if a class defines\n'
'"__getitem__()", "x in y" is "True" if and only if there is a non-\n'
'negative integer index *i* such that "x == y[i]", and all lower\n'
'integer indices do not raise "IndexError" exception. (If any other\n'
'negative integer index *i* such that "x is y[i] or x == y[i]", and no\n'
'lower integer index raises the "IndexError" exception. (If any other\n'
'exception is raised, it is as if "in" raised that exception).\n'
'\n'
'The operator "not in" is defined to have the inverse truth value of\n'
@@ -6850,11 +6861,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
' Note: In order to have a coherent integer type class, '
'when\n'
' "__index__()" is defined "__int__()" should also be '
'defined, and\n'
' both should return the same value.\n'
' If "__int__()", "__float__()" and "__complex__()" are '
'not defined\n'
' then corresponding built-in functions "int()", "float()" '
'and\n'
' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -7025,7 +7036,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------------------------------------+---------------------------------------+\n'
'| Operator | '
'Description |\n'
'|=================================================|=======================================|\n'
'+=================================================+=======================================+\n'
'| "lambda" | '
'Lambda expression |\n'
'+-------------------------------------------------+---------------------------------------+\n'
@@ -8716,7 +8727,7 @@ topics = {'assert': 'The "assert" statement\n'
' in:\n'
'\n'
' class Philosopher:\n'
' def __init_subclass__(cls, default_name, '
' def __init_subclass__(cls, /, default_name, '
'**kwargs):\n'
' super().__init_subclass__(**kwargs)\n'
' cls.default_name = default_name\n'
@@ -9469,11 +9480,11 @@ topics = {'assert': 'The "assert" statement\n'
'numeric\n'
' object is an integer type. Must return an integer.\n'
'\n'
' Note: In order to have a coherent integer type class, '
'when\n'
' "__index__()" is defined "__int__()" should also be '
'defined, and\n'
' both should return the same value.\n'
' If "__int__()", "__float__()" and "__complex__()" are not '
'defined\n'
' then corresponding built-in functions "int()", "float()" '
'and\n'
' "complex()" fall back to "__index__()".\n'
'\n'
'object.__round__(self[, ndigits])\n'
'object.__trunc__(self)\n'
@@ -10269,7 +10280,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Representation | '
'Description |\n'
' '
'|=========================|===============================|\n'
'+=========================+===============================+\n'
' | "\\n" | Line '
'Feed |\n'
' '
@@ -10608,7 +10619,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
'|===================|===================================|=========|\n'
'+===================+===================================+=========+\n'
'| "\\newline" | Backslash and newline ignored '
'| |\n'
'+-------------------+-----------------------------------+---------+\n'
@@ -10654,7 +10665,7 @@ topics = {'assert': 'The "assert" statement\n'
'+-------------------+-----------------------------------+---------+\n'
'| Escape Sequence | Meaning | Notes '
'|\n'
'|===================|===================================|=========|\n'
'+===================+===================================+=========+\n'
'| "\\N{name}" | Character named *name* in the | '
'(4) |\n'
'| | Unicode database | '
@@ -11292,7 +11303,7 @@ topics = {'assert': 'The "assert" statement\n'
' | Attribute | Meaning '
'| |\n'
' '
'|===========================|=================================|=============|\n'
'+===========================+=================================+=============+\n'
' | "__doc__" | The functions documentation '
'| Writable |\n'
' | | string, or "None" if '
@@ -11769,33 +11780,36 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Special read-only attributes: "co_name" gives the function '
'name;\n'
' "co_argcount" is the number of positional arguments '
'(including\n'
' arguments with default values); "co_nlocals" is the number '
'of\n'
' local variables used by the function (including arguments);\n'
' "co_varnames" is a tuple containing the names of the local\n'
' variables (starting with the argument names); "co_cellvars" '
'is a\n'
' tuple containing the names of local variables that are\n'
' referenced by nested functions; "co_freevars" is a tuple\n'
' containing the names of free variables; "co_code" is a '
'string\n'
' representing the sequence of bytecode instructions; '
'"co_consts"\n'
' is a tuple containing the literals used by the bytecode;\n'
' "co_names" is a tuple containing the names used by the '
'bytecode;\n'
' "co_filename" is the filename from which the code was '
'compiled;\n'
' "co_firstlineno" is the first line number of the function;\n'
' "co_lnotab" is a string encoding the mapping from bytecode\n'
' offsets to line numbers (for details see the source code of '
' "co_argcount" is the total number of positional arguments\n'
' (including positional-only arguments and arguments with '
'default\n'
' values); "co_posonlyargcount" is the number of '
'positional-only\n'
' arguments (including arguments with default values);\n'
' "co_kwonlyargcount" is the number of keyword-only arguments\n'
' (including arguments with default values); "co_nlocals" is '
'the\n'
' interpreter); "co_stacksize" is the required stack size\n'
' (including local variables); "co_flags" is an integer '
'encoding a\n'
' number of flags for the interpreter.\n'
' number of local variables used by the function (including\n'
' arguments); "co_varnames" is a tuple containing the names of '
'the\n'
' local variables (starting with the argument names);\n'
' "co_cellvars" is a tuple containing the names of local '
'variables\n'
' that are referenced by nested functions; "co_freevars" is a\n'
' tuple containing the names of free variables; "co_code" is a\n'
' string representing the sequence of bytecode instructions;\n'
' "co_consts" is a tuple containing the literals used by the\n'
' bytecode; "co_names" is a tuple containing the names used by '
'the\n'
' bytecode; "co_filename" is the filename from which the code '
'was\n'
' compiled; "co_firstlineno" is the first line number of the\n'
' function; "co_lnotab" is a string encoding the mapping from\n'
' bytecode offsets to line numbers (for details see the source\n'
' code of the interpreter); "co_stacksize" is the required '
'stack\n'
' size (including local variables); "co_flags" is an integer\n'
' encoding a number of flags for the interpreter.\n'
'\n'
' The following flag bits are defined for "co_flags": bit '
'"0x04"\n'
@@ -12563,7 +12577,7 @@ topics = {'assert': 'The "assert" statement\n'
'+----------------------------+----------------------------------+------------+\n'
'| Operation | Result '
'| Notes |\n'
'|============================|==================================|============|\n'
'+============================+==================================+============+\n'
'| "x in s" | "True" if an item of *s* is '
'| (1) |\n'
'| | equal to *x*, else "False" '
@@ -12792,7 +12806,7 @@ topics = {'assert': 'The "assert" statement\n'
'+--------------------------------+----------------------------------+-----------------------+\n'
'| Operation | '
'Result | Notes |\n'
'|================================|==================================|=======================|\n'
'+================================+==================================+=======================+\n'
'| "s[i] = x" | item *i* of *s* is replaced '
'by | |\n'
'| | '
@@ -13254,7 +13268,7 @@ topics = {'assert': 'The "assert" statement\n'
'| Operation | '
'Result | Notes '
'|\n'
'|================================|==================================|=======================|\n'
'+================================+==================================+=======================+\n'
'| "s[i] = x" | item *i* of *s* is '
'replaced by | |\n'
'| | '

2052
Misc/NEWS.d/3.8.0b1.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
"make install" now runs compileall in parallel.

View File

@@ -1,16 +0,0 @@
To embed Python into an application, a new ``--embed`` option must be passed to
``python3-config --libs --embed`` to get ``-lpython3.8`` (link the application
to libpython). To support both 3.8 and older, try ``python3-config --libs
--embed`` first and fallback to ``python3-config --libs`` (without ``--embed``)
if the previous command fails.
Add a pkg-config ``python-3.8-embed`` module to embed Python into an
application: ``pkg-config python-3.8-embed --libs`` includes ``-lpython3.8``.
To support both 3.8 and older, try ``pkg-config python-X.Y-embed --libs`` first
and fallback to ``pkg-config python-X.Y --libs`` (without ``--embed``) if the
previous command fails (replace ``X.Y`` with the Python version).
On the other hand, ``pkg-config python3.8 --libs`` no longer contains
``-lpython3.8``. C extensions must not be linked to libpython (except on
Android, case handled by the script); this change is backward incompatible on
purpose.

View File

@@ -1,2 +0,0 @@
The :c:func:`PyEval_ReInitThreads` function has been removed from the C API.
It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` instead.

View File

@@ -1,3 +0,0 @@
Add new type flag ``Py_TPFLAGS_METHOD_DESCRIPTOR`` for objects behaving like
unbound methods. These are objects supporting the optimization given by the
``LOAD_METHOD``/``CALL_METHOD`` opcodes. See PEP 590.

View File

@@ -1,3 +0,0 @@
``Py_Main()`` now returns the exitcode rather than calling
``Py_Exit(exitcode)`` when calling ``PyErr_Print()`` if the current
exception type is ``SystemExit``.

View File

@@ -1,2 +0,0 @@
Implement :pep:`590`: Vectorcall: a fast calling protocol for CPython.
This is a new protocol to optimize calls of custom callable objects.

View File

@@ -1,4 +0,0 @@
Update :c:func:`PyObject_CallMethodObjArgs` and ``_PyObject_CallMethodIdObjArgs``
to use ``_PyObject_GetMethod`` to avoid creating a bound method object in many
cases.
Patch by Michael J. Sullivan.

View File

@@ -1,2 +0,0 @@
Fix crashes when attempting to use the *modulo* parameter when ``__ipow__``
is implemented in C.

View File

@@ -1 +0,0 @@
Implement the :pep:`587` "Python Initialization Configuration".

View File

@@ -1,2 +0,0 @@
Port binascii to PEP 489 multiphase initialization.
Patch by Marcel Plch.

View File

@@ -1 +0,0 @@
Remove cross-version binary compatibility requirement in tp_flags.

View File

@@ -1 +0,0 @@
Expose :func:`copy_file_range` as a low level API in the :mod:`os` module.

View File

@@ -1,2 +0,0 @@
Do not clear :data:`sys.flags` and :data:`sys.float_info` during shutdown.
Patch by Zackery Spytz.

View File

@@ -1,3 +0,0 @@
Added new trashcan macros to deal with a double deallocation that could occur
when the `tp_dealloc` of a subclass calls the `tp_dealloc` of a base class
and that base class uses the trashcan mechanism. Patch by Jeroen Demeyer.

View File

@@ -1 +0,0 @@
Added fix for broken symlinks in combination with pathlib

View File

@@ -1 +0,0 @@
Add native thread ID (TID) to threading.Thread objects (supported platforms: Windows, FreeBSD, Linux, macOS)

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