[New-bugs-announce] [issue11823] disassembly needs to argument counts on calls with keyword args
Raymond Hettinger
report at bugs.python.org
Sun Apr 10 23:11:40 CEST 2011
New submission from Raymond Hettinger <raymond.hettinger at gmail.com>:
The argument to CALL_FUNCTION is overloaded to show both the number of positional arguments and keyword arguments (shifted by 8-bits):
>>> dis("foo(10, opt=True)")
1 0 LOAD_NAME 0 (foo)
3 LOAD_CONST 0 (10)
6 LOAD_CONST 1 ('opt')
9 LOAD_CONST 2 (True)
12 CALL_FUNCTION 257
15 RETURN_VALUE
It is not obvious that the 257 argument causes three stack arguments to be popped.
The disassembly should add a parenthetical to explain the composition:
>>> dis("foo(10, opt=True)")
1 0 LOAD_NAME 0 (foo)
3 LOAD_CONST 0 (10)
6 LOAD_CONST 1 ('opt')
9 LOAD_CONST 2 (True)
12 CALL_FUNCTION 257 (1 positional, 1 keyword pair)
15 RETURN_VALUE
----------
components: Library (Lib)
messages: 133481
nosy: rhettinger
priority: normal
severity: normal
status: open
title: disassembly needs to argument counts on calls with keyword args
type: feature request
versions: Python 3.3
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue11823>
_______________________________________
More information about the New-bugs-announce
mailing list