A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2018-July/154747.html below:

[Python-Dev] Benchmarks why we need PEP 576/579/580

[Python-Dev] Benchmarks why we need PEP 576/579/580Jeroen Demeyer J.Demeyer at UGent.be
Mon Jul 23 08:16:00 EDT 2018
On 2018-07-23 00:28, Guido van Rossum wrote:
> So does your implementation of the PEP result in a net increase or
> decrease of the total lines of code?

12 files changed, 918 insertions(+), 704 deletions(-)

That's a net increase, so there is no obvious win here. Still, I have 
various excuses for this increased number of lines of code:

1. I'm adding more comments and lines containing only characters from 
the set " {};". This accounts for about 60% in the increase in number of 
lines of code. Clearly, this shouldn't count against me.

2. I still need to support some old ways of doing things. For backwards 
compatibility, functions and methods are still defined using a 
PyMethodDef. So I need to convert this old structure to the new 
protocol. I also keep support for some functions that my PEP makes 
obsolete, such as PyCFunction_Call(). All this requires code, but that 
code is simple.

3. In a few cases, specialized code is replaced by general code. For 
example, code that needs the __name__ of a function changes from 
accessing a known field in a C structure (func->m_ml->ml_name) to an 
actual Python attribute lookup. And Python code like

def __qualname__(func):
     name = func.__name__
     try:
         parent_qualname = func.__parent__.__qualname__
     except AttributeError:
         return name
     return str(parent_qualname) + "." + name

is conceptually pretty simple, but it becomes 37 lines of C code in my 
implementation.

4. The PEP does actually add a completely new feature: the flag 
CCALL_FUNCARG. That is something that I could easily remove for now, but 
PEP 580 would be a lot less useful without it. So it's something that I 
would certainly want to add in a later PEP anyway. It's also required 
for PEP 573.


Jeroen.
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4