[Python-Dev] Remove METH_OLDARGS?
Neal Norwitz
nnorwitz at gmail.com
Sun May 28 09:14:41 CEST 2006
On 5/28/06, Georg Brandl <g.brandl at gmx.net> wrote:
> In the process of reviewing and possibly extending getargs.c, I stumbled
> over the "compatibility" flag supposedly used for METH_OLDARGS functions.
> No code in the core uses this calling convention any more, and it has been
> deprecated for quite a long time (since 2.2), so would it be appropriate to end
> support for it in 2.5?
There's still a ton used under Modules. Also, if no flag is
specified, it will default to 0 (ie, METH_OLDARGS). I wonder how many
third party modules use METH_OLDARGS directly or more likely
indirectly.
The most important modules to fix from grep (and memory):
Modules/_sre.c: /* FIXME: use METH_OLDARGS instead of 0 or fix to
use METH_VARARGS */
Modules/_sre.c: /* METH_OLDARGS is not in Python 1.5.2 */
Modules/_tkinter.c: {"call", Tkapp_Call, METH_OLDARGS},
Modules/_tkinter.c: {"globalcall", Tkapp_GlobalCall,
METH_OLDARGS},Modules/_tkinter.c: {"merge",
Tkapp_Merge, METH_OLDARGS},
$ grep -c METH_OLDARGS */*.c | egrep -v :0
Modules/_sre.c:2
Modules/_tkinter.c:3
Modules/audioop.c:24
Modules/clmodule.c:19
Modules/flmodule.c:103
Modules/fmmodule.c:6
Modules/glmodule.c:430
Modules/svmodule.c:34
Objects/methodobject.c:2
I would like to get rid of the flag, but I'm not sure we can do it
safely until 3.0.
n
More information about the Python-Dev
mailing list