8000 Merge branch 'main' into inlinecomp2 · python/cpython@6c5f269 · GitHub
[go: up one dir, main page]

Skip to content
10000

Commit 6c5f269

Browse files
committed
Merge branch 'main' into inlinecomp2
* main: (50 commits) gh-102674: Remove _specialization_stats from Lib/opcode.py (#102685) gh-102660: Handle m_copy Specially for the sys and builtins Modules (gh-102661) gh-102354: change python3 to python in docs examples (#102696) gh-81057: Add a CI Check for New Unsupported C Global Variables (gh-102506) GH-94851: check unicode consistency of static strings in debug mode (#102684) gh-100315: clarification to `__slots__` docs. (#102621) GH-100227: cleanup initialization of global interned dict (#102682) doc: Remove a duplicate 'versionchanged' in library/asyncio-task (gh-102677) gh-102013: Add PyUnstable_GC_VisitObjects (#102014) GH-102670: Use sumprod() to simplify, speed up, and improve accuracy of statistics functions (GH-102649) gh-102627: Replace address pointing toward malicious web page (#102630) gh-98831: Use DECREF_INPUTS() more (#102409) gh-101659: Avoid Allocation for Shared Exceptions in the _xxsubinterpreters Module (gh-102659) gh-101524: Fix the ChannelID tp_name (gh-102655) gh-102069: Fix `__weakref__` descriptor generation for custom dataclasses (#102075) gh-98169 dataclasses.astuple support DefaultDict (#98170) gh-102650: Remove duplicate include directives from multiple source files (#102651) GH-100987: Don't cache references to the names and consts array in `_PyEval_EvalFrameDefault`. (#102640) gh-87092: refactor assemble() to a number of separate functions, which do not need the compiler struct (#102562) gh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (#102631) ...
2 parents b52046b + d77c487 commit 6c5f269

File tree

162 files changed

+5997
-1267
lines changed
  • Parser
  • Programs
  • Python
  • Tools
  • Some content is hidden

    Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

    162 files changed

    +5997
    -1267
    lines changed

    .github/workflows/build.yml

    Lines changed: 3 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -111,6 +111,9 @@ jobs:
    111111
    run: make smelly
    112112
    - name: Check limited ABI symbols
    113113
    run: make check-limited-abi
    114+
    - name: Check for unsupported C global variables
    115+
    if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
    116+
    run: make check-c-globals
    114117

    115118
    build_win32:
    116119
    name: 'Windows (x86)'

    Doc/c-api/gcsupport.rst

    Lines changed: 33 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -228,3 +228,36 @@ garbage collection runs.
    228228
    Returns the current state, 0 for disabled and 1 for enabled.
    229229
    230230
    .. versionadded:: 3.10
    231+
    232+
    233+
    Querying Garbage Collector State
    234+
    --------------------------------
    235+
    236+
    The C-API provides the following interface for querying information about
    237+
    the garbage collector.
    238+
    239+
    .. c:function:: void PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void *arg)
    240+
    241+
    Run supplied *callback* on all live GC-capable objects. *arg* is passed through to
    242+
    all invocations of *callback*.
    243+
    244+
    .. warning::
    245+
    If new objects are (de)allocated by the callback it is undefined if they
    246+
    will be visited.
    247+
    248+
    Garbage collection is disabled during operation. Explicitly running a collection
    249+
    in the callback may lead to undefined behaviour e.g. visiting the same objects
    250+
    multiple times or not at all.
    251+
    252+
    .. versionadded:: 3.12
    253+
    254+
    .. c:type:: int (*gcvisitobjects_t)(PyObject *object, void *arg)
    255+
    256+
    Type of the visitor function to be passed to :c:func:`PyUnstable_GC_VisitObjects`.
    257+
    *arg* is the same as the *arg* passed to ``PyUnstable_GC_VisitObjects``.
    258+
    Return ``0`` to continue iteration, return ``1`` to stop iteration. Other return
    259+
    values are reserved for now so behavior on returning anything else is undefined.
    260+
    261+
    .. versionadded:: 3.12
    262+
    263+

    Doc/library/__main__.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -259,7 +259,7 @@ one mentioned below are preferred.
    259259

    260260
    See :mod:`venv` for an example of a package with a minimal ``__main__.py``
    261261
    in the standard library. It doesn't contain a ``if __name__ == '__main__'``
    262-
    block. You can invoke it with ``python3 -m venv [directory]``.
    262+
    block. You can invoke it with ``python -m venv [directory]``.
    263263

    264264
    See :mod:`runpy` for more details on the :option:`-m` flag to the
    265265
    interpreter executable.

    Doc/library/asyncio-task.rst

    Lines changed: 0 additions & 3 deletions
    Original file line numberDiff line numberDiff line change
    @@ -814,9 +814,6 @@ Waiting Primitives
    814814
    Raises :exc:`TimeoutError` if the timeout occurs before
    815815
    all Futures are done.
    816816

    817-
    .. versionchanged:: 3.10
    818-
    Removed the *loop* parameter.
    819-
    820817
    Example::
    821818

    822819
    for coro in as_completed(aws):

    Doc/library/base64.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -58,7 +58,7 @@ The modern interface provides:
    5858
    This allows an application to e.g. generate URL or filesystem safe Base64
    5959
    strings. The default is ``None``, for which the standard Base64 alphabet is used.
    6060

    61-
    May assert or raise a a :exc:`ValueError` if the length of *altchars* is not 2. Raises a
    61+
    May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2. Raises a
    6262
    :exc:`TypeError` if *altchars* is not a :term:`bytes-like object`.
    6363

    6464

    Doc/library/concurrent.futures.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -202,7 +202,7 @@ ThreadPoolExecutor Example
    202202
    'http://www.cnn.com/',
    203203
    'http://europe.wsj.com/',
    204204
    'http://www.bbc.co.uk/',
    205-
    'http://some-made-up-domain.com/']
    205+
    'http://nonexistant-subdomain.python.org/']
    206206

    207207
    # Retrieve a single page and report the URL and contents
    208208
    def load_url(url, timeout):

    Doc/library/dataclasses.rst

    Lines changed: 5 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -389,7 +389,7 @@ Module contents
    389389
    :func:`astuple` raises :exc:`TypeError` if ``obj`` is not a dataclass
    390390
    instance.
    391391

    392-
    .. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False)
    392+
    .. function:: make_dataclass(cls_name, fields, *, bases=(), namespace=None, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False, weakref_slot=False, module=None)
    393393

    394394
    Creates a new dataclass with name ``cls_name``, fields as defined
    395395
    in ``fields``, base classes as given in ``bases``, and initialized
    @@ -401,6 +401,10 @@ Module contents
    401401
    ``match_args``, ``kw_only``, ``slots``, and ``weakref_slot`` have
    402402
    the same meaning as they do in :func:`dataclass`.
    403403

    404+
    If ``module`` is defined, the ``__module__`` attribute
    405+
    of the dataclass is set to that value.
    406+
    By default, it is set to the module name of the caller.
    407+
    404408
    This function is not strictly required, because any Python
    405409
    mechanism for creating a new class with ``__annotations__`` can
    406410
    then apply the :func:`dataclass` function to convert that class to

    Doc/library/dis.rst

    Lines changed: 3 additions & 3 deletions
    Original file line numberDiff line numberDiff line change
    @@ -57,9 +57,9 @@ the following command can be used to display the disassembly of
    5757
    2 0 RESUME 0
    5858
    <BLANKLINE>
    5959
    3 2 LOAD_GLOBAL 1 (NULL + len)
    60-
    14 LOAD_FAST 0 (alist)
    61-
    16 CALL 1
    62-
    26 RETURN_VALUE
    60+
    12 LOAD_FAST 0 (alist)
    61+
    14 CALL 1
    62+
    24 RETURN_VALUE
    6363

    6464
    (The "2" is a line number).
    6565

    Doc/library/importlib.metadata.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -73,7 +73,7 @@ something into it:
    7373

    7474
    .. code-block:: shell-session
    7575
    76-
    $ python3 -m venv example
    76+
    $ python -m venv example
    7777
    $ source example/bin/activate
    7878
    (example) $ python -m pip install wheel
    7979

    Doc/library/inspect.rst

    Lines changed: 26 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -1440,8 +1440,8 @@ code execution::
    14401440
    pass
    14411441

    14421442

    1443-
    Current State of Generators and Coroutines
    1444-
    ------------------------------------------
    1443+
    Current State of Generators, Coroutines, and Asynchronous Generators
    1444+
    --------------------------------------------------------------------
    14451445

    14461446
    When implementing coroutine schedulers and for other advanced uses of
    14471447
    generators, it is useful to determine whether a generator is currently
    @@ -1476,6 +1476,22 @@ generator to be determined easily.
    14761476

    14771477
    .. versionadded:: 3.5
    14781478

    1479+
    .. function:: getasyncgenstate(agen)
    1480+
    1481+
    Get current state of an asynchronous generator object. The function is
    1482+
    intended to be used with asynchronous iterator objects created by
    1483+
    :keyword:`async def` functions which use the :keyword:`yield` statement,
    1484+
    but will accept any asynchronous generator-like object that has
    1485+
    ``ag_running`` and ``ag_frame`` attributes.
    1486+
    1487+
    Possible states are:
    1488+
    * AGEN_CREATED: Waiting to start execution.
    1489+
    * AGEN_RUNNING: Currently being executed by the interpreter.
    1490+
    * AGEN_SUSPENDED: Currently suspended at a yield expression.
    1491+
    * AGEN_CLOSED: Execution has completed.
    1492+
    1493+
    .. versionadded:: 3.12
    1494+
    14791495
    The current internal state of the generator can also be queried. This is
    14801496
    mostly useful for testing purposes, to ensure that internal state is being
    14811497
    updated as expected:
    @@ -1507,6 +1523,14 @@ updated as expected:
    15071523

    15081524
    .. versionadded:: 3.5
    15091525

    1526+
    .. function:: getasyncgenlocals(agen)
    1527+
    1528+
    This function is analogous to :func:`~inspect.getgeneratorlocals`, but
    1529+
    works for asynchronous generator objects created by :keyword:`async def`
    1530+
    functions which use the :keyword:`yield` statement.
    1531+
    1532+
    .. versionadded:: 3.12
    1533+
    15101534

    15111535
    .. _inspect-module-co-flags:
    15121536

    Doc/library/os.rst

    Lines changed: 63 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -2188,6 +2188,69 @@ features:
    21882188
    Accepts a :term:`path-like object`.
    21892189

    21902190

    2191+
    .. function:: listdrives()
    2192+
    2193+
    Return a list containing the names of drives on a Windows system.
    2194+
    2195+
    A drive name typically looks like ``'C:\\'``. Not every drive name
    2196+
    will be associated with a volume, and some may be inaccessible for
    2197+
    a variety of reasons, including permissions, network connectivity
    2198+
    or missing media. This function does not test for access.
    2199+
    2200+
    May raise :exc:`OSError` if an error occurs collecting the drive
    2201+
    names.
    2202+
    2203+
    .. audit-event:: os.listdrives "" os.listdrives
    2204+
    2205+
    .. availability:: Windows
    2206+
    2207+
    .. versionadded:: 3.12
    2208+
    2209+
    2210+
    .. function:: listmounts(volume)
    2211+
    2212+
    Return a list containing the mount points for a volume on a Windows
    2213+
    system.
    2214+
    2215+
    *volume* must be represented as a GUID path, like those returned by
    2216+
    :func:`os.listvolumes`. Volumes may be mounted in multiple locations
    2217+
    or not at all. In the latter case, the list will be empty. Mount
    2218+
    points that are not associated with a volume will not be returned by
    2219+
    this function.
    2220+
    2221+
    The mount points return by this function will be absolute paths, and
    2222+
    may be longer than the drive name.
    2223+
    2224+
    Raises :exc:`OSError` if the volume is not recognized or if an error
    2225+
    occurs collecting the paths.
    2226+
    2227+
    .. audit-event:: os.listmounts volume os.listmounts
    2228+
    2229+
    .. availability:: Windows
    2230+
    2231+
    .. versionadded:: 3.12
    2232+
    2233+
    2234+
    .. function:: listvolumes()
    2235+
    2236+
    Return a list containing the volumes in the system.
    2237+
    2238+
    Volumes are typically represented as a GUID path that looks like
    2239+
    ``\\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\``. Files can
    2240+
    usually be accessed through a GUID path, permissions allowing.
    2241+
    However, users are generally not familiar with them, and so the
    2242+
    recommended use of this function is to retrieve mount points
    2243+
    using :func:`os.listmounts`.
    2244+
    2245+
    May raise :exc:`OSError` if an error occurs collecting the volumes.
    2246+
    2247+
    .. audit-event:: os.listvolumes "" os.listvolumes
    2248+
    2249+
    .. availability:: Windows
    2250+
    2251+
    .. versionadded:: 3.12
    2252+
    2253+
    21912254
    .. function:: lstat(path, *, dir_fd=None)
    21922255

    21932256
    Perform the equivalent of an :c:func:`lstat` system call on the given path.

    Doc/library/pdb.rst

    Lines changed: 2 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -58,7 +58,7 @@ of the debugger is::
    5858
    :file:`pdb.py` can also be invoked as a script to debug other scripts. For
    5959
    example::
    6060

    61-
    python3 -m pdb myscript.py
    61+
    python -m pdb myscript.py
    6262

    6363
    When invoked as a script, pdb will automatically enter post-mortem debugging if
    6464
    the program being debugged exits abnormally. After post-mortem debugging (or
    @@ -72,7 +72,7 @@ useful than quitting the debugger upon program's exit.
    7272

    7373
    .. versionadded:: 3.7
    7474
    :file:`pdb.py` now accepts a ``-m`` option that execute modules similar to the way
    75-
    ``python3 -m`` does. As with a script, the debugger will pause execution just
    75+
    ``python -m`` does. As with a script, the debugger will pause execution just
    7676
    before the first line of the module.
    7777

    7878

    Doc/library/subprocess.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -1622,7 +1622,7 @@ that.
    16221622
    It is safe to set these to false on any Python version. They will have no
    16231623
    effect on older versions when unsupported. Do not assume the attributes are
    16241624
    available to read. Despite their names, a true value does not indicate that the
    1625-
    corresponding function will be used, only that that it may be.
    1625+
    corresponding function will be used, only that it may be.
    16261626

    16271627
    Please file issues any time you have to use these private knobs with a way to
    16281628
    reproduce the issue you were seeing. Link to that issue from a comment in your

    Doc/library/threading.rst

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -272,7 +272,7 @@ The instance's values will be different for separate threads.
    272272
    A class that represents thread-local data.
    273273

    274274
    For more details and extensive examples, see the documentation string of the
    275-
    :mod:`_threading_local` module.
    275+
    :mod:`_threading_local` module: :source:`Lib/_threading_local.py`.
    276276

    277277

    278278
    .. _thread-objects:

    0 commit comments

    Comments
     (0)
    0