graalvm

Discuss GraalVM related topics. Use clojure 1.10.2 or newer for all new projects. Contribute to https://github.com/clj-easy/graal-docs and https://github.com/BrunoBonacci/graalvm-clojure. GraalVM slack: https://www.graalvm.org/slack-invitation/.
chrisn 2020-08-22T20:28:11.006100Z

Is it possible to build a clojure native app that doesn't have initialize-at-build-time? Stepping back I would like to use xgboost and xerial-larray, both of which have jni bindings and it appears from graalvm-native's documentation this is possible but there appear to be static initialization issues. So if there is a known example, java or otherwise, of someone using libraries that use JNI that may also help a bit.

chrisn 2020-08-22T20:29:08.006700Z

Also, I know that there is a solid pool of documentation about using graal native with Clojure. Where are those docs?

chrisn 2020-08-22T20:34:02.006900Z

I get the same issue if I use initialize-at-build-time=clojure. If I just use initialize-at-build-time then things appear fine but that causes other issues.

borkdude 2020-08-22T20:38:45.007300Z

Check out the topic of this channel

borkdude 2020-08-22T20:40:10.007800Z

@chris441 I have a couple of examples that use JNI. E.g. https://github.com/borkdude/clojure-rust-graalvm. https://github.com/epiccastle/spire is also one.

chrisn 2020-08-22T20:40:32.008400Z

Awesome, thanks

borkdude 2020-08-22T20:42:19.009Z

@chris441 As for static initialization issues: you can make exceptions for specific classes, e.g. https://github.com/babashka/babashka-sql-pods/blob/5d04e7fce699741e1b5e8488cf0a8f70843a3e2e/script/compile#L60

chrisn 2020-08-22T20:42:36.009400Z

beautiful 🙂.

chrisn 2020-08-22T20:43:53.010200Z

clojure-rust is also a pathway I have looked at before but using JNA or JNR...neither of which work (for good reason) in graal native

chrisn 2020-08-22T20:44:43.010600Z

Also, sql bindings....really nice. That was going to be a question soon.

chrisn 2020-08-22T20:46:52.011200Z

Do you have a replacement for sun.misc.Unsafe?

borkdude 2020-08-22T20:48:07.011400Z

I've never used that class, sorry

1👍
borkdude 2020-08-22T20:49:44.012Z

As for tips and tricks: https://github.com/lread/clj-graal-docs

1🤘