Hmm, I was asked by GraalVM member to gather valuable insights from Clojure team regarding this issue: https://github.com/oracle/graal/issues/9322 Frankly, I don’t know if there is anything other than “graalvm analyzer should not reach here” insight.
Clojure namespaces have to be initialized at buid time. This is why https://github.com/clj-easy/graal-build-time exists.
Yes, totally agree and the correct namespaces are initialized I believe.
I don't see that in your compile script. https://github.com/FieryCod/graalvm-repro/blob/main/compile.sh
Try adding: --initialize-at-build-time=nativetest.main
oh my bad, it has nativetest
overlooked that
FWIW, bb has java.util.UUID in its reflection config and it works
I recommend making your repro more minimal. Just Keyword in the reflect config will trigger this issue. Also you can remove the java.util.UUID thing in the script
why do you need Keyword in your reflect config?
Also this makes it work in the reflect config:
[
{
"name" : "clojure.lang.Keyword"
}
]
tl;dr: just search for the specific method that triggers the warning and dig deeper from there. repro can be improved.minimal reflect config repro:
[
{
"name" : "clojure.lang.Keyword",
"methods": [{"name": "intern"}]
}
]Many thanks @borkdude!