Ah, thanks for the clarification!
So just for my understanding: the interop with the JVM works via JNI then?
The native code makes calls against the JNI and the Java bytecode calls back into the Haskell native code using the static pointers?
So just for my understanding: the interop with the JVM works via JNI then?
The native code makes calls against the JNI and the Java bytecode calls back into the Haskell native code using the static pointers?
The static pointer thing is what allows us to share (practically) arbitrary Haskell closures with Scala/Java. And more than that - to get Spark's Scala code to ship these Haskell closures between machines across a cluster.