[New-bugs-announce] [issue22352] Ensure opcode names and args fit in disassembly output

Nick Coghlan report at bugs.python.org
Sun Sep 7 06:58:11 CEST 2014


New submission from Nick Coghlan:

While exploring display options for issue 11822, I found that the new matrix multiplication opcode names (BINARY_MATRIX_MULTIPLY and INPLACE_MATRIX_MULTIPLY) don't fit in the nominal field width in the disassembly output (which is currently 20 characters).

These two clock in at 22 and 23 characters respectively.

In practice, they do fit, since neither takes on argument, which effectively allows an extra 5 characters (while still looking neat) and unlimited characters if we ignore expanding past the column of opcode arguments.

However, it would be good to:

1. Factor out the opname and oparg sizes to private class attributes on dis.Instruction

2. have a test in test_dis that scans dis.opnames and ensures all opcodes < dis.HAVE_ARGUMENT have names shorter than the combined length of the two fields, and that all opcodes >= HAVE_ARGUMENT will fit in the opname field, even with an argument present.

Have such a test will ensure any new opcodes added can be displayed without any problems, rather than anyone having to remember to check manually.

----------
assignee: ncoghlan
components: Library (Lib)
messages: 226530
nosy: ncoghlan
priority: low
severity: normal
status: open
title: Ensure opcode names and args fit in disassembly output
type: behavior
versions: Python 3.5

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22352>
_______________________________________


More information about the New-bugs-announce mailing list