Clarify `Self` interaction with subclasses (GH-107511)
(cherry picked from commit c8872f4285)
Co-authored-by: Alexandru Mărășteanu <alexei@users.noreply.github.com>
gh-105766: Document that Custom Allocators Must Be Thread-Safe (gh-107519)
(cherry picked from commit db361a340a)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
gh-99113: Add a What's New Entry for PEP 684 (gh-107520)
(cherry picked from commit 79e479c45f)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
gh-107306: Add a Doc Entry for Py_mod_multiple_interpreters (GH-107403)
It was added in 3.12 for PEP 684 (per-interpreter GIL).
(cherry picked from commit fb344e99aa)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
Summarise the goals of Argument Clinic in a single sentence.
Mention that Argument Clinic was introduced with PEP-436.
(cherry picked from commit abb71c6a8f)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
gh-105578: Add more usage examples to `typing.AnyStr` docs (GH-107045)
``typing.AnyStr`` has different semantics to ``str | bytes``, which often leads to user confusion
(cherry picked from commit f877b32b87)
Co-authored-by: Michael The <michael-the1@users.noreply.github.com>
gh-105699: Use a _Py_hashtable_t for the PyModuleDef Cache (gh-106974)
This fixes a crasher due to a race condition, triggered infrequently when two isolated (own GIL) subinterpreters simultaneously initialize their sys or builtins modules. The crash happened due the combination of the "detached" thread state we were using and the "last holder" logic we use for the GIL. It turns out it's tricky to use the same thread state for different threads. Who could have guessed?
We solve the problem by eliminating the one object we were still sharing between interpreters. We replace it with a low-level hashtable, using the "raw" allocator to avoid tying it to the main interpreter.
We also remove the accommodations for "detached" thread states, which were a dubious idea to start with.
(cherry picked from commit 8ba4df91ae)
gh-107307: Update the importlib Docs for PEP 684 (gh-107400)
(cherry picked from commit cf63df88d3)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
gh-107305: Update the C-API Docs for PEP 684 (gh-107324)
(cherry picked from commit c0b81c4b54)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
Declare the following functions as macros, since they are actually
macros. It avoids a warning on "TYPE" or "macro" argument.
* PyMem_New()
* PyMem_Resize()
* PyModule_AddIntMacro()
* PyModule_AddStringMacro()
* PyObject_GC_New()
* PyObject_GC_NewVar()
* PyObject_New()
* PyObject_NewVar()
Add C standard C types to nitpick_ignore in Doc/conf.py:
* int64_t
* uint64_t
* uintptr_t
No longer ignore non existing "__int" type in nitpick_ignore.
Update Doc/tools/.nitignore.
(cherry picked from commit 8d61a71f9c)
Co-authored-by: Victor Stinner <vstinner@python.org>
Bump some docs dependencies to resolve a Dependabot security alert (GH-107341)
(cherry picked from commit f84d77b4e0)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Add targets for PyStructSequence_Desc and PyStructSequence_Field members
and macros like Py_EQ.
Fix target for Py_RETURN_RICHCOMPARE.
(cherry picked from commit abec9a1b20)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Instead, order the tutorial as one body of prose, making it easier to
align the tutorial according to Diátaxis principles.
(cherry picked from commit 592395577c)
Co-authored-by: Erlend E. Aasland <erlend@python.org>
Document that `os.link()` is not available on Emscripten (GH-104822)
(cherry picked from commit 737d1da074)
Co-authored-by: Roman Yurchak <rth.yurchak@gmail.com>
gh-106948: Update documentation nitpick_ignore for c:identifer domain (GH-107295)
Update the nitpick_ignore of the documentation configuration to fix
Sphinx warnings about standard C types when declaring functions with
the "c:function" markups.
Copy standard C types declared in the "c:type" domain to the
"c:identifier" domain, since "c:function" markup looks for types in
the "c:identifier" domain.
(cherry picked from commit b1de3807b8)
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Fix PyVectorcall_Function doc versionadded (GH-107140)
The documentation implies that PyVectorcall_Function() was available in Python 3.8.
This is half-true - it was available under a different name. I think it's clearer to set
the "version added" to 3.9.
(cherry picked from commit 0a9b339363)
Co-authored-by: da-woods <dw-git@d-woods.co.uk>
The "New Modules" section was left in place to ensure that the anchor
link for new modules will still exist:
/whatsnew/3.12.htmlGH-new-modules
/whatsnew/3.10.htmlGH-new-modules
This means that existing links to this section don't break.
(cherry picked from commit 6dbffaed17)
Co-authored-by: Sebastiaan Zeeff <33516116+SebastiaanZ@users.noreply.github.com>