06.06.21 06:48, Guido van Rossum пише:
> On Fri, Jun 4, 2021 at 6:15 AM Victor Stinner <vstin...@python.org
> <mailto:vstin...@python.org>> wrote:
>     If possible, I would prefer to make PyThreadState, PyCodeObject and
>     other structures opaque, and only go through getter and setter
>     functions ;-) PyCode_New() is another problem :-/ The PEP 570 first
>     changed it to add a new parameter. It broke Cython and other projects.
>     The change was reverted, and PyCode_NewWithPosOnlyArgs() was added.
>     The lesson is that it's possible to change PyCodeObject without
>     breaking PyCode_New() (which handles the "backward compatibility" for
>     you).
> 
> 
> I'm afraid that won't always be possible though. At some point there
> just may not be a valid meaning for the original PyCode_New() call. It
> was easy in the case of positional arguments (by default don't have any)
> but it may not always be that simple, and we shouldn't make guarantees here.

We have already reached this limit. In 3.11 the code object needs a
table of exception handlers. Only simplest code which do not contain any
"try" or "with" can now be created with old PyCode_New() and
PyCode_NewWithPosOnlyArgs().

_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/G5Y5DD4T3ZSJ4DYWFZH4TFVNHJHBN5K2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to