Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -278,13 +278,13 @@ jobs:
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
# supported by important vendors such as AWS-LC.
- { name: openssl, version: 1.1.1w }
- { name: openssl, version: 3.0.20 }
- { name: openssl, version: 3.3.7 }
- { name: openssl, version: 3.4.5 }
- { name: openssl, version: 3.5.6 }
- { name: openssl, version: 3.6.2 }
- { name: openssl, version: 3.0.19 }
- { name: openssl, version: 3.3.6 }
- { name: openssl, version: 3.4.4 }
- { name: openssl, version: 3.5.5 }
- { name: openssl, version: 3.6.1 }
## AWS-LC
- { name: aws-lc, version: 1.72.1 }
- { name: aws-lc, version: 1.68.0 }
env:
SSLLIB_VER: ${{ matrix.ssllib.version }}
MULTISSL_DIR: ${{ github.workspace }}/multissl
Expand Down Expand Up @@ -398,7 +398,7 @@ jobs:
needs: build-context
if: needs.build-context.outputs.run-ubuntu == 'true'
env:
OPENSSL_VER: 3.5.6
OPENSSL_VER: 3.5.5
PYTHONSTRICTEXTENSIONBUILD: 1
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down Expand Up @@ -506,7 +506,7 @@ jobs:
matrix:
os: [ubuntu-24.04]
env:
OPENSSL_VER: 3.5.6
OPENSSL_VER: 3.5.5
PYTHONSTRICTEXTENSIONBUILD: 1
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reusable-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
runs-on: ${{ inputs.os }}
timeout-minutes: 60
env:
OPENSSL_VER: 3.5.6
OPENSSL_VER: 3.5.5
PYTHONSTRICTEXTENSIONBUILD: 1
TERM: linux
steps:
Expand Down
6 changes: 0 additions & 6 deletions Doc/deprecations/pending-removal-in-3.18.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,3 @@ Pending removal in Python 3.18
specifier ``'N'``, which is only supported in the :mod:`!decimal` module's
C implementation, has been deprecated since Python 3.13.
(Contributed by Serhiy Storchaka in :gh:`89902`.)

* Deprecations defined by :pep:`829`:

* ``import`` lines in :file:`{name}.pth` files are silently ignored.

(Contributed by Barry Warsaw in :gh:`148641`.)
10 changes: 0 additions & 10 deletions Doc/deprecations/pending-removal-in-3.20.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,6 @@ Pending removal in Python 3.20

(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)

* Deprecations defined by :pep:`829`:

* Warnings are produced for ``import`` lines found in :file:`{name}.pth`
files.

* :file:`{name}.pth` files are no longer decoded in the locale encoding by
default. They **MUST** be encoded in ``utf-8-sig``.

(Contributed by Barry Warsaw in :gh:`148641`.)

* :mod:`ast`:

* Creating instances of abstract AST nodes (such as :class:`ast.AST`
Expand Down
12 changes: 1 addition & 11 deletions Doc/library/pkgutil.rst
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ support.
The :mod:`importlib.resources` module provides structured access to
module resources.

.. function:: resolve_name(name, *, strict=False)
.. function:: resolve_name(name)

Resolve a name to an object.

Expand All @@ -208,7 +208,6 @@ support.

* ``W(.W)*``
* ``W(.W)*:(W(.W)*)?``
* ``W(.W)*:(W(.W)*)``

The first form is intended for backward compatibility only. It assumes that
some part of the dotted name is a package, and the rest is an object
Expand All @@ -223,11 +222,6 @@ support.
hierarchy within that package. Only one import is needed in this form. If
it ends with the colon, then a module object is returned.

The first two forms are accepted when ``strict=False`` (the default).

The third form requires both the module name and callable, separated by
a colon. Only this form is accepted when ``strict=True``.

The function will return an object (which might be a module), or raise one
of the following exceptions:

Expand All @@ -239,7 +233,3 @@ support.
hierarchy within the imported package to get to the desired object.

.. versionadded:: 3.9

.. versionchanged:: 3.15

The optional keyword-only ``strict`` flag was added.
122 changes: 2 additions & 120 deletions Doc/library/profiling.sampling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,6 @@ Attach to a running process by PID::

python -m profiling.sampling attach 12345

Print a single snapshot of a running process's stack::

python -m profiling.sampling dump 12345

Use live mode for real-time monitoring (press ``q`` to quit)::

python -m profiling.sampling run --live script.py
Expand All @@ -177,9 +173,8 @@ Enable opcode-level profiling to see which bytecode instructions are executing::
Commands
========

Tachyon operates through several subcommands. ``run`` and ``attach`` collect
samples over time; ``dump`` captures a single snapshot; ``replay`` converts
binary profiles to other formats.
Tachyon operates through two subcommands that determine how to obtain the
target process.


The ``run`` command
Expand Down Expand Up @@ -222,78 +217,6 @@ On most systems, attaching to another process requires appropriate permissions.
See :ref:`profiling-permissions` for platform-specific requirements.


.. _dump-command:

The ``dump`` command
--------------------

The ``dump`` command prints a single snapshot of a running process's Python
stack and exits, similar to a traceback::

python -m profiling.sampling dump 12345

Unlike ``attach``, ``dump`` does not run a sampling loop: it reads the
stack once. This is useful for investigating hung or unresponsive
processes, or for answering "what is this process doing right now?".

The output mirrors a traceback (most recent call last) and annotates each
thread with its current state (main thread, has GIL, on CPU, waiting for
GIL, has exception, or idle):

.. code-block:: text

Stack dump for PID 12345, thread 140735 (main thread, has GIL, on CPU; most recent call last):
File "server.py", line 28, in serve
await handle_request(req)
File "handler.py", line 91, in handle_request
result = expensive_call(req)

When the target's source files are readable, ``dump`` prints the source
line for each frame and highlights the executing expression.

Like ``attach``, ``dump`` requires permission to read the target process's
memory. See :ref:`profiling-permissions`.

The ``dump`` command supports the following options:

``-a``, ``--all-threads``
Dump every thread in the target process. Without this flag only the main
thread is shown.

``--native``
Include synthetic ``<native>`` frames marking transitions into C
extensions or other non-Python code.

``--no-gc``
Hide the synthetic ``<GC>`` frames that mark active garbage collection.

``--opcodes``
Annotate each frame with the bytecode opcode the thread is currently
executing (for example, ``opcode=CALL_KW``). Useful for
instruction-level investigation, including identifying specializations
chosen by the adaptive interpreter.

``--async-aware``
Reconstruct stacks across ``await`` boundaries. ``dump`` walks the task
graph and emits one section per task, with ``<task>`` markers separating
coroutines awaiting each other.

``--async-mode {running,all}``
Controls which tasks are included when ``--async-aware`` is enabled.
``running`` shows only the task currently executing on each thread;
``all`` (the default for ``dump``) also includes tasks suspended on a
wait. ``attach``'s default for this flag is ``running``; ``dump``
defaults to ``all`` because a single snapshot is most useful when it
shows the full task graph.

``--blocking``
Pause every thread in the target while reading its stack and resume
them after. Guarantees a fully consistent snapshot at the cost of
briefly stopping the target. Without it, ``dump`` reads memory while
the target keeps running, which is faster but can occasionally produce
a torn stack.


.. _replay-command:

The ``replay`` command
Expand Down Expand Up @@ -1518,52 +1441,11 @@ Global options

Attach to and profile a running process by PID.

.. option:: dump

Print a single one-shot snapshot of a running process's Python stack.

.. option:: replay

Convert a binary profile file to another output format.


Dump options
------------

The following options apply to the ``dump`` subcommand:

.. option:: -a, --all-threads

Dump all threads in the target process instead of just the main thread.

.. option:: --native

Include ``<native>`` frames for non-Python code.

.. option:: --no-gc

Exclude ``<GC>`` frames for active garbage collection.

.. option:: --opcodes

Show bytecode opcode names when available.

.. option:: --async-aware

Reconstruct the stack across ``await`` boundaries for asyncio
applications.

.. option:: --async-mode <mode>

Async stack mode: ``running`` (only the running task) or ``all``
(all tasks including waiting). Defaults to ``all`` for ``dump``.
Requires :option:`--async-aware`.

.. option:: --blocking

Pause all threads in the target process while reading the stack.


Sampling options
----------------

Expand Down
Loading