Nick Coghlan <ncogh...@gmail.com> added the comment:

(Note: this isn't SC feedback yet, it's individual contributor feedback from me)

As others noted, the reason we treat "Incompatible with Cython generated source 
code" distinctly from other C API source compatibility issues is because 
Cython-using projects often add the generated files to their source tarballs, 
so install targets only need a C compiler, not Cython itself. Even when it's a 
case where the older Cython generated code wasn't doing the right thing, 
there's pragmatic value in smoothing those transitions.

That said, I still agree with PEP 590's decision to re-use the existing reserve 
function pointer slot, rather than adding a new one to the end of the type 
structure indefinitely, which would make the compatibility measure:

1. In 3.8.0b2, move tp_print to the end of the structure (rather than removing 
it entirely) to make the "type->tp_print" in the old Cython generated code 
harmless rather than a compilation error
2. In 3.9.0a1, remove it entirely again

That way we still end up in the place we were aiming to get in PEP 590, we just 
take an extra step in getting there.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37250>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to