Message372775
The goal of issue 39573 is to make "PyObject" and opaque structure in the limited API.
To do that, a few mandatory changes will be required to CPython in order to allow for seamless implementation.
Namely:
1) User types need to get away from directly referencing PyObject.
- This can be done by adding a new variable to "PyTypeObject" who's value is an offset into the object's pointer to the type's internal structure.
-- Example: 'PyType_Type.tp_obj_offset' would be the value of "sizeof(PyVarObject)".
-- For custom types with another base: The value would be calculated from the base's "tp_obj_offset" + "tp_basicsize"
2) Create a linkable static library to facility method calls requiring internal implementation.
- This static library will be implementation defined, IE: using internal methods specific to the runtime that created it.
- Public facing methods will use generic names for example, "PyObject_GetType" will get the object's ob_type (or whatever the target runtime calls it). |
|
Date |
User |
Action |
Args |
2020-07-01 17:43:02 | WildCard65 | set | recipients:
+ WildCard65, vstinner |
2020-07-01 17:43:02 | WildCard65 | set | messageid: <1593625382.35.0.32807501167.issue41188@roundup.psfhosted.org> |
2020-07-01 17:43:02 | WildCard65 | link | issue41188 messages |
2020-07-01 17:43:02 | WildCard65 | create | |
|