[Python-ideas] Runtime assertion with no overhead when not active
Eloi.Gaudry at fft.be
Mon May 7 05:58:37 EDT 2018
I didn't mean to replace the current (debug) assert but I wanted to add another one that would allow to be switch on or off on production builds.
The need for a new keyword (not syntax) comes from this difference.
I cannot think of another example that would convince you of the benefit of having a specific keyword for such a runtime assert. I do believe that having such a feature in non-debug build is more than interesting but indeed needed.
At some point, there should be a trade-off between to relying on a simple keyword/mechanism (for a runtime assert) versus the development cost of adding such a feature and maintaining it. Anyway, thanks for your feedback Serhiy, it helps.
From: Python-ideas <python-ideas-bounces+eloi.gaudry=fft.be at python.org> on behalf of Serhiy Storchaka <storchaka at gmail.com>
Sent: Saturday, May 5, 2018 17:44
To: python-ideas at python.org
Subject: Re: [Python-ideas] Runtime assertion with no overhead when not active
05.05.18 18:04, Eloi Gaudry пише:
> By 'self-contained', I meant that using the assert keyword and its
> expression is sufficient. An inline assertive expression as the one you
> describe does not fulfill this assert requirement.
Sufficient for what? And why writing with using the existing syntax is
> My proposal is simply to extend the current assert to non-debug builds
> and allow to switch it off/on at runtime.
The main property of the assert statement is that has a zero overhead in
non-debug run. If you remove this property, it will be not the assert
statement, and you will not need a special syntax support for writing
this runtime check.
> The syntax example I gave illustrated what I meant by syntax aware.
It doesn't illustrate why a new syntax is necessary. Or I can't
understand this illustration.
Python-ideas mailing list
Python-ideas at python.org
Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas