PEP 573 updates (#1167)

* Remove stray reference to `ht_moduleptr`

* Update copyright info

* Remove the new slot for offsets

* Remove note on removed internal functions

* Remove stray reference to Py_TPFLAGS_HEAP_IMMUTABLE
This commit is contained in:
Petr Viktorin 2019-09-13 18:16:31 +01:00 committed by GitHub
parent e383e89c6b
commit 01ee996ad2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 34 deletions

View File

@ -332,25 +332,6 @@ must be heap-allocated.
On failure, exception is set and NULL is returned.
PyType_offsets
--------------
Some extension types are using instances with ``__dict__`` or ``__weakref__``
allocated. Currently, there is no way of passing offsets of these through
``PyType_Spec``. To allow this, a new structure and a spec slot are proposed.
A new structure, ``PyType_offsets``, will have two members containing the
offsets of ``__dict__`` and ``__weakref__``::
typedef struct {
Py_ssize_t dict;
Py_ssize_t weaklist;
} PyType_offsets;
The new slot, ``Py_offsets``, will be used to pass a ``PyType_offsets *``
structure containing the mentioned data.
Helpers
-------
@ -394,32 +375,21 @@ New types:
* ``PyCMethodObject``
New structures:
* ``PyType_offsets``
Modified functions:
* ``_PyMethodDef_RawFastCallDict`` now receives ``PyTypeObject *cls``.
* ``_PyMethodDef_RawFastCallKeywords`` now receives ``PyTypeObject *cls``.
Modified structures:
* _heaptypeobject - added ``ht_module`` and ``ht_moduleptr``
* _heaptypeobject - added ``ht_module``
Other changes:
* ``METH_METHOD`` call flag
* ``defining_class`` converter in clinic
* ``Py_TPFLAGS_HEAP_IMMUTABLE`` flag
* ``Py_offsets`` type spec slot
Backwards Compatibility
=======================
Two new pointers are added to all heap types.
All other changes are adding new functions, structures and a type flag,
All other changes are adding new functions and structures,
or changes to private implementation details.
Implementation
@ -475,8 +445,8 @@ References
Copyright
=========
This document has been placed in the public domain.
This document is placed in the public domain or under the
CC0-1.0-Universal license, whichever is more permissive.
..