As part of adding support for Python 3.12 to https://github.com/MatthieuDartiailh/bytecode I have identified a number of documentation issues both in the dismodule documentation in the bytecode section of the What's new in 3.12. Opening a separate issue for each point would just clutter the issue tracker so I will try to summarize all my findings here.
Issue in dis documentation
Issue in What's new
Linked PRs
As part of adding support for Python 3.12 to https://github.com/MatthieuDartiailh/bytecode I have identified a number of documentation issues both in the
dismodule documentation in the bytecode section of theWhat's new in 3.12. Opening a separate issue for each point would just clutter the issue tracker so I will try to summarize all my findings here.Issue in
disdocumentationThe operation name can be found in cmp_op[opname]is not true anymore.dis.disoutputMIN_INSTRUMENTED_OPCODEis not documented but needed to determine what are the "normal" opcodesLOAD_SUPER_ATTRdescription could use a code block to describe its stack effect IMOPOP_JUMP_IF_NOT_NONEandPOP_JUMP_IF_NONEare still described as pseudo-instructions even though there are not anymore in 3.12CALL_INSTRINSIC_2stack manipulation description looks wrong.The description reads
Passes STACK[-2], STACK[-1] as the arguments and sets STACK[-1] to the result, but the implementation pops 2 values from the stackEND_SENDis not documentedCACHEinstructions following jumping instructions is not described (FOR_ITER and SEND for the time being)Issue in What's new
BINARY_SLICEis not mentionedSTORE_SLICEis not mentionedCLEANUP_THROWis not mentionedRETURN_CONSTis not mentionedLOAD_FAST_CHECKis not mentionedEND_SENDis not mentionedCALL_INSTRINSIC_1/2are not mentionedFOR_ITERnew behavior is not mentionedPOP_JUMP_IF_*family of instructions are now real instructions is not mentionedYIELD_VALUEneed for an argument is not mentioneddis.hasexcis not mentionedLinked PRs