Created
January 22, 2020 17:26
-
-
Save Fuyukai/cecd66bcccb006392d91a24ab947db79 to your computer and use it in GitHub Desktop.
Broken Kython debug output due to a compiler bug
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
idx: 0 | Next instruction: PythonInstruction(opcode=LOAD_BUILD_CLASS, argument=0) | |
idx: 1 | Next instruction: PythonInstruction(opcode=LOAD_CONST, argument=0) | |
idx: 2 | Next instruction: PythonInstruction(opcode=LOAD_CONST, argument=1) | |
idx: 3 | Next instruction: PythonInstruction(opcode=MAKE_FUNCTION, argument=0) | |
idx: 4 | Next instruction: PythonInstruction(opcode=LOAD_CONST, argument=1) | |
idx: 5 | Next instruction: PythonInstruction(opcode=CALL_FUNCTION, argument=2) | |
idx: 0 | Next instruction: PythonInstruction(opcode=LOAD_NAME, argument=0) | |
idx: 1 | Next instruction: PythonInstruction(opcode=STORE_NAME, argument=1) | |
idx: 2 | Next instruction: PythonInstruction(opcode=LOAD_CONST, argument=0) | |
idx: 3 | Next instruction: PythonInstruction(opcode=STORE_NAME, argument=2) | |
idx: 4 | Next instruction: PythonInstruction(opcode=LOAD_CONST, argument=1) | |
idx: 5 | Next instruction: PythonInstruction(opcode=RETURN_VALUE, argument=0) | |
idx: 6 | Next instruction: PythonInstruction(opcode=STORE_NAME, argument=0) | |
idx: 7 | Next instruction: PythonInstruction(opcode=LOAD_NAME, argument=1) | |
idx: 8 | Next instruction: PythonInstruction(opcode=LOAD_NAME, argument=0) | |
idx: 9 | Next instruction: PythonInstruction(opcode=CALL_FUNCTION, argument=0) | |
Fatal interpreter error! | |
Kython stack (most recent frame first): | |
Frame 0: | |
File <builtin>, in A, at <kotlin PyType$builtinFunctionWrapper$2$1> | |
Frame 1: | |
File test.py, instruction idx 9, line 5, in <module> | |
_raw_type(A()) | |
Disassembly: | |
1 class A: | |
00 LOAD_BUILD_CLASS 0 | |
01 LOAD_CONST 0 (green.sailor.kython.interpreter.pyobject.internal.PyCodeObject@1fa121e2) | |
02 LOAD_CONST 1 (green.sailor.kython.interpreter.pyobject.PyString@41) | |
03 MAKE_FUNCTION 0 | |
04 LOAD_CONST 1 (green.sailor.kython.interpreter.pyobject.PyString@41) | |
05 CALL_FUNCTION 2 | |
06 STORE_NAME 0 (A) | |
5 _raw_type(A()) | |
07 LOAD_NAME 1 (_raw_type) | |
08 LOAD_NAME 0 (A) | |
09 CALL_FUNCTION 0 <-- HERE | |
10 CALL_FUNCTION 1 | |
11 POP_TOP 0 | |
12 LOAD_CONST 2 (green.sailor.kython.interpreter.pyobject.PyNone@7eac9008) | |
13 RETURN_VALUE 0 | |
Function stack, size: 1 | |
0: green.sailor.kython.interpreter.Builtins$BUILTINS_MAP$1@62ddbd7e | |
Exception in thread "main" java.lang.VerifyError: Bad return type | |
Exception Details: | |
Location: | |
green/sailor/kython/interpreter/pyobject/user/PyUserObject.pyGreater(Lgreen/sailor/kython/interpreter/pyobject/PyObject;)Lgreen/sailor/kython/interpreter/pyobject/PyObject; @177: areturn | |
Reason: | |
Type 'java/lang/Object' (current frame, stack[0]) is not assignable to 'green/sailor/kython/interpreter/pyobject/PyObject' (from method signature) | |
Current Frame: | |
bci: @177 | |
flags: { } | |
locals: { 'green/sailor/kython/interpreter/pyobject/user/PyUserObject', 'green/sailor/kython/interpreter/pyobject/PyObject', 'green/sailor/kython/interpreter/pyobject/user/PyUserObject', 'java/lang/String', integer, 'green/sailor/kython/interpreter/pyobject/PyObject' } | |
stack: { 'java/lang/Object' } | |
Bytecode: | |
0000000: 2b12 eab8 0017 2a4d 1301 0d4e 0336 042c | |
0000010: b600 1eb6 0024 2db9 002c 0200 c000 0459 | |
0000020: c600 142c c000 042c b600 1ec0 0004 b600 | |
0000030: 84a7 0005 5701 3a05 1905 c600 6d19 05c1 | |
0000040: 009b 9a00 6519 052b b800 9fb6 0086 3a06 | |
0000050: 0336 0719 06c7 001a 12a1 3a08 0336 09bb | |
0000060: 00a3 5919 08b6 00a7 b700 abc0 00ad bf19 | |
0000070: 0659 c100 fc9a 0005 5701 c000 fc59 c600 | |
0000080: 06a7 0023 57bb 00af 59b7 00b2 12b4 b600 | |
0000090: b819 06b6 00b9 b600 bcb6 00b8 b600 bdb8 | |
00000a0: 0036 01bf a700 0c03 360a b200 ffc0 0004 | |
00000b0: 00b0 | |
Stackmap Table: | |
full_frame(@52,{Object[#2],Object[#4],Object[#2],Object[#72],Integer},{Object[#4]}) | |
same_locals_1_stack_item_frame(@54,Object[#4]) | |
append_frame(@111,Object[#4],Object[#4],Integer) | |
same_locals_1_stack_item_frame(@122,Object[#4]) | |
same_locals_1_stack_item_frame(@132,Object[#252]) | |
same_locals_1_stack_item_frame(@164,Object[#252]) | |
chop_frame(@167,2) | |
same_locals_1_stack_item_frame(@176,Object[#121]) | |
at green.sailor.kython.interpreter.pyobject.user.PyUserType.newInstance(PyUserType.kt:62) | |
at green.sailor.kython.interpreter.pyobject.PyType$builtinFunctionWrapper$2$1.invoke(PyType.kt:41) | |
at green.sailor.kython.interpreter.pyobject.PyType$builtinFunctionWrapper$2$1.invoke(PyType.kt:31) | |
at green.sailor.kython.interpreter.pyobject.function.PyBuiltinFunction$Companion$wrap$1.callFunction(PyBuiltinFunction.kt:45) | |
at green.sailor.kython.interpreter.stack.BuiltinStackFrame.runFrame(BuiltinStackFrame.kt:28) | |
at green.sailor.kython.interpreter.thread.InterpreterThread.runStackFrame(InterpreterThread.kt:46) | |
at green.sailor.kython.interpreter.KythonInterpreter.runStackFrame(KythonInterpreter.kt:88) | |
at green.sailor.kython.interpreter.pyobject.PyObject.pyCall(PyObject.kt:144) | |
at green.sailor.kython.interpreter.pyobject.PyObject.pyCall$default(PyObject.kt:138) | |
at green.sailor.kython.interpreter.instruction.impl.InstructionImpls__FunctionClassInstructionsKt.callFunction(FunctionClassInstructions.kt:47) | |
at green.sailor.kython.interpreter.instruction.impl.InstructionImpls.callFunction(Unknown Source) | |
at green.sailor.kython.interpreter.stack.UserCodeStackFrame.runFrame(UserCodeStackFrame.kt:229) | |
at green.sailor.kython.interpreter.thread.InterpreterThread.runStackFrame(InterpreterThread.kt:46) | |
at green.sailor.kython.interpreter.thread.InterpreterThread.internalWrapTraceback(InterpreterThread.kt:63) | |
at green.sailor.kython.interpreter.thread.InterpreterThread.internalRunThreadWithErrorLogs(InterpreterThread.kt:94) | |
at green.sailor.kython.interpreter.thread.InterpreterThread.internalRunThreadWithErrorLogs$default(InterpreterThread.kt:92) | |
at green.sailor.kython.interpreter.thread.MainInterpreterThread.runThread(MainInterpreterThread.kt:29) | |
at green.sailor.kython.interpreter.KythonInterpreter.runMainThread(KythonInterpreter.kt:106) | |
at green.sailor.kython.interpreter.KythonInterpreter.runPythonFromPath(KythonInterpreter.kt:121) | |
at green.sailor.kython.cli.PythonFileCommand.call(PythonFileCommand.kt:53) | |
at green.sailor.kython.cli.PythonFileCommand.call(PythonFileCommand.kt:31) | |
at picocli.CommandLine.executeUserObject(CommandLine.java:1783) | |
at picocli.CommandLine.access$900(CommandLine.java:145) | |
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) | |
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) | |
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:1975) | |
at picocli.CommandLine.execute(CommandLine.java:1904) | |
at green.sailor.kython.MakeUp.main(MakeUp.kt:70) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment