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/.
mafcocinco 2020-12-23T17:32:05.236400Z

Could someone point me to a build configuration (i.e. something like compile.sh from the hello-world example) that works when using aleph for HTTP client? I seem to be getting a good deal of errors around io.netty.channel.* classes, with a recommendation from the compiler that I include a --initialize-at-run-time flag for the each offending object. I was hoping I would not have to do each individually but perhaps that is the only way.

mafcocinco 2020-12-23T17:56:50.237300Z

additional context: I’m working off of this example, though it seems to be creating a server while I’m using the http client: https://github.com/BrunoBonacci/graalvm-clojure/tree/master/aleph. Not sure if that makes a difference.

borkdude 2020-12-23T18:49:12.238Z

@mafcocinco never tried aleph to native, but http-kit 2.5.0 works very well with graalvm. also https://github.com/borkdude/babashka.curl works cross platform (small wrapper around curl).

borkdude 2020-12-23T18:49:20.238300Z

Clj-http-lite works well too.

mafcocinco 2020-12-23T18:50:04.238800Z

cool. I’ll just use http-kit if it works. thanks.

borkdude 2020-12-23T18:50:28.239200Z

@mafcocinco babashka already bundles http-kit, so you can also use that as a native client

valerauko 2020-12-23T19:44:44.241100Z

getting netty to compile for native-image needs that you profile it beforehand with realistic workloads so it knows what gets used

valerauko 2020-12-23T19:52:03.241400Z

i was analyzing it with -agentlib:native-image-agent=config-output-dir=./resources

borkdude 2020-12-23T20:26:48.241600Z

ah