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 <rep...@bugs.python.org>
<http://bugs.python.org/issue22352>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to