From 5f7862dc1f0ba7e47fc01acb7f7a2e0f68176924 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Mon, 31 Jul 2023 10:16:00 -0700 Subject: [PATCH] [3.12] GH-101291: Add warning to "what's new" that `PyLongObject` internals have changed. (GH-107388) (#107392) (cherry picked from commit 1ee605c5888fbc3d51b3e7610bac38ea6bc25e31) Co-authored-by: Mark Shannon --- Doc/whatsnew/3.12.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 2ec25eb25ec..fe912e8422e 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -1867,6 +1867,17 @@ Porting to Python 3.12 subinterpreter that they don't support (or haven't yet been loaded in). See :gh:`104668` for more info. +* :c:struct:`PyLongObject` has had its internals changed for better performance. + Although the internals of :c:struct:`PyLongObject` are private, they are used + by some extension modules. + The internal fields should no longer be accessed directly, instead the API + functions beginning ``PyLong_...`` should be used instead. + Two new *unstable* API functions are provided for efficient access to the + value of :c:struct:`PyLongObject`\s which fit into a single machine word: + + * :c:func:`PyUnstable_Long_IsCompact` + * :c:func:`PyUnstable_Long_CompactValue` + Deprecated ----------