diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index b2aa98bf718877d2f431d36fb24fbb1d979320e1..597e04e605cd1fe28aa0d58abe5b17b69cce7485 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1647,6 +1647,8 @@ of these candidate metaclasses. If none of the candidate metaclasses meets that criterion, then the class definition will fail with ``TypeError``. +.. _prepare: + Preparing the class namespace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index dd7ec26135cb86610f641594c0e3f81322b3ea48..17d2e9e440d6fffd199eb7633f7566135b8f5953 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -1455,6 +1455,10 @@ Other Improvements now works correctly (previously it silently returned the first python module in the file). (Contributed by Václav Šmilauer in :issue:`16421`.) +* A new opcode, :opcode:`LOAD_CLASSDEREF`, has been added to fix a bug in the + loading of free variables in class bodies that could be triggered by certain + uses of :ref:`__prepare__ <prepare>`. (Contributed by Benjamin Peterson in + :issue:`17853`.) Significant Optimizations @@ -1650,6 +1654,10 @@ Changes in 'python' command behavior how :envvar:`PATH` works. The behavior now conforms to the posix convention for :envvar:`PATH`. +* The [X refs, Y blocks] output of a debug (``--with-pydebug``) build of the + CPython interpreter is now off by default. It can be re-enabled using the + ``-X showrefcount`` option. (Contributed by Ezio Melotti in :issue:`17323`.) + Changes in the Python API -------------------------