What does pyperformance say about --enable-optimizations builds with all of those compiled out vs today?
I like the runtime safety checking for purposes of making the lives of Python C API users easier. But without the use of assertion enabled CPython builds being the norm during development (we should try to shift that norm in the community and make it the popular CI system default regardless), I'm concerned this would hurt the developers who need it most. Having some idea of what it actually gains us performance wise would be useful. -gps On Mon, Feb 7, 2022 at 3:30 PM Brett Cannon <br...@python.org> wrote: > > > On Mon, Feb 7, 2022 at 8:59 AM Victor Stinner <vstin...@python.org> wrote: > >> On Mon, Feb 7, 2022 at 5:48 PM Guido van Rossum <gu...@python.org> wrote: >> > So you're proposing to completely get rid of those three? >> >> I don't propose to remove them, but only call them if Python is built >> in debug mode. Or remove them from the release build, unless >> ./configure --with-assertions is used. >> >> >> > And you're sure that each and every single call to any of those is >> better off being an assert()? >> >> For many years, many C extensions raised an exception *and* returned a >> result: that's a bug. The strange part is that in some cases, the >> exceptions is somehow ignored and the program continues running fine. >> >> That's why I added _Py_CheckFunctionResult() and _Py_CheckSlotResult() >> which helped to catch such bugs. But before that, these programs were >> running fine :-) >> >> So it's not fully clear to me there was really a bug or it's just that >> Python became more pedantic :-) >> >> >> About PyErr_BadInternalCall(): in 10 years, I saw a few SystemError >> raised by this function, but usually when I hacked on Python. It's >> really rare to hit such bug. >> >> >> > (I still haven't gotten into the habit of building in debug mode by >> default, in part because it *isn't* the default when you invoke ./configure >> or PCbuild/build.bat.) >> >> If you don't develop C extensions, the release mode is faster and enough >> ;-) >> >> Ah. I don't know if CIs like GitHub Actions and Azure Pipelines >> provide Python debug builds. If if it's not the case, it would be nice >> to have the choice :-) >> > > They do not: > https://github.com/actions/python-versions/blob/797eb71c41e47d194f563c7ef01790d734534788/builders/ubuntu-python-builder.psm1#L35-L38 > . > _______________________________________________ > 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/VRISRYZVU47PQRWKHN77CV5545SKUI5O/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ 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/XNB4ZUTFJFRCDCG2HJ36INGH3PMLFMP6/ Code of Conduct: http://python.org/psf/codeofconduct/