https://github.com/python/cpython/commit/78b6bb9f1d392dfbe3c0e76416f083fe309e2b54 commit: 78b6bb9f1d392dfbe3c0e76416f083fe309e2b54 branch: 3.13 author: Peter Bierma <[email protected]> committer: ZeroIntensity <[email protected]> date: 2026-07-18T15:06:02Z summary:
[3.13] gh-141004: Document unstable perf map functions in `ceval.h` (GH-143492) (GH-153996) (cherry picked from commit 6453065db9ff31e3f737240030f8311d2b087851) Co-authored-by: Yashraj <[email protected]> files: M Doc/c-api/perfmaps.rst M Tools/check-c-api-docs/ignored_c_api.txt diff --git a/Doc/c-api/perfmaps.rst b/Doc/c-api/perfmaps.rst index 3d44d2eb6bf41d..11a00917dfa8c2 100644 --- a/Doc/c-api/perfmaps.rst +++ b/Doc/c-api/perfmaps.rst @@ -48,3 +48,43 @@ Note that holding the Global Interpreter Lock (GIL) is not required for these AP This is called by the runtime itself during interpreter shut-down. In general, there shouldn't be a reason to explicitly call this, except to handle specific scenarios such as forking. + +.. c:function:: int PyUnstable_CopyPerfMapFile(const char *parent_filename) + + Open the ``/tmp/perf-$pid.map`` file and append the content of *parent_filename* + to it. + + This function is available on all platforms but only generates output on platforms + that support perf maps (currently only Linux). On other platforms, it does nothing. + + .. versionadded:: 3.13 + +.. c:function:: int PyUnstable_PerfTrampoline_CompileCode(PyCodeObject *code) + + Compile the given code object using the current perf trampoline. + + The "current" trampoline is the one set by the runtime or the most recent + :c:func:`PyUnstable_PerfTrampoline_SetPersistAfterFork` call. + + If no trampoline is set, falls back to normal compilation (no perf map entry). + + :param code: The code object to compile. + :return: 0 on success, -1 on failure. + + .. versionadded:: 3.13 + +.. c:function:: int PyUnstable_PerfTrampoline_SetPersistAfterFork(int enable) + + Set whether the perf trampoline should persist after a fork. + + * If ``enable`` is true (non-zero): perf map file remains open/valid post-fork. + Child process inherits all existing perf map entries. + * If ``enable`` is false (zero): perf map closes post-fork. + Child process gets empty perf map. + + Default: false (clears on fork). + + :param enable: 1 to enable, 0 to disable. + :return: 0 on success, -1 on failure. + + .. versionadded:: 3.13 diff --git a/Tools/check-c-api-docs/ignored_c_api.txt b/Tools/check-c-api-docs/ignored_c_api.txt index 553e88c7fca8b7..e557c0aff26eb4 100644 --- a/Tools/check-c-api-docs/ignored_c_api.txt +++ b/Tools/check-c-api-docs/ignored_c_api.txt @@ -60,20 +60,6 @@ PyWrapperFlag_KEYWORDS PyFile_NewStdPrinter PyStdPrinter_Type Py_UniversalNewlineFgets -# cpython/setobject.h -PySet_MINSIZE -# cpython/ceval.h -PyUnstable_CopyPerfMapFile -PyUnstable_PerfTrampoline_CompileCode -PyUnstable_PerfTrampoline_SetPersistAfterFork -# cpython/genobject.h -PyAsyncGenASend_CheckExact -# cpython/longintrepr.h -PyLong_BASE -PyLong_MASK -PyLong_SHIFT -# cpython/pyerrors.h -PyException_HEAD # cpython/pyframe.h PyUnstable_EXECUTABLE_KINDS PyUnstable_EXECUTABLE_KIND_BUILTIN_FUNCTION @@ -142,3 +128,10 @@ PyUnicode_IS_READY PYTHON_ABI_VERSION PySequence_In PYOS_STACK_MARGIN +# Soft-deprecated in 3.14; will remain undocumented in 3.13 +PySet_MINSIZE +PyAsyncGenASend_CheckExact +PyLong_BASE +PyLong_MASK +PyLong_SHIFT +PyException_HEAD _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
