Hi folks :wave: I’m trying to run Kotlinx Datafram...
# datascience
e
Hi folks 👋 I’m trying to run Kotlinx Dataframe 0.8.1 on Kotlin 1.7.20 (because I want the shiny new file visitor support), i.e.:
Copy code
plugins {
    kotlin("jvm") version "1.7.20"
    id("org.jetbrains.kotlinx.dataframe") version "0.8.1"
}
During compilation, I get the warning:
Copy code
ksp-1.7.10-1.0.6 is too old for kotlin-1.7.20. Please upgrade ksp or downgrade kotlin-gradle-plugin to 1.7.10.
And when I try to run the code, I get the error in the 🧵. Is there a way to “upgrade ksp”, or is that something DataFrame would need to do?
Copy code
java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.<init>(org.jetbrains.kotlin.resolve.BindingContext, org.jetbrains.kotlin.codegen.ClassBuilderMode, java.lang.String, org.jetbrains.kotlin.config.LanguageVersionSettings, boolean, org.jetbrains.kotlin.codegen.state.IncompatibleClassTracker, org.jetbrains.kotlin.config.JvmTarget, boolean, kotlin.jvm.functions.Function1, kotlin.jvm.functions.Function1, int, kotlin.jvm.internal.DefaultConstructorMarker)'
	at com.google.devtools.ksp.processing.impl.ResolverImpl.<init>(ResolverImpl.kt:143)
	at com.google.devtools.ksp.AbstractKotlinSymbolProcessingExtension.doAnalysis(KotlinSymbolProcessingExtension.kt:188)
	at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:124)
	at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:100)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:265)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:53)
	at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:256)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:99)
	at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:58)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:158)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:99)
	at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:47)
	at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1645)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
	at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
a
I think dataframe uses KSP and relies on Kotlin 1.7.10. you will have to downgrade kotlin (sadly, Kotlin compiler is inseparable from kotlin gradle plugin) or use dev version of Dataframe. The second one is probably better.
n
Hi! I can suggest using
0.9.0-dev-1117
with Kotlin 1.7.20
e
Thank you both! I’ll try out
0.9.0-dev-1117
.
On the same topic, can you cut a release compatible with 1.7.21 please?
Copy code
ksp-1.7.20-1.0.8 is too old for kotlin-1.7.21. Please upgrade ksp or downgrade kotlin-gradle-plugin to 1.7.20.
The error occurs when using:
Copy code
plugins {
    val kotlinVersion = "1.7.21"
    val kotlinDataframeVersion = "0.9.0-dev-1207"

    kotlin("jvm") version kotlinVersion
    id("org.jetbrains.kotlinx.dataframe") version kotlinDataframeVersion
}
a
KSP is turning the same mess, KAPT was.