
Le ven. 10 avr. 2020 à 22:00, Antoine Pitrou <solipsis@pitrou.net> a écrit :
Debug runtime and remove debug checks in release mode .....................................................
If the C extensions are no longer tied to CPython internals, it becomes possible to switch to a Python runtime built in debug mode to enable runtime debug checks to ease debugging C extensions.
That's the one convincing feature in this PEP, as far as I'm concerned.
In fact, I already implemented this feature in Python 3.8: https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-... Feature implemented on most platforms, except on Android, Cygwin and Windows sadly. You can now switch between a release build of Python and a debug build of Python without having to rebuild your C extensions which were compiled in release mode. If you want, you can use a debug build of some C extensions.You now have many options: the debug ABI is now compatible with the release ABI. This PEP section is mostly a call to remove debug checks in release mode :-) In my latest attempt, I failed to explain that the debug build is now easy enough to be used by developers in practice (I never finished my article explaining how to use it): https://bugs.python.org/issue37406 Steve: the use case is to debug very rare Python crashes (ex: once every two months) of customers who fail to provide a reproducer. My *expectation* is that a debug build should help to reproduce the bug and/or provide more information when the bug happens. My motivation for this feature is also to show that the bug is not on Python but in third-party C extensions ;-) Victor -- Night gathers, and now my watch begins. It shall not end until my death.