| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -124,6 +124,11 @@ opcode | |||
| 124 | 124 | This field was added in 3.12, it was never documented and is not intended for | |
| 125 | 125 | external usage. (Contributed by Irit Katriel in :gh:`105481`.) | |
| 126 | 126 | ||
| 127 | + * Removed ``opcode.is_pseudo``, ``opcode.MIN_PSEUDO_OPCODE`` and | ||
| 128 | + ``opcode.MAX_PSEUDO_OPCODE``, which were added in 3.12, were never | ||
| 129 | + documented or exposed through ``dis``, and were not intended to be | ||
| 130 | + used externally. | ||
| 131 | + | ||
| 127 | 132 | pathlib | |
| 128 | 133 | ------- | |
| 129 | 134 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,23 +19,11 @@ | |||
| 19 | 19 | ||
| 20 | 20 | cmp_op = ('<', '<=', '==', '!=', '>', '>=') | |
| 21 | 21 | ||
| 22 | - def is_pseudo(op): | ||
| 23 | - return op >= MIN_PSEUDO_OPCODE and op <= MAX_PSEUDO_OPCODE | ||
| 24 | - | ||
| 25 | 22 | opmap = {} | |
| 26 | 23 | ||
| 27 | - # pseudo opcodes (used in the compiler) mapped to the values | ||
| 28 | - # they can become in the actual code. | ||
| 29 | - _pseudo_ops = {} | ||
| 30 | - | ||
| 31 | 24 | def def_op(name, op): | |
| 32 | 25 | opmap[name] = op | |
| 33 | 26 | ||
| 34 | - def pseudo_op(name, op, real_ops): | ||
| 35 | - def_op(name, op) | ||
| 36 | - _pseudo_ops[name] = real_ops | ||
| 37 | - | ||
| 38 | - | ||
| 39 | 27 | # Instruction opcodes for compiled code | |
| 40 | 28 | # Blank lines correspond to available opcodes | |
| 41 | 29 | ||
@@ -212,29 +200,27 @@ def pseudo_op(name, op, real_ops): | |||
| 212 | 200 | # 255 is reserved | |
| 213 | 201 | ||
| 214 | 202 | ||
| 215 | - MIN_PSEUDO_OPCODE = 256 | ||
| 216 | - | ||
| 217 | - pseudo_op('SETUP_FINALLY', 256, ['NOP']) | ||
| 218 | - pseudo_op('SETUP_CLEANUP', 257, ['NOP']) | ||
| 219 | - pseudo_op('SETUP_WITH', 258, ['NOP']) | ||
| 220 | - pseudo_op('POP_BLOCK', 259, ['NOP']) | ||
| 203 | + # Pseudo ops are above 255: | ||
| 221 | 204 | ||
| 222 | - pseudo_op('JUMP', 260, ['JUMP_FORWARD', 'JUMP_BACKWARD']) | ||
| 223 | - pseudo_op('JUMP_NO_INTERRUPT', 261, ['JUMP_FORWARD', 'JUMP_BACKWARD_NO_INTERRUPT']) | ||
| 205 | + def_op('SETUP_FINALLY', 256) | ||
| 206 | + def_op('SETUP_CLEANUP', 257) | ||
| 207 | + def_op('SETUP_WITH', 258) | ||
| 208 | + def_op('POP_BLOCK', 259) | ||
| 224 | 209 | ||
| 225 | - pseudo_op('LOAD_METHOD', 262, ['LOAD_ATTR']) | ||
| 226 | - pseudo_op('LOAD_SUPER_METHOD', 263, ['LOAD_SUPER_ATTR']) | ||
| 227 | - pseudo_op('LOAD_ZERO_SUPER_METHOD', 264, ['LOAD_SUPER_ATTR']) | ||
| 228 | - pseudo_op('LOAD_ZERO_SUPER_ATTR', 265, ['LOAD_SUPER_ATTR']) | ||
| 210 | + def_op('JUMP', 260) | ||
| 211 | + def_op('JUMP_NO_INTERRUPT', 261) | ||
| 229 | 212 | ||
| 230 | - pseudo_op('STORE_FAST_MAYBE_NULL', 266, ['STORE_FAST']) | ||
| 231 | - pseudo_op('LOAD_CLOSURE', 267, ['LOAD_FAST']) | ||
| 213 | + def_op('LOAD_METHOD', 262) | ||
| 214 | + def_op('LOAD_SUPER_METHOD', 263) | ||
| 215 | + def_op('LOAD_ZERO_SUPER_METHOD', 264) | ||
| 216 | + def_op('LOAD_ZERO_SUPER_ATTR', 265) | ||
| 232 | 217 | ||
| 233 | - MAX_PSEUDO_OPCODE = MIN_PSEUDO_OPCODE + len(_pseudo_ops) - 1 | ||
| 218 | + def_op('STORE_FAST_MAYBE_NULL', 266) | ||
| 219 | + def_op('LOAD_CLOSURE', 267) | ||
| 234 | 220 | ||
| 235 | - del def_op, pseudo_op | ||
| 221 | + del def_op | ||
| 236 | 222 | ||
| 237 | - opname = ['<%r>' % (op,) for op in range(MAX_PSEUDO_OPCODE + 1)] | ||
| 223 | + opname = ['<%r>' % (op,) for op in range(max(opmap.values()) + 1)] | ||
| 238 | 224 | for op, i in opmap.items(): | |
| 239 | 225 | opname[i] = op | |
| 240 | 226 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,2 @@ | |||
| 1 | + Remove ``opcode.is_pseudo``, ``opcode.MIN_PSEUDO_OPCODE`` and ``opcode.MAX_PSEUDO_OPCODE``, | ||
| 2 | + which were added in 3.12, were never documented and were not intended to be used externally. | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -72,10 +72,7 @@ def main(opcode_py, | |||
| 72 | 72 | opcode = get_python_module_dict(opcode_py) | |
| 73 | 73 | opmap = opcode['opmap'] | |
| 74 | 74 | opname = opcode['opname'] | |
| 75 | - is_pseudo = opcode['is_pseudo'] | ||
| 76 | 75 | ||
| 77 | - MIN_PSEUDO_OPCODE = opcode["MIN_PSEUDO_OPCODE"] | ||
| 78 | - MAX_PSEUDO_OPCODE = opcode["MAX_PSEUDO_OPCODE"] | ||
| 79 | 76 | MIN_INSTRUMENTED_OPCODE = opcode["MIN_INSTRUMENTED_OPCODE"] | |
| 80 | 77 | ||
| 81 | 78 | NUM_OPCODES = len(opname) | |
@@ -101,16 +98,11 @@ def main(opcode_py, | |||
| 101 | 98 | for name in opname: | |
| 102 | 99 | if name in opmap: | |
| 103 | 100 | op = opmap[name] | |
| 104 | - if op == MIN_PSEUDO_OPCODE: | ||
| 105 | - fobj.write(DEFINE.format("MIN_PSEUDO_OPCODE", MIN_PSEUDO_OPCODE)) | ||
| 106 | 101 | if op == MIN_INSTRUMENTED_OPCODE: | |
| 107 | 102 | fobj.write(DEFINE.format("MIN_INSTRUMENTED_OPCODE", MIN_INSTRUMENTED_OPCODE)) | |
| 108 | 103 | ||
| 109 | 104 | fobj.write(DEFINE.format(name, op)) | |
| 110 | 105 | ||
| 111 | - if op == MAX_PSEUDO_OPCODE: | ||
| 112 | - fobj.write(DEFINE.format("MAX_PSEUDO_OPCODE", MAX_PSEUDO_OPCODE)) | ||
| 113 | - | ||
| 114 | 106 | ||
| 115 | 107 | for name, op in specialized_opmap.items(): | |
| 116 | 108 | fobj.write(DEFINE.format(name, op)) | |
@@ -126,7 +118,7 @@ def main(opcode_py, | |||
| 126 | 118 | ||
| 127 | 119 | deoptcodes = {} | |
| 128 | 120 | for basic, op in opmap.items(): | |
| 129 | - if not is_pseudo(op): | ||
| 121 | + if op < 256: | ||
| 130 | 122 | deoptcodes[basic] = basic | |
| 131 | 123 | for basic, family in _opcode_metadata["_specializations"].items(): | |
| 132 | 124 | for specialized in family: | |
| Back | FazBrowse Home | New Git URL |
0 commit comments