Add basic opcode (disassembly) support for Python 3.11

This commit is contained in:
Michael Hansen
2022-12-02 16:34:58 -08:00
parent a3e5ebd481
commit 9f1d0f2a21
11 changed files with 558 additions and 362 deletions

View File

@@ -29,7 +29,7 @@ endif()
set(PYTHON_VERSIONS
10 11 13 14 15 16 # Python 1.1 and 1.2 are marshal-identical
20 21 22 23 24 25 26 27
30 31 32 33 34 35 36 37 38 39 310
30 31 32 33 34 35 36 37 38 39 310 311
)
foreach(ver ${PYTHON_VERSIONS})

View File

@@ -350,185 +350,188 @@ MAP_ADD [ ] [ ] [ ] [ ] [ ] [ ] [ ]
.
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9
STOP_CODE [X] [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
POP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_TWO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_THREE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DUP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
STOP_CODE [X] [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
POP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_TWO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_THREE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DUP_TOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_FOUR ! [X] [X]
DUP_TOP_TWO ! [X] [X] [X] [X] [X] [X] [X] [X]
ROT_FOUR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
<7> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<8> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
NOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_POSITIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_NEGATIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_NOT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<13> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<14> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
UNARY_INVERT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_MATRIX_MULTIPLY [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
DUP_TOP_TWO ! [X] [X] [X] [X] [X] [X] [X] [X] [X]
ROT_FOUR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X]
<7> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<8> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
NOP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_POSITIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_NEGATIVE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNARY_NOT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<13> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<14> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
UNARY_INVERT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_MATRIX_MULTIPLY [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
SET_ADD ! [X] [ ] [ ] [ ] [ ]
INPLACE_MATRIX_MULTIPLY ! [X] [X] [X] [X] [X]
LIST_APPEND [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
BINARY_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<21> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
BINARY_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<30> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<31> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<32> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<33> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<34> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<35> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<36> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<37> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<38> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<39> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<40> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<41> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<42> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<43> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<44> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<45> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<46> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<47> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
RERAISE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
WITH_EXCEPT_START [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
GET_AITER [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
GET_ANEXT [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
BEFORE_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
BEGIN_FINALLY [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ]
INPLACE_MATRIX_MULTIPLY ! [X] [X] [X] [X] [X] [X]
LIST_APPEND [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
BINARY_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<21> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
BINARY_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_FLOOR_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_TRUE_DIVIDE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
GET_LEN [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
MATCH_MAPPING [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
MATCH_SEQUENCE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
MATCH_KEYS [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
COPY_DICT_WITHOUT_KEYS [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
<35> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<36> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<37> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<38> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<39> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<40> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<41> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<42> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<43> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<44> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<45> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<46> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<47> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
RERAISE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ]
WITH_EXCEPT_START [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
GET_AITER [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
GET_ANEXT [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
BEFORE_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
BEGIN_FINALLY [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ]
STORE_MAP ! [X] [X] [X] [X] [X] [ ] [ ] [ ]
END_ASYNC_FOR ! [X] [X]
INPLACE_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<58> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
INPLACE_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
GET_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
END_ASYNC_FOR ! [X] [X] [X]
INPLACE_ADD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_SUBTRACT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_MULTIPLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<58> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
INPLACE_MODULO [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_SUBSCR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BINARY_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_POWER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
GET_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_LOCALS ! [X] [X] [X] [X] [ ]
GET_YIELD_FROM_ITER ! [X] [X] [X] [X] [X]
PRINT_EXPR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_BUILD_CLASS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
YIELD_FROM [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] [X]
GET_AWAITABLE [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
LOAD_ASSERTION_ERROR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
INPLACE_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BREAK_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ]
GET_YIELD_FROM_ITER ! [X] [X] [X] [X] [X] [X]
PRINT_EXPR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_BUILD_CLASS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
YIELD_FROM [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] [X] [X]
GET_AWAITABLE [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
LOAD_ASSERTION_ERROR [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
INPLACE_LSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_RSHIFT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_AND [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_XOR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
INPLACE_OR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BREAK_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] [ ]
WITH_CLEANUP ! [X] [X] [X] [X] [X]
WITH_CLEANUP_START ! [X] [X] [X] [X] [ ]
WITH_CLEANUP_START ! [X] [X] [X] [X] [ ] [ ]
WITH_CLEANUP_FINISH ! [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
LIST_TO_TUPLE ! [X]
RETURN_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_STAR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
SETUP_ANNOTATIONS [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
YIELD_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_BLOCK [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
END_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [ ]
POP_EXCEPT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNPACK_SEQUENCE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
FOR_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNPACK_EX [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DUP_TOPX [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
LOAD_CONST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_TUPLE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_LIST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_SET [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_MAP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
COMPARE_OP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_FROM [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
JUMP_FORWARD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
JUMP_IF_FALSE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+]
JUMP_IF_TRUE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+]
JUMP_ABSOLUTE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_JUMP_IF_FALSE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_JUMP_IF_TRUE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
CONTAINS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
CONTINUE_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ]
SETUP_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ]
LIST_TO_TUPLE ! [X] [X]
RETURN_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_STAR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
SETUP_ANNOTATIONS [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
YIELD_VALUE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_BLOCK [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
END_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ]
POP_EXCEPT [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNPACK_SEQUENCE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
FOR_ITER [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
UNPACK_EX [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DUP_TOPX ! [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
ROT_N ! [X]
LOAD_CONST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_TUPLE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_LIST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_SET [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_MAP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_ATTR [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
COMPARE_OP [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_NAME [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IMPORT_FROM [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
JUMP_FORWARD [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
JUMP_IF_FALSE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+] [+]
JUMP_IF_TRUE (_OR_POP) [X] [X] [+] [+] [+] [+] [+] [+] [+] [+] [+]
JUMP_ABSOLUTE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_JUMP_IF_FALSE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
POP_JUMP_IF_TRUE [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_GLOBAL [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
IS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
CONTAINS_OP [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
CONTINUE_LOOP ! [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ]
RERAISE ! [X]
SETUP_LOOP [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] [ ]
SETUP_EXCEPT ! [X] [X] [X] [X] [X] [X] [X] [X] [ ]
JUMP_IF_NOT_EXC_MATCH ! [X]
SETUP_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<123> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
LOAD_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_ANNOTATION [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ] [ ]
<128> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
<129> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
RAISE_VARARGS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
CALL_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAKE_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_SLICE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAKE_CLOSURE [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ]
LOAD_CLOSURE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_DEREF [ ] [ ] [X] [X] [X] [X] [X] [X] [X] [X]
<139> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
CALL_FUNCTION_VAR [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ]
CALL_FUNCTION_KW [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
JUMP_IF_NOT_EXC_MATCH ! [X] [X]
SETUP_FINALLY [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<123> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
LOAD_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_FAST [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_ANNOTATION [ ] [ ] [ ] [ ] [ ] [ ] [X] [ ] [ ] [ ] [ ]
<128> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
GEN_START [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
RAISE_VARARGS [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
CALL_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAKE_FUNCTION [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
BUILD_SLICE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAKE_CLOSURE [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ] [ ]
LOAD_CLOSURE [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
STORE_DEREF [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
DELETE_DEREF [ ] [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
<139> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
CALL_FUNCTION_VAR [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ] [ ]
CALL_FUNCTION_KW [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
CALL_FUNCTION_VAR_KW ! [X] [X] [X] [X] [X] [X]
CALL_FUNCTION_EX ! [X] [X] [X] [X]
CALL_FUNCTION_EX ! [X] [X] [X] [X] [X]
EXTENDED_ARG ! [X] [X]
SETUP_WITH ! [X] [X] [X] [X] [X] [X] [X] [X]
SETUP_WITH ! [X] [X] [X] [X] [X] [X] [X] [X] [X]
<144> ! [ ] [ ]
EXTENDED_ARG ! [X] [X] [X] [X] [X] [X] [X] [X]
LIST_APPEND [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
SET_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAP_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_CLASSDEREF [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
BUILD_LIST_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
BUILD_MAP_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
BUILD_MAP_UNPACK_WITH_CALL [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
BUILD_TUPLE_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
BUILD_SET_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
SETUP_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
FORMAT_VALUE [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
BUILD_CONST_KEY_MAP [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
BUILD_STRING [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
BUILD_TUPLE_UNPACK_WITH_CALL[ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [ ]
<159> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
LOAD_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X]
CALL_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X]
EXTENDED_ARG ! [X] [X] [X] [X] [X] [X] [X] [X] [X]
LIST_APPEND [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
SET_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
MAP_ADD [ ] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X]
LOAD_CLASSDEREF [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X] [X]
BUILD_LIST_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ]
BUILD_MAP_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ]
BUILD_MAP_UNPACK_WITH_CALL [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ]
BUILD_TUPLE_UNPACK ! [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ]
MATCH_CLASS ! [X]
BUILD_SET_UNPACK [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [ ] [ ]
SETUP_ASYNC_WITH [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X] [X]
FORMAT_VALUE [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
BUILD_CONST_KEY_MAP [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
BUILD_STRING [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X] [X]
BUILD_TUPLE_UNPACK_WITH_CALL[ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [ ] [ ]
<159> [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
LOAD_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
CALL_METHOD [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X] [X] [X]
CALL_FINALLY ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
LIST_EXTEND ! [X]
LIST_EXTEND ! [X] [X]
POP_FINALLY ! [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
SET_UPDATE ! [X]
DICT_MERGE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
DICT_UPDATE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X]
SET_UPDATE ! [X] [X]
DICT_MERGE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
DICT_UPDATE [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] [X]
<166>
<167>
<168>
@@ -538,177 +541,187 @@ DICT_UPDATE [ ] [ ] [ ] [ ] [ ] [ ] [ ]
.
3.10
<0> [ ]
POP_TOP [X]
ROT_TWO [X]
ROT_THREE [X]
DUP_TOP [X]
DUP_TOP_TWO [X]
ROT_FOUR [X]
<7> [ ]
<8> [ ]
NOP [X]
UNARY_POSITIVE [X]
UNARY_NEGATIVE [X]
UNARY_NOT [X]
<13> [ ]
<14> [ ]
UNARY_INVERT [X]
BINARY_MATRIX_MULTIPLY [X]
INPLACE_MATRIX_MULTIPLY [X]
<18> [ ]
BINARY_POWER [X]
BINARY_MULTIPLY [X]
<21> [ ]
BINARY_MODULO [X]
BINARY_ADD [X]
BINARY_SUBTRACT [X]
BINARY_SUBSCR [X]
BINARY_FLOOR_DIVIDE [X]
BINARY_TRUE_DIVIDE [X]
INPLACE_FLOOR_DIVIDE [X]
INPLACE_TRUE_DIVIDE [X]
GET_LEN [X]
MATCH_MAPPING [X]
MATCH_SEQUENCE [X]
MATCH_KEYS [X]
COPY_DICT_WITHOUT_KEYS [X]
<35> [ ]
<36> [ ]
<37> [ ]
<38> [ ]
<39> [ ]
<40> [ ]
<41> [ ]
<42> [ ]
<43> [ ]
<44> [ ]
<45> [ ]
<46> [ ]
<47> [ ]
<48> [ ]
WITH_EXCEPT_START [X]
GET_AITER [X]
GET_ANEXT [X]
BEFORE_ASYNC_WITH [X]
<53> [ ]
END_ASYNC_FOR [X]
INPLACE_ADD [X]
INPLACE_SUBTRACT [X]
INPLACE_MULTIPLY [X]
<58> [ ]
INPLACE_MODULO [X]
STORE_SUBSCR [X]
DELETE_SUBSCR [X]
BINARY_LSHIFT [X]
BINARY_RSHIFT [X]
BINARY_AND [X]
BINARY_XOR [X]
BINARY_OR [X]
INPLACE_POWER [X]
GET_ITER [X]
GET_YIELD_FROM_ITER [X]
PRINT_EXPR [X]
LOAD_BUILD_CLASS [X]
YIELD_FROM [X]
GET_AWAITABLE [X]
LOAD_ASSERTION_ERROR [X]
INPLACE_LSHIFT [X]
INPLACE_RSHIFT [X]
INPLACE_AND [X]
INPLACE_XOR [X]
INPLACE_OR [X]
<80> [ ]
<81> [ ]
LIST_TO_TUPLE [X]
RETURN_VALUE [X]
IMPORT_STAR [X]
SETUP_ANNOTATIONS [X]
YIELD_VALUE [X]
POP_BLOCK [X]
<88> [ ]
POP_EXCEPT [X]
STORE_NAME [X]
DELETE_NAME [X]
UNPACK_SEQUENCE [X]
FOR_ITER [X]
UNPACK_EX [X]
STORE_ATTR [X]
DELETE_ATTR [X]
STORE_GLOBAL [X]
DELETE_GLOBAL [X]
ROT_N [X]
LOAD_CONST [X]
LOAD_NAME [X]
BUILD_TUPLE [X]
BUILD_LIST [X]
BUILD_SET [X]
BUILD_MAP [X]
LOAD_ATTR [X]
COMPARE_OP [X]
IMPORT_NAME [X]
IMPORT_FROM [X]
JUMP_FORWARD [X]
JUMP_IF_FALSE_OR_POP [X]
JUMP_IF_TRUE_OR_POP [X]
JUMP_ABSOLUTE [X]
POP_JUMP_IF_FALSE [X]
POP_JUMP_IF_TRUE [X]
LOAD_GLOBAL [X]
IS_OP [X]
CONTAINS_OP [X]
RERAISE [X]
<120> [ ]
JUMP_IF_NOT_EXC_MATCH [X]
SETUP_FINALLY [X]
<123> [ ]
LOAD_FAST [X]
STORE_FAST [X]
DELETE_FAST [X]
<127> [ ]
<128> [ ]
GEN_START [X]
RAISE_VARARGS [X]
CALL_FUNCTION [X]
MAKE_FUNCTION [X]
BUILD_SLICE [X]
<134> [ ]
LOAD_CLOSURE [X]
LOAD_DEREF [X]
STORE_DEREF [X]
DELETE_DEREF [X]
<139> [ ]
<140> [ ]
CALL_FUNCTION_KW [X]
CALL_FUNCTION_EX [X]
SETUP_WITH [X]
EXTENDED_ARG [X]
LIST_APPEND [X]
SET_ADD [X]
MAP_ADD [X]
LOAD_CLASSDEREF [X]
<149> [ ]
<150> [ ]
<151> [ ]
MATCH_CLASS [X]
<153> [ ]
SETUP_ASYNC_WITH [X]
FORMAT_VALUE [X]
BUILD_CONST_KEY_MAP [X]
BUILD_STRING [X]
<158> [ ]
<159> [ ]
LOAD_METHOD [X]
CALL_METHOD [X]
LIST_EXTEND [X]
SET_UPDATE [X]
DICT_MERGE [X]
DICT_UPDATE [X]
<166>
<167>
<168>
<169>
3.11
CACHE [X]
POP_TOP [X]
PUSH_NULL [X]
<3> [ ]
<4> [ ]
<5> [ ]
<6> [ ]
<7> [ ]
<8> [ ]
NOP [X]
UNARY_POSITIVE [X]
UNARY_NEGATIVE [X]
UNARY_NOT [X]
<13> [ ]
<14> [ ]
UNARY_INVERT [X]
<16> [ ]
<17> [ ]
<18> [ ]
<19> [ ]
<20> [ ]
<21> [ ]
<22> [ ]
<23> [ ]
<24> [ ]
BINARY_SUBSCR [X]
<26> [ ]
<27> [ ]
<28> [ ]
<29> [ ]
GET_LEN [X]
MATCH_MAPPING [X]
MATCH_SEQUENCE [X]
MATCH_KEYS [X]
<34> [ ]
PUSH_EXC_INFO [X]
CHECK_EXC_MATCH [X]
CHECK_EG_MATCH [X]
<38> [ ]
<39> [ ]
<40> [ ]
<41> [ ]
<42> [ ]
<43> [ ]
<44> [ ]
<45> [ ]
<46> [ ]
<47> [ ]
<48> [ ]
WITH_EXCEPT_START [X]
GET_AITER [X]
GET_ANEXT [X]
BEFORE_ASYNC_WITH [X]
BEFORE_WITH [X]
END_ASYNC_FOR [X]
<55> [ ]
<56> [ ]
<57> [ ]
<58> [ ]
<59> [ ]
STORE_SUBSCR [X]
DELETE_SUBSCR [X]
<62> [ ]
<63> [ ]
<64> [ ]
<65> [ ]
<66> [ ]
<67> [ ]
GET_ITER [X]
GET_YIELD_FROM_ITER [X]
PRINT_EXPR [X]
LOAD_BUILD_CLASS [X]
<72> [ ]
<73> [ ]
LOAD_ASSERTION_ERROR [X]
RETURN_GENERATOR [X]
<76> [ ]
<77> [ ]
<78> [ ]
<79> [ ]
<80> [ ]
<81> [ ]
LIST_TO_TUPLE [X]
RETURN_VALUE [X]
IMPORT_STAR [X]
SETUP_ANNOTATIONS [X]
YIELD_VALUE [X]
ASYNC_GEN_WRAP [X]
PREP_RERAISE_STAR [X]
POP_EXCEPT [X]
STORE_NAME [X]
DELETE_NAME [X]
UNPACK_SEQUENCE [X]
FOR_ITER [X]
UNPACK_EX [X]
STORE_ATTR [X]
DELETE_ATTR [X]
STORE_GLOBAL [X]
DELETE_GLOBAL [X]
SWAP [X]
LOAD_CONST [X]
LOAD_NAME [X]
BUILD_TUPLE [X]
BUILD_LIST [X]
BUILD_SET [X]
BUILD_MAP [X]
LOAD_ATTR [X]
COMPARE_OP [X]
IMPORT_NAME [X]
IMPORT_FROM [X]
JUMP_FORWARD [X]
JUMP_IF_FALSE_OR_POP [X]
JUMP_IF_TRUE_OR_POP [X]
<113> [ ]
POP_JUMP_FORWARD_IF_FALSE [X]
POP_JUMP_FORWARD_IF_TRUE [X]
LOAD_GLOBAL [X]
IS_OP [X]
CONTAINS_OP [X]
RERAISE [X]
COPY [X]
<121> [ ]
BINARY_OP [X]
SEND [X]
LOAD_FAST [X]
STORE_FAST [X]
DELETE_FAST [X]
<127> [ ]
POP_JUMP_FORWARD_IF_NOT_NONE [X]
POP_JUMP_FORWARD_IF_NONE [X]
RAISE_VARARGS [X]
GET_AWAITABLE [X]
MAKE_FUNCTION [X]
BUILD_SLICE [X]
JUMP_BACKWARD_NO_INTERRUPT [X]
MAKE_CELL [X]
LOAD_CLOSURE [X]
LOAD_DEREF [X]
STORE_DEREF [X]
DELETE_DEREF [X]
JUMP_BACKWARD [X]
<141> [ ]
CALL_FUNCTION_EX [X]
<143> [ ]
EXTENDED_ARG [X]
LIST_APPEND [X]
SET_ADD [X]
MAP_ADD [X]
LOAD_CLASSDEREF [X]
COPY_FREE_VARS [X]
<150> [ ]
RESUME [X]
MATCH_CLASS [X]
<153> [ ]
<154> [ ]
FORMAT_VALUE [X]
BUILD_CONST_KEY_MAP [X]
BUILD_STRING [X]
<158> [ ]
<159> [ ]
LOAD_METHOD [X]
<161> [ ]
LIST_EXTEND [X]
SET_UPDATE [X]
DICT_MERGE [X]
DICT_UPDATE [X]
PRECALL [X]
<167> [ ]
<168> [ ]
<169> [ ]
<170> [ ]
CALL [X]
KW_NAMES [X]
POP_JUMP_BACKWARD_IF_NOT_NONE [X]
POP_JUMP_BACKWARD_IF_NONE [X]
POP_JUMP_BACKWARD_IF_FALSE [X]
POP_JUMP_BACKWARD_IF_TRUE [X]
<177>
<178>
<179>
.
.
.
@@ -791,20 +804,24 @@ TYPE_SHORT_ASCII 'z'
TYPE_SHORT_ASCII_INTERNED 'Z'
[TYPE_CODE] 1.0 1.3 1.5 2.1 2.3 3.0 3.8
argcount short short short long long long
posonlyargc long
kwonlyargc long long
[TYPE_CODE] 1.0 1.3 1.5 2.1 2.3 3.0 3.8 3.11
argcount short short short long long long long
posonlyargc long long
kwonlyargc long long long
nlocals short short short long long long
stacksize short short long long long
flags short short short long long long
code Obj Obj Obj Obj Obj Obj Obj
consts Obj Obj Obj Obj Obj Obj Obj
names Obj Obj Obj Obj Obj Obj Obj
stacksize short short long long long long
flags short short short long long long long
code Obj Obj Obj Obj Obj Obj Obj Obj
consts Obj Obj Obj Obj Obj Obj Obj Obj
names Obj Obj Obj Obj Obj Obj Obj Obj
varnames Obj Obj Obj Obj Obj Obj
freevars Obj Obj Obj Obj
cellvars Obj Obj Obj Obj
filename Obj Obj Obj Obj Obj Obj Obj
name Obj Obj Obj Obj Obj Obj Obj
firstline short short long long long
lntable Obj Obj Obj Obj Obj
locals+names Obj
locals+kinds Obj
filename Obj Obj Obj Obj Obj Obj Obj Obj
name Obj Obj Obj Obj Obj Obj Obj Obj
qualname Obj
firstline short short long long long long
lntable Obj Obj Obj Obj Obj Obj
exceptiontable Obj

View File

@@ -36,6 +36,7 @@ DECLARE_PYTHON(3, 7)
DECLARE_PYTHON(3, 8)
DECLARE_PYTHON(3, 9)
DECLARE_PYTHON(3, 10)
DECLARE_PYTHON(3, 11)
const char* Pyc::OpcodeName(int opcode)
{
@@ -103,6 +104,7 @@ int Pyc::ByteToOpcode(int maj, int min, int opcode)
case 8: return python_38_map(opcode);
case 9: return python_39_map(opcode);
case 10: return python_310_map(opcode);
case 11: return python_311_map(opcode);
}
break;
}

View File

@@ -102,6 +102,15 @@ OPCODE(RERAISE)
OPCODE(WITH_EXCEPT_START)
OPCODE(LOAD_ASSERTION_ERROR)
OPCODE(LIST_TO_TUPLE)
OPCODE(CACHE)
OPCODE(PUSH_NULL)
OPCODE(PUSH_EXC_INFO)
OPCODE(CHECK_EXC_MATCH)
OPCODE(CHECK_EG_MATCH)
OPCODE(BEFORE_WITH)
OPCODE(RETURN_GENERATOR)
OPCODE(ASYNC_GEN_WRAP)
OPCODE(PREP_RERAISE_STAR)
/* Has parameter word */
OPCODE_A_FIRST(STORE_NAME)
@@ -194,3 +203,24 @@ OPCODE_A(LIST_EXTEND)
OPCODE_A(SET_UPDATE)
OPCODE_A(DICT_MERGE)
OPCODE_A(DICT_UPDATE)
OPCODE_A(SWAP)
OPCODE_A(POP_JUMP_FORWARD_IF_FALSE)
OPCODE_A(POP_JUMP_FORWARD_IF_TRUE)
OPCODE_A(COPY)
OPCODE_A(BINARY_OP)
OPCODE_A(SEND)
OPCODE_A(POP_JUMP_FORWARD_IF_NOT_NONE)
OPCODE_A(POP_JUMP_FORWARD_IF_NONE)
OPCODE_A(GET_AWAITABLE)
OPCODE_A(JUMP_BACKWARD_NO_INTERRUPT)
OPCODE_A(MAKE_CELL)
OPCODE_A(JUMP_BACKWARD)
OPCODE_A(COPY_FREE_VARS)
OPCODE_A(RESUME)
OPCODE_A(PRECALL)
OPCODE_A(CALL)
OPCODE_A(KW_NAMES)
OPCODE_A(POP_JUMP_BACKWARD_IF_NOT_NONE)
OPCODE_A(POP_JUMP_BACKWARD_IF_NONE)
OPCODE_A(POP_JUMP_BACKWARD_IF_FALSE)
OPCODE_A(POP_JUMP_BACKWARD_IF_TRUE)

View File

@@ -27,7 +27,7 @@ if not os.path.exists(sys.argv[2]):
maplist = [ 10, 11, 13, 14, 15, 16,
20, 21, 22, 23, 24, 25, 26, 27,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 310 ]
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 310, 311 ]
for mapver in maplist:
infile = open(os.path.join(sys.argv[1], 'python_%d.map' % mapver), 'rt')

110
bytes/python_311.map Normal file
View File

@@ -0,0 +1,110 @@
0 CACHE
1 POP_TOP
2 PUSH_NULL
9 NOP
10 UNARY_POSITIVE
11 UNARY_NEGATIVE
12 UNARY_NOT
15 UNARY_INVERT
25 BINARY_SUBSCR
30 GET_LEN
31 MATCH_MAPPING
32 MATCH_SEQUENCE
33 MATCH_KEYS
35 PUSH_EXC_INFO
36 CHECK_EXC_MATCH
37 CHECK_EG_MATCH
49 WITH_EXCEPT_START
50 GET_AITER
51 GET_ANEXT
52 BEFORE_ASYNC_WITH
53 BEFORE_WITH
54 END_ASYNC_FOR
60 STORE_SUBSCR
61 DELETE_SUBSCR
68 GET_ITER
69 GET_YIELD_FROM_ITER
70 PRINT_EXPR
71 LOAD_BUILD_CLASS
74 LOAD_ASSERTION_ERROR
75 RETURN_GENERATOR
82 LIST_TO_TUPLE
83 RETURN_VALUE
84 IMPORT_STAR
85 SETUP_ANNOTATIONS
86 YIELD_VALUE
87 ASYNC_GEN_WRAP
88 PREP_RERAISE_STAR
89 POP_EXCEPT
90 STORE_NAME_A
91 DELETE_NAME_A
92 UNPACK_SEQUENCE_A
93 FOR_ITER_A
94 UNPACK_EX_A
95 STORE_ATTR_A
96 DELETE_ATTR_A
97 STORE_GLOBAL_A
98 DELETE_GLOBAL_A
99 SWAP_A
100 LOAD_CONST_A
101 LOAD_NAME_A
102 BUILD_TUPLE_A
103 BUILD_LIST_A
104 BUILD_SET_A
105 BUILD_MAP_A
106 LOAD_ATTR_A
107 COMPARE_OP_A
108 IMPORT_NAME_A
109 IMPORT_FROM_A
110 JUMP_FORWARD_A
111 JUMP_IF_FALSE_OR_POP_A
112 JUMP_IF_TRUE_OR_POP_A
114 POP_JUMP_FORWARD_IF_FALSE_A
115 POP_JUMP_FORWARD_IF_TRUE_A
116 LOAD_GLOBAL_A
117 IS_OP_A
118 CONTAINS_OP_A
119 RERAISE_A
120 COPY_A
122 BINARY_OP_A
123 SEND_A
124 LOAD_FAST_A
125 STORE_FAST_A
126 DELETE_FAST_A
128 POP_JUMP_FORWARD_IF_NOT_NONE_A
129 POP_JUMP_FORWARD_IF_NONE_A
130 RAISE_VARARGS_A
131 GET_AWAITABLE_A
132 MAKE_FUNCTION_A
133 BUILD_SLICE_A
134 JUMP_BACKWARD_NO_INTERRUPT_A
135 MAKE_CELL_A
136 LOAD_CLOSURE_A
137 LOAD_DEREF_A
138 STORE_DEREF_A
139 DELETE_DEREF_A
140 JUMP_BACKWARD_A
142 CALL_FUNCTION_EX_A
144 EXTENDED_ARG_A
145 LIST_APPEND_A
146 SET_ADD_A
147 MAP_ADD_A
148 LOAD_CLASSDEREF_A
149 COPY_FREE_VARS_A
151 RESUME_A
152 MATCH_CLASS_A
155 FORMAT_VALUE_A
156 BUILD_CONST_KEY_MAP_A
157 BUILD_STRING_A
160 LOAD_METHOD_A
162 LIST_EXTEND_A
163 SET_UPDATE_A
164 DICT_MERGE_A
165 DICT_UPDATE_A
166 PRECALL_A
171 CALL_A
172 KW_NAMES_A
173 POP_JUMP_BACKWARD_IF_NOT_NONE_A
174 POP_JUMP_BACKWARD_IF_NONE_A
175 POP_JUMP_BACKWARD_IF_FALSE_A
176 POP_JUMP_BACKWARD_IF_TRUE_A

View File

@@ -21,7 +21,7 @@ void PycCode::load(PycData* stream, PycModule* mod)
if (mod->verCompare(1, 3) >= 0 && mod->verCompare(2, 3) < 0)
m_numLocals = stream->get16();
else if (mod->verCompare(2, 3) >= 0)
else if (mod->verCompare(2, 3) >= 0 && mod->verCompare(3, 11) < 0)
m_numLocals = stream->get32();
else
m_numLocals = 0;
@@ -44,24 +44,39 @@ void PycCode::load(PycData* stream, PycModule* mod)
m_consts = LoadObject(stream, mod).cast<PycSequence>();
m_names = LoadObject(stream, mod).cast<PycSequence>();
if (mod->verCompare(1, 3) >= 0)
if (mod->verCompare(1, 3) >= 0 && mod->verCompare(3, 11) < 0)
m_varNames = LoadObject(stream, mod).cast<PycSequence>();
else
m_varNames = new PycTuple;
if (mod->verCompare(2, 1) >= 0)
if (mod->verCompare(2, 1) >= 0 && mod->verCompare(3, 11) < 0)
m_freeVars = LoadObject(stream, mod).cast<PycSequence>();
else
m_freeVars = new PycTuple;
if (mod->verCompare(2, 1) >= 0)
if (mod->verCompare(2, 1) >= 0 && mod->verCompare(3, 11) < 0)
m_cellVars = LoadObject(stream, mod).cast<PycSequence>();
else
m_cellVars = new PycTuple;
if (mod->verCompare(3, 11) >= 0)
m_localsAndNames = LoadObject(stream, mod).cast<PycSequence>();
else
m_localsAndNames = new PycTuple;
if (mod->verCompare(3, 11) >= 0)
m_localsAndKinds = LoadObject(stream, mod).cast<PycString>();
else
m_localsAndKinds = new PycString;
m_fileName = LoadObject(stream, mod).cast<PycString>();
m_name = LoadObject(stream, mod).cast<PycString>();
if (mod->verCompare(3, 11) >= 0)
m_qualName = LoadObject(stream, mod).cast<PycString>();
else
m_qualName = new PycString;
if (mod->verCompare(1, 5) >= 0 && mod->verCompare(2, 3) < 0)
m_firstLine = stream->get16();
else if (mod->verCompare(2, 3) >= 0)
@@ -71,4 +86,9 @@ void PycCode::load(PycData* stream, PycModule* mod)
m_lnTable = LoadObject(stream, mod).cast<PycString>();
else
m_lnTable = new PycString;
if (mod->verCompare(3, 11) >= 0)
m_exceptTable = LoadObject(stream, mod).cast<PycString>();
else
m_exceptTable = new PycString;
}

View File

@@ -46,10 +46,14 @@ public:
PycRef<PycSequence> varNames() const { return m_varNames; }
PycRef<PycSequence> freeVars() const { return m_freeVars; }
PycRef<PycSequence> cellVars() const { return m_cellVars; }
PycRef<PycSequence> localsAndNames() const { return m_localsAndNames; }
PycRef<PycString> localsAndKinds() const { return m_localsAndKinds; }
PycRef<PycString> fileName() const { return m_fileName; }
PycRef<PycString> name() const { return m_name; }
PycRef<PycString> qualName() const { return m_qualName; }
int firstLine() const { return m_firstLine; }
PycRef<PycString> lnTable() const { return m_lnTable; }
PycRef<PycString> exceptTable() const { return m_exceptTable; }
PycRef<PycObject> getConst(int idx) const
{
@@ -89,10 +93,14 @@ private:
PycRef<PycSequence> m_varNames;
PycRef<PycSequence> m_freeVars;
PycRef<PycSequence> m_cellVars;
PycRef<PycSequence> m_localsAndNames;
PycRef<PycString> m_localsAndKinds;
PycRef<PycString> m_fileName;
PycRef<PycString> m_name;
PycRef<PycString> m_qualName;
int m_firstLine;
PycRef<PycString> m_lnTable;
PycRef<PycString> m_exceptTable;
globals_t m_globalsUsed; /* Global vars used in this code */
};

View File

@@ -164,6 +164,12 @@ void PycModule::setVersion(unsigned int magic)
m_unicode = true;
break;
case MAGIC_3_11:
m_maj = 3;
m_min = 11;
m_unicode = true;
break;
/* Bad Magic detected */
default:
m_maj = -1;

View File

@@ -33,6 +33,7 @@ enum PycMagic {
MAGIC_3_8 = 0x0A0D0D55,
MAGIC_3_9 = 0x0A0D0D61,
MAGIC_3_10 = 0x0A0D0D6F,
MAGIC_3_11 = 0x0A0D0DA7,
INVALID = 0,
};

View File

@@ -29,11 +29,12 @@ PYVERS = {
'3.3': '3.3.7',
'3.4': '3.4.10',
'3.5': '3.5.10',
'3.6': '3.6.13',
'3.7': '3.7.10',
'3.8': '3.8.9',
'3.9': '3.9.4',
'3.10': '3.10.0',
'3.6': '3.6.15',
'3.7': '3.7.15',
'3.8': '3.8.15',
'3.9': '3.9.15',
'3.10': '3.10.8',
'3.11': '3.11.0',
}
OLD_PYTHONS = ('1.0', '1.1', '1.2', '1.3', '1.4', '1.5')
@@ -52,6 +53,7 @@ PYVER_CONTAINERS = {
'3.8',
'3.9',
'3.10',
'3.11',
}
CONTAINER_EXES = ['podman', 'docker']
CONTAINER_EXE_EXTRA_ARGS = {