Stefan Behnel added the comment:

I do not see this as a matter of performance but as a matter of usability. 
Basically, CPython could do just fine with just a single catch-all calling 
convention that packs all pos/kw arguments into C arguments and passes them 
over, leaving it entirely to the callee to handle them. Why does it not do 
that? Because it's cumbersome for the callee to analyse what kind of arguments 
it received and how to handle them.

A surprisingly large number of functions take only a single argument, that's 
why METH_O exists. Many functions take no keyword arguments, that's why VARARGS 
and KEYWORDS are separate options. The same should apply to FASTCALL. Also with 
that, many implementors will not want to care about keyword arguments and would 
thus appreciate it if they didn't have to. Forcing them to test for keyword 
arguments and raising the correct error for it (with the correct and consistent 
message) seems an entirely unnecessary imposition.

----------

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

Reply via email to