From 1ee605c5888fbc3d51b3e7610bac38ea6bc25e31 Mon Sep 17 00:00:00 2001 From: Mark Shannon Date: Fri, 28 Jul 2023 17:07:33 +0100 Subject: [PATCH] GH-101291: Add warning to "what's new" that `PyLongObject` internals have changed. (GH-107388) --- 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 68e5b0691f0..99500e1f321 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -1865,6 +1865,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 ----------