Message393448
I know PyCode_NewWithPosOnlyArgs is declared as "PyAPI_FUNC" but that can't make it part of the ABI unless it has stable behavior.
It can't have stable behavior because its inputs are complex, undefined, have altered semantics and are interlinked in complex ways.
Passing the same arguments to PyCode_NewWithPosOnlyArgs for both 3.9 and 3.10 will cause one or other version to crash (interpreter crash, not just program crash).
We need to stop adding "PyAPI_FUNC" to everything.
Adding a PyAPI_FUNC does not magically make for ABI compatibility, there is a lot more to it than that.
The only sane ways to construct a code object are to load it from disk, to compile an AST, or to use
codeobject.replace(). Any purported ABI compatibility claims are just misleading and a trap.
I can revert the API changes and add a new function, but I think that is dangerously misleading. A compilation error is preferable to an interpreter crash. |
|
Date |
User |
Action |
Args |
2021-05-11 09:13:58 | Mark.Shannon | set | recipients:
+ Mark.Shannon, gvanrossum, rhettinger, petr.viktorin, chris.jerdonek, serhiy.storchaka, Guido.van.Rossum, ammar2, corona10, pablogsal, Dennis Sweeney, erlendaasland, Yonatan Goldschmidt, hauntsaninja |
2021-05-11 09:13:58 | Mark.Shannon | set | messageid: <1620724438.6.0.333335837598.issue40222@roundup.psfhosted.org> |
2021-05-11 09:13:58 | Mark.Shannon | link | issue40222 messages |
2021-05-11 09:13:58 | Mark.Shannon | create | |
|