Skip to content

Instantly share code, notes, and snippets.

@Fuyukai
Created January 22, 2020 17:26
Show Gist options
  • Save Fuyukai/cecd66bcccb006392d91a24ab947db79 to your computer and use it in GitHub Desktop.
Save Fuyukai/cecd66bcccb006392d91a24ab947db79 to your computer and use it in GitHub Desktop.
Broken Kython debug output due to a compiler bug
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