Fork me on GitHub
#graalvm
<
2021-12-16
>
borkdude10:12:06

I'm trying to native-compile an application which uses datomic free but datomic free is AOT-ed against an old version of Clojure which still has the locking problem (prior to clojure 1.10.2). Is datomic free replaced by dev-local?

jaret13:12:14

Howdy Bork! Dev-local is the successor to datomic-free and is documented https://docs.datomic.com/cloud/dev-local.html and you can get the latest dev-local https://cognitect.com/dev-tools. Happy to answer any specific questions you may have after looking into it for the app. I usually live in the #datomic channel and you can hit me up via <mailto:[email protected]|[email protected]>.

borkdude13:12:56

Hey! Enjoyed the Cognicast :)

borkdude13:12:21

Do you by any chance know against what clojure version dev-local is AOT-ed?

borkdude13:12:32

(assuming it's distributed as .class files and not .clj files)

borkdude14:12:15

It seems you still need datomic-free for the datomic.api and datomic.function namespaces?

borkdude10:12:38

Original exception that caused the problem: org.graalvm.compiler.core.common.PermanentBailoutException: Frame states being merged are incompatible: unbalanced monitors - locked objects do not match
 This frame state: [locals: [_,_,_,_,_,_,_,_,_,350,_,_] stack: [355] locks: [] rethrowException]
Other frame state: [locals: [_,_,_,_,_,_,_,_,_,350,_,_] stack: [368] locks: [362 / 353] rethrowException]
Parser context: datomic.peer$delete_database.invokeStatic(peer.clj:789) [bci: 269, intrinsic: false]