| Graalvm native image for Clojure is a solved problem. Just add this library to the project and add a flag to native image command line. https://github.com/clj-easy/graal-build-time This initializes Clojure classes at build time and it mostly works for pure Clojure code. Doing complicated things (e.g. depending on native library, etc.) requires some tweaking. For example, a few packages may need to be declared as initialized at build time or run time, depending what they are doing. And any unresolved classes need to be added to reflection-config.json. All these are easily discoverable if one talks to people in the Clojurian slack channels. Clojure is a small community, so it helps to be part of it, because there are not a lot of open materials on the Web. |
except...
> mostly works
> requires some tweaking
> discoverable if...
I know nothing about Clojure but from your caveats I think I can see why he spent hours banging his head against a wall.