This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ncoghlan
Recipients ncoghlan
Date 2014-09-07.04:58:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1410065891.58.0.12430207232.issue22352@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2014-09-07 04:58:11ncoghlansetrecipients: + ncoghlan
2014-09-07 04:58:11ncoghlansetmessageid: <1410065891.58.0.12430207232.issue22352@psf.upfronthosting.co.za>
2014-09-07 04:58:11ncoghlanlinkissue22352 messages
2014-09-07 04:58:10ncoghlancreate