New submission from STINNER Victor: Changes 27dc9a1c061e and 01b06ca45f64 converted the str (Unicode) methods to Argument Clinic, cool! But str methods taking more than one argument use positional-only arguments.
Currently, Argument Clinic doesn't use METH_FASTCALL for these methods, but METH_VARARGS. There are two options: * Allow passing arguments as keywoards: str.replace(old='a', new='b') * Enhance Argument Clinic to use also METH_FASTCALL for functions using positional-only functions The goal is to speedup method calls. Example with str.replace(): $ ./python-patch -m perf timeit '"a".replace("x", "y")' --duplicate=100 --compare-to ./python-ref python-ref: ..................... 132 ns +- 1 ns python-patch: ..................... 102 ns +- 2 ns Median +- std dev: [python-ref] 132 ns +- 1 ns -> [python-patch] 102 ns +- 2 ns: 1.30x faster (-23%) ---------- messages: 285574 nosy: haypo, inada.naoki, larry, serhiy.storchaka priority: normal severity: normal status: open title: Use METH_FASTCALL in str methods type: performance versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29286> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com