Open fmagin opened 1 year ago
There also seems to be a problem compiling scripts:
INFO Compiling sourceFile: /home/fmagin/gits/ghidra-jupyter-kotlin/GhidraJupyterKotlin/ghidra_scripts/HelloWorldScriptKt.kt (KotlinScriptProvider)
ERROR Cannot access 'java.lang.Object' which is a supertype of 'HelloWorldScriptKt'. Check your module classpath for missing or conflicting dependencies (KotlinCompilerMessageCollector)
ERROR Type mismatch: inferred type is KClass<kotlin.Exception /* = java.lang.Exception */> but KClass<out Throwable> was expected (KotlinCompilerMessageCollector)
ERROR Cannot access 'java.lang.Object' which is a supertype of 'ghidra.program.flatapi.FlatProgramAPI'. Check your module classpath for missing or conflicting dependencies (KotlinCompilerMessageCollector)
ERROR Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
class ghidra.program.flatapi.FlatProgramAPI, unresolved supertypes: java.lang.Object
Adding -Xextended-compiler-checks argument might provide additional information.
(KotlinCompilerMessageCollector)
ERROR REPORT SCRIPT ERROR: /home/fmagin/gits/ghidra-jupyter-kotlin//GhidraJupyterKotlin/ghidra_scripts/HelloWorldScriptKt.kt : Back-end (JVM) Internal error: Failed to generate function run
File being compiled: (25,5) in /home/fmagin/gits/ghidra-jupyter-kotlin/GhidraJupyterKotlin/ghidra_scripts/HelloWorldScriptKt.kt
The root cause java.lang.IllegalStateException was thrown at: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124) (HeadlessAnalyzer) org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate function run
File being compiled: (25,5) in /home/fmagin/gits/ghidra-jupyter-kotlin/GhidraJupyterKotlin/ghidra_scripts/HelloWorldScriptKt.kt
The root cause java.lang.IllegalStateException was thrown at: org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
at org.jetbrains.kotlin.codegen.MemberCodegen.genSimpleMember(MemberCodegen.java:206)
at org.jetbrains.kotlin.codegen.ClassBodyCodegen.generateDeclaration(ClassBodyCodegen.java:170)
at org.jetbrains.kotlin.codegen.ClassBodyCodegen.generateBody(ClassBodyCodegen.java:88)
at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:132)
at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:305)
at org.jetbrains.kotlin.codegen.MemberCodegen.genClassOrObject(MemberCodegen.java:289)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateClassesAndObjectsInFile(PackageCodegenImpl.java:116)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:156)
at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:70)
at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.generatePackage(CodegenFactory.kt:143)
at org.jetbrains.kotlin.codegen.DefaultCodegenFactory.invokeLowerings(CodegenFactory.kt:122)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.runLowerings(KotlinToJVMBytecodeCompiler.kt:331)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyzeAndGenerate(KotlinToJVMBytecodeCompiler.kt:198)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileBunchOfSources(KotlinToJVMBytecodeCompiler.kt:139)
at ghidra.app.script.KotlinScriptProvider.doEmbeddedCompile(KotlinScriptProvider.java:240)
at ghidra.app.script.KotlinScriptProvider.compile(KotlinScriptProvider.java:201)
at ghidra.app.script.KotlinScriptProvider.getScriptInstance(KotlinScriptProvider.java:86)
at ghidra.app.util.headless.HeadlessAnalyzer.runScriptsList(HeadlessAnalyzer.java:898)
at ghidra.app.util.headless.HeadlessAnalyzer.processWithImport(HeadlessAnalyzer.java:1738)
at ghidra.app.util.headless.HeadlessAnalyzer.processLocal(HeadlessAnalyzer.java:448)
at ghidra.app.util.headless.AnalyzeHeadless.launch(AnalyzeHeadless.java:127)
at ghidra.GhidraLauncher.launch(GhidraLauncher.java:77)
at ghidra.Ghidra.main(Ghidra.java:54)
Caused by: java.lang.IllegalStateException: Error type encountered: [Error type: Unable to substitute type (<Error class: unknown class>)] (ErrorType).
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$typeMappingConfiguration$1.processErrorType(KotlinTypeMapper.kt:124)
at org.jetbrains.kotlin.load.kotlin.DescriptorBasedTypeSignatureMappingKt.mapType(descriptorBasedTypeSignatureMapping.kt:83)
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.kt:276)
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapClass(KotlinTypeMapper.kt:230)
at org.jetbrains.kotlin.codegen.FunctionCodegen.lambda$getThrownExceptions$3(FunctionCodegen.java:1099)
at kotlin.collections.CollectionsKt___CollectionsKt.map(_Collections.kt:3787)
at org.jetbrains.kotlin.codegen.FunctionCodegen.getThrownExceptions(FunctionCodegen.java:1097)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:215)
at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:166)
at org.jetbrains.kotlin.codegen.FunctionCodegen.gen(FunctionCodegen.java:137)
at org.jetbrains.kotlin.codegen.MemberCodegen.genSimpleMember(MemberCodegen.java:200)
... 22 more
We last updated over a year ago and are still on the kernel version
0.11.0-89-1
with Kotlin 1.6. The current kernel version0.12.0-14
supports Kotlin 1.8.20, and is probably nice to upgrade to.The kernel is now also regularly published to Maven without requiring JetBrain internal dev dependencies, so upgrading is now a lot easier and doesn't require asking the maintainer for a new manual release.
The current blocker for upgrading is that
InterruptKernelAction
andShutdownKernelAction
don't compile anymore, because they import various specific things from the underlying kernel, and those locations seem to have changed