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/.
borkdude 2020-11-17T16:32:17.111800Z

GraalVM 20.3.0 webinar tomorrow: https://twitter.com/graalvm/status/1328734753349103617

lread 2020-11-17T17:49:59.112200Z

Looks like 20.3.0 is now live: https://www.graalvm.org/release-notes/20_3/

lread 2020-11-17T17:54:34.113Z

Hadn’t noticed the https://www.graalvm.org/docs/tools/dashboard/?ojr=help%3Btopic%3Dcode-size-histogram.md before, looking forward to giving it a whirl.

borkdude 2020-11-17T18:32:18.113400Z

Interesting: > Added support for method handles that represent a call to a single method accessible by the Reflection API Maybe this fixes the issue with clojure.lang.Reflector

lread 2020-11-17T19:14:52.115600Z

@borkdude, have you tried a compile yet? I’m doing some tests on rewrite-cljc. Under GraalVM 20.3.0 jdk8 https://github.com/oracle/graal/issues/2898#issuecomment-704233795. When I remove

--initialize-at-run-time=java.lang.Math$RandomNumberGeneratorHolder
the compile works.

borkdude 2020-11-17T22:20:34.116100Z

@lee I'm now trying. I'm indeed running into this error.

borkdude 2020-11-17T22:54:27.117100Z

Released clj-reflector-graal-java11-fix for GraalVM 20.3.0 https://github.com/borkdude/clj-reflector-graal-java11-fix

3👏1❤️
borkdude 2020-11-17T22:54:57.117900Z

which still seems necessary, removing it caused this error, which seems a bit different than previous versions:

borkdude 2020-11-17T22:59:08.118100Z

Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call or single field access. The method handle must be a compile time constant, e.g., be loaded from a `static final` field. Method that contains the method handle invocation: java.lang.invoke.Invokers$Holder.invoke_MT(Object, Object, Object, Object)
To enable method handles that do not require LambdaForm interpretation (e.g. because of a call to MethodHandle.bindTo()) or to diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The error is then reported at run time when the invoke is executed and the method handle has to be interpreted.