Hello!
I'm replying to clarifying a few things about HPy since it was mentioned:
On Mon, Feb 1, 2021 at 12:07 PM Petr Viktorin <encukou@gmail.com> wrote:
Besides the non-opaque PyObject*, the worst thing that prevents "evolution" now is IMO that built-in static types like PyList_Type are exposed in the API
There are the two core things that HPy addresses. Making PyObject* opaque is the bigger of the two changes, because it affects the majority of API methods. HPy attempts to address both of these issues in a "minimalist" way in the sense that although it is a whole new API, it tries to be the obvious conversion from the old API.
PEP 620 has many things, some of which conflict with the accepted PEP 387. I don't think all of it is a good plan (and I guess that's why it wasn't accepted).
HPy and PEP 620 are largely unrelated. They are inspired by some of the same issues, but are completely different things. HPy can (and in the case of CPython is being) implemented on top of the existing C API, and so doesn't require a PEP.
Perhaps once HPy is more mature, CPython's API will evolve to support HPy a little better or to make porting from the old API to HPy easier, but it's likely still slightly premature to be trying to imagine what those changes are, although generally hiding parts of PyObject* or global state like static types is likely to be helpful.
Yours sincerely, Simon Cross