diff --git a/uncompyle6/__init__.py b/uncompyle6/__init__.py index ae599115..a08bb78b 100644 --- a/uncompyle6/__init__.py +++ b/uncompyle6/__init__.py @@ -41,6 +41,8 @@ PYTHON3 = (sys.version_info >= (3, 0)) PYTHON_VERSION = sys.version_info[0] + (sys.version_info[1] / 10.0) PYTHON_VERSION_STR = "%s.%s" % (sys.version_info[0], sys.version_info[1]) +IS_PYPY = '__pypy__' in sys.builtin_module_names + sys.setrecursionlimit(5000) def check_python_version(program): diff --git a/uncompyle6/opcodes/opcode_27.py b/uncompyle6/opcodes/opcode_27.py index 0566bf17..b4dbba3f 100755 --- a/uncompyle6/opcodes/opcode_27.py +++ b/uncompyle6/opcodes/opcode_27.py @@ -202,10 +202,19 @@ EXTENDED_ARG = 145 def_op('SET_ADD', 146) def_op('MAP_ADD', 147) +from uncompyle6 import IS_PYPY +if IS_PYPY: + def_op('LOOKUP_METHOD', 201) + def_op('CALL_METHOD', 202) + def_op('BUILD_LIST_FROM_ARG', 203) + def_op('JUMP_IF_NOT_DEBUG', 204) + updateGlobal() del def_op, name_op, jrel_op, jabs_op from uncompyle6 import PYTHON_VERSION if PYTHON_VERSION == 2.7: import dis + # print(dis.opmap.items()) + print(set(dis.opmap.items()) - set(opmap.items())) assert all(item in opmap.items() for item in dis.opmap.items())