Fork me on GitHub
#datalevin
<
2022-03-29
>
fs4205:03:57

Sorry but having issues to get datalevin (0.6.3) to work in visual studio code with calva. As soon as I eval (def conn (d/get-conn "data/pbdldb")) it blows up with a stacktrace in the terminal: ERROR: Unhandled REPL handler exception processing message {:op stacktrace, :id 25, :session f93515eb-d72a-4565-a11b-f02e9cc72927} java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class org.lmdbjava.ByteBufferProxy ... I find a github issue in datalevin that points at the same kind of exception, and seems to be related to M1 support (?)... I'm using a M1 MacBookPro. Any advise/suggestions?

Huahai16:03:18

M1 is not currently supported.

Huahai16:03:46

an alternative is to install a x86_64 JDK with rosetta on a M1.

fs4219:03:36

Sigh... that's a lot of friction...

zeitstein07:03:30

Any updates on transaction functions in Datalevin? If the plan is to serialize them for persistence, will there be a de-serialization cost on each use of a transaction function? I.e. would the following from https://docs.datomic.com/on-prem/reference/database-functions.html#limitations-of-transaction-functions hold for Datalevin? > • Transaction functions are serialized by design. To achieve best performance, limit the work of transaction functions to only things that require transaction-time access to the current value of the database.

Huahai16:03:20

I am working on this, and will have a version out soon. Correct. But the serialization cost should be minimal, everything in Datalevin are stored in serialized form. Transaction function will not be more costly than others.

gratitude 1
Huahai17:03:41

I just tested, transaction function should just work, if they are defined with inter-fn instead of fn. So it already works.

🎉 1