Merge pull request #202 from GawdOfROFL/3.10support
added python 3.10 support
This commit is contained in:
@@ -29,7 +29,7 @@ endif()
|
|||||||
set(PYTHON_VERSIONS
|
set(PYTHON_VERSIONS
|
||||||
10 11 13 14 15 16 # Python 1.1 and 1.2 are marshal-identical
|
10 11 13 14 15 16 # Python 1.1 and 1.2 are marshal-identical
|
||||||
20 21 22 23 24 25 26 27
|
20 21 22 23 24 25 26 27
|
||||||
30 31 32 33 34 35 36 37 38 39
|
30 31 32 33 34 35 36 37 38 39 310
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach(ver ${PYTHON_VERSIONS})
|
foreach(ver ${PYTHON_VERSIONS})
|
||||||
|
@@ -10,6 +10,7 @@ Python MAGIC Python MAGIC Python MAGIC
|
|||||||
3.7 0x0A0D0D42
|
3.7 0x0A0D0D42
|
||||||
3.8 0x0A0D0D55
|
3.8 0x0A0D0D55
|
||||||
3.9 0x0A0D0D61
|
3.9 0x0A0D0D61
|
||||||
|
3.10 0x0A0D0D6F
|
||||||
|
|
||||||
|
|
||||||
1.0 1.1 1.2 1.3 1.4 1.5 1.6
|
1.0 1.1 1.2 1.3 1.4 1.5 1.6
|
||||||
|
@@ -35,6 +35,7 @@ DECLARE_PYTHON(3, 6)
|
|||||||
DECLARE_PYTHON(3, 7)
|
DECLARE_PYTHON(3, 7)
|
||||||
DECLARE_PYTHON(3, 8)
|
DECLARE_PYTHON(3, 8)
|
||||||
DECLARE_PYTHON(3, 9)
|
DECLARE_PYTHON(3, 9)
|
||||||
|
DECLARE_PYTHON(3, 10)
|
||||||
|
|
||||||
const char* Pyc::OpcodeName(int opcode)
|
const char* Pyc::OpcodeName(int opcode)
|
||||||
{
|
{
|
||||||
@@ -101,6 +102,7 @@ int Pyc::ByteToOpcode(int maj, int min, int opcode)
|
|||||||
case 7: return python_37_map(opcode);
|
case 7: return python_37_map(opcode);
|
||||||
case 8: return python_38_map(opcode);
|
case 8: return python_38_map(opcode);
|
||||||
case 9: return python_39_map(opcode);
|
case 9: return python_39_map(opcode);
|
||||||
|
case 10: return python_310_map(opcode);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@@ -58,6 +58,11 @@ OPCODE(BINARY_FLOOR_DIVIDE)
|
|||||||
OPCODE(BINARY_TRUE_DIVIDE)
|
OPCODE(BINARY_TRUE_DIVIDE)
|
||||||
OPCODE(INPLACE_FLOOR_DIVIDE)
|
OPCODE(INPLACE_FLOOR_DIVIDE)
|
||||||
OPCODE(INPLACE_TRUE_DIVIDE)
|
OPCODE(INPLACE_TRUE_DIVIDE)
|
||||||
|
OPCODE(GET_LEN)
|
||||||
|
OPCODE(MATCH_MAPPING)
|
||||||
|
OPCODE(MATCH_SEQUENCE)
|
||||||
|
OPCODE(MATCH_KEYS)
|
||||||
|
OPCODE(COPY_DICT_WITHOUT_KEYS)
|
||||||
OPCODE(STORE_MAP)
|
OPCODE(STORE_MAP)
|
||||||
OPCODE(INPLACE_ADD)
|
OPCODE(INPLACE_ADD)
|
||||||
OPCODE(INPLACE_SUBTRACT)
|
OPCODE(INPLACE_SUBTRACT)
|
||||||
@@ -108,6 +113,7 @@ OPCODE_A(STORE_ATTR)
|
|||||||
OPCODE_A(DELETE_ATTR)
|
OPCODE_A(DELETE_ATTR)
|
||||||
OPCODE_A(STORE_GLOBAL)
|
OPCODE_A(STORE_GLOBAL)
|
||||||
OPCODE_A(DELETE_GLOBAL)
|
OPCODE_A(DELETE_GLOBAL)
|
||||||
|
OPCODE_A(ROT_N)
|
||||||
OPCODE_A(UNPACK_VARARG)
|
OPCODE_A(UNPACK_VARARG)
|
||||||
OPCODE_A(LOAD_CONST)
|
OPCODE_A(LOAD_CONST)
|
||||||
OPCODE_A(LOAD_NAME)
|
OPCODE_A(LOAD_NAME)
|
||||||
@@ -133,6 +139,7 @@ OPCODE_A(RESERVE_FAST)
|
|||||||
OPCODE_A(LOAD_FAST)
|
OPCODE_A(LOAD_FAST)
|
||||||
OPCODE_A(STORE_FAST)
|
OPCODE_A(STORE_FAST)
|
||||||
OPCODE_A(DELETE_FAST)
|
OPCODE_A(DELETE_FAST)
|
||||||
|
OPCODE_A(GEN_START)
|
||||||
OPCODE_A(SET_LINENO)
|
OPCODE_A(SET_LINENO)
|
||||||
OPCODE_A(STORE_ANNOTATION)
|
OPCODE_A(STORE_ANNOTATION)
|
||||||
OPCODE_A(RAISE_VARARGS)
|
OPCODE_A(RAISE_VARARGS)
|
||||||
@@ -164,6 +171,7 @@ OPCODE_A(MAP_ADD)
|
|||||||
OPCODE_A(UNPACK_EX)
|
OPCODE_A(UNPACK_EX)
|
||||||
OPCODE_A(LIST_APPEND)
|
OPCODE_A(LIST_APPEND)
|
||||||
OPCODE_A(LOAD_CLASSDEREF)
|
OPCODE_A(LOAD_CLASSDEREF)
|
||||||
|
OPCODE_A(MATCH_CLASS)
|
||||||
OPCODE_A(BUILD_LIST_UNPACK)
|
OPCODE_A(BUILD_LIST_UNPACK)
|
||||||
OPCODE_A(BUILD_MAP_UNPACK)
|
OPCODE_A(BUILD_MAP_UNPACK)
|
||||||
OPCODE_A(BUILD_MAP_UNPACK_WITH_CALL)
|
OPCODE_A(BUILD_MAP_UNPACK_WITH_CALL)
|
||||||
@@ -180,6 +188,7 @@ OPCODE_A(CALL_FINALLY)
|
|||||||
OPCODE_A(POP_FINALLY)
|
OPCODE_A(POP_FINALLY)
|
||||||
OPCODE_A(IS_OP)
|
OPCODE_A(IS_OP)
|
||||||
OPCODE_A(CONTAINS_OP)
|
OPCODE_A(CONTAINS_OP)
|
||||||
|
OPCODE_A(RERAISE)
|
||||||
OPCODE_A(JUMP_IF_NOT_EXC_MATCH)
|
OPCODE_A(JUMP_IF_NOT_EXC_MATCH)
|
||||||
OPCODE_A(LIST_EXTEND)
|
OPCODE_A(LIST_EXTEND)
|
||||||
OPCODE_A(SET_UPDATE)
|
OPCODE_A(SET_UPDATE)
|
||||||
|
@@ -27,7 +27,7 @@ if not os.path.exists(sys.argv[2]):
|
|||||||
|
|
||||||
maplist = [ 10, 11, 13, 14, 15, 16,
|
maplist = [ 10, 11, 13, 14, 15, 16,
|
||||||
20, 21, 22, 23, 24, 25, 26, 27,
|
20, 21, 22, 23, 24, 25, 26, 27,
|
||||||
30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ]
|
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 310 ]
|
||||||
|
|
||||||
for mapver in maplist:
|
for mapver in maplist:
|
||||||
infile = open(os.path.join(sys.argv[1], 'python_%d.map' % mapver), 'rt')
|
infile = open(os.path.join(sys.argv[1], 'python_%d.map' % mapver), 'rt')
|
||||||
|
127
bytes/python_310.map
Normal file
127
bytes/python_310.map
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
1 POP_TOP
|
||||||
|
2 ROT_TWO
|
||||||
|
3 ROT_THREE
|
||||||
|
4 DUP_TOP
|
||||||
|
5 DUP_TOP_TWO
|
||||||
|
6 ROT_FOUR
|
||||||
|
9 NOP
|
||||||
|
10 UNARY_POSITIVE
|
||||||
|
11 UNARY_NEGATIVE
|
||||||
|
12 UNARY_NOT
|
||||||
|
15 UNARY_INVERT
|
||||||
|
16 BINARY_MATRIX_MULTIPLY
|
||||||
|
17 INPLACE_MATRIX_MULTIPLY
|
||||||
|
19 BINARY_POWER
|
||||||
|
20 BINARY_MULTIPLY
|
||||||
|
22 BINARY_MODULO
|
||||||
|
23 BINARY_ADD
|
||||||
|
24 BINARY_SUBTRACT
|
||||||
|
25 BINARY_SUBSCR
|
||||||
|
26 BINARY_FLOOR_DIVIDE
|
||||||
|
27 BINARY_TRUE_DIVIDE
|
||||||
|
28 INPLACE_FLOOR_DIVIDE
|
||||||
|
29 INPLACE_TRUE_DIVIDE
|
||||||
|
30 GET_LEN
|
||||||
|
31 MATCH_MAPPING
|
||||||
|
32 MATCH_SEQUENCE
|
||||||
|
33 MATCH_KEYS
|
||||||
|
34 COPY_DICT_WITHOUT_KEYS
|
||||||
|
49 WITH_EXCEPT_START
|
||||||
|
50 GET_AITER
|
||||||
|
51 GET_ANEXT
|
||||||
|
52 BEFORE_ASYNC_WITH
|
||||||
|
54 END_ASYNC_FOR
|
||||||
|
55 INPLACE_ADD
|
||||||
|
56 INPLACE_SUBTRACT
|
||||||
|
57 INPLACE_MULTIPLY
|
||||||
|
59 INPLACE_MODULO
|
||||||
|
60 STORE_SUBSCR
|
||||||
|
61 DELETE_SUBSCR
|
||||||
|
62 BINARY_LSHIFT
|
||||||
|
63 BINARY_RSHIFT
|
||||||
|
64 BINARY_AND
|
||||||
|
65 BINARY_XOR
|
||||||
|
66 BINARY_OR
|
||||||
|
67 INPLACE_POWER
|
||||||
|
68 GET_ITER
|
||||||
|
69 GET_YIELD_FROM_ITER
|
||||||
|
70 PRINT_EXPR
|
||||||
|
71 LOAD_BUILD_CLASS
|
||||||
|
72 YIELD_FROM
|
||||||
|
73 GET_AWAITABLE
|
||||||
|
74 LOAD_ASSERTION_ERROR
|
||||||
|
75 INPLACE_LSHIFT
|
||||||
|
76 INPLACE_RSHIFT
|
||||||
|
77 INPLACE_AND
|
||||||
|
78 INPLACE_XOR
|
||||||
|
79 INPLACE_OR
|
||||||
|
82 LIST_TO_TUPLE
|
||||||
|
83 RETURN_VALUE
|
||||||
|
84 IMPORT_STAR
|
||||||
|
85 SETUP_ANNOTATIONS
|
||||||
|
86 YIELD_VALUE
|
||||||
|
87 POP_BLOCK
|
||||||
|
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 ROT_N_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
|
||||||
|
113 JUMP_ABSOLUTE_A
|
||||||
|
114 POP_JUMP_IF_FALSE_A
|
||||||
|
115 POP_JUMP_IF_TRUE_A
|
||||||
|
116 LOAD_GLOBAL_A
|
||||||
|
117 IS_OP_A
|
||||||
|
118 CONTAINS_OP_A
|
||||||
|
119 RERAISE_A
|
||||||
|
121 JUMP_IF_NOT_EXC_MATCH_A
|
||||||
|
122 SETUP_FINALLY_A
|
||||||
|
124 LOAD_FAST_A
|
||||||
|
125 STORE_FAST_A
|
||||||
|
126 DELETE_FAST_A
|
||||||
|
129 GEN_START_A
|
||||||
|
130 RAISE_VARARGS_A
|
||||||
|
131 CALL_FUNCTION_A
|
||||||
|
132 MAKE_FUNCTION_A
|
||||||
|
133 BUILD_SLICE_A
|
||||||
|
135 LOAD_CLOSURE_A
|
||||||
|
136 LOAD_DEREF_A
|
||||||
|
137 STORE_DEREF_A
|
||||||
|
138 DELETE_DEREF_A
|
||||||
|
141 CALL_FUNCTION_KW_A
|
||||||
|
142 CALL_FUNCTION_EX_A
|
||||||
|
143 SETUP_WITH_A
|
||||||
|
144 EXTENDED_ARG_A
|
||||||
|
145 LIST_APPEND_A
|
||||||
|
146 SET_ADD_A
|
||||||
|
147 MAP_ADD_A
|
||||||
|
148 LOAD_CLASSDEREF_A
|
||||||
|
152 MATCH_CLASS_A
|
||||||
|
154 SETUP_ASYNC_WITH_A
|
||||||
|
155 FORMAT_VALUE_A
|
||||||
|
156 BUILD_CONST_KEY_MAP_A
|
||||||
|
157 BUILD_STRING_A
|
||||||
|
160 LOAD_METHOD_A
|
||||||
|
161 CALL_METHOD_A
|
||||||
|
162 LIST_EXTEND_A
|
||||||
|
163 SET_UPDATE_A
|
||||||
|
164 DICT_MERGE_A
|
||||||
|
165 DICT_UPDATE_A
|
@@ -157,7 +157,12 @@ void PycModule::setVersion(unsigned int magic)
|
|||||||
m_min = 9;
|
m_min = 9;
|
||||||
m_unicode = true;
|
m_unicode = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MAGIC_3_10:
|
||||||
|
m_maj = 3;
|
||||||
|
m_min = 10;
|
||||||
|
m_unicode = true;
|
||||||
|
break;
|
||||||
/* Bad Magic detected */
|
/* Bad Magic detected */
|
||||||
default:
|
default:
|
||||||
m_maj = -1;
|
m_maj = -1;
|
||||||
|
@@ -32,6 +32,7 @@ enum PycMagic {
|
|||||||
MAGIC_3_7 = 0x0A0D0D42,
|
MAGIC_3_7 = 0x0A0D0D42,
|
||||||
MAGIC_3_8 = 0x0A0D0D55,
|
MAGIC_3_8 = 0x0A0D0D55,
|
||||||
MAGIC_3_9 = 0x0A0D0D61,
|
MAGIC_3_9 = 0x0A0D0D61,
|
||||||
|
MAGIC_3_10 = 0x0A0D0D6F,
|
||||||
};
|
};
|
||||||
|
|
||||||
class PycModule {
|
class PycModule {
|
||||||
|
Reference in New Issue
Block a user