@borkdude I tried to compile deps.clj
locally but I can't find a graal version that is able to actually build it. With 20.1.0 I get Fatal error:java.lang.NoSuchMethodError: 'org.graalvm.compiler.options.OptionDescriptor org.graalvm.compiler.options.OptionDescriptor.create(java.lang.String, org.graalvm.compiler.options.OptionType, java.lang.Class, java.lang.String, java.lang.Class, java.lang.String, org.graalvm.compiler.options.OptionKey, boolean)'
. Something familiar?
@katox huh? deps.clj is a pretty standard project that should work with most any graalvm version. I haven't seen this error before, but fwiw, deps.clj is also used in babashka, so you might be able to check how it's used there
Try 21.0.0 btw
And perhaps Java 11. This is what I use for most of my projects now
I did, Fatal error:com.oracle.svm.core.util.VMError$HostedError: Option name "HotSpotPostOnExceptions" has multiple definitions: org.graalvm.compiler.hotspot.meta.HotSpotExceptionDispatchPlugin$Options.HotSpotPostOnExceptions and org.graalvm.compiler.hotspot.meta.HotSpotNodePlugin$Options.HotSpotPostOnExceptions
it is java11
and 21?
My wife is calling me, I must go now :/
dinner time ;)
the multiple deps is graalvm-ce-java11-21.0.0.2
I can build other things just fine
np, enjoy your dinner
@katox I'm back. Just for the record. Are you using deps.clj as a library or are you trying to compile the project to native as is?
as is to native
it seems like a some kind of a compatibility error
I can't build the latest babashka either but it fails uberjaring it so I don't really know
$ env BABASHKA_LEAN=true script/uberjar
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment GraalVM CE 21.0.0.2 (build 11.0.10+8-jvmci-21.0-b06)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.0.2 (build 11.0.10+8-jvmci-21.0-b06, mixed mode, sharing)
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
OpenJDK 64-Bit Server VM warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
Syntax error (FileNotFoundException) compiling at (babashka/impl/transit.clj:1:1).
Could not locate sci/impl/namespaces__init.class, sci/impl/namespaces.clj or sci/impl/namespaces.cljc on classpath.
Full report at:
/tmp/clojure-9354290185570760188.edn
Error encountered performing task 'do' with profile(s): 'base,system,user,provided,dev,transit,hiccup,test-check,reflection'
Suppressed exit
katox@oryx ~/p/babashka (master)$ cat /tmp/clojure-9354290185570760188.edn
{:clojure.main/message
"Syntax error (FileNotFoundException) compiling at (babashka/impl/transit.clj:1:1).\nCould not locate sci/impl/namespaces__init.class, sci/impl/namespaces.clj or sci/impl/namespaces.cljc on classpath.\n",
@katox As for babashka: you should clone the repo with --recursive
so it clones the submodules. Sci is a submodule of babashka
i did
As for deps.clj, it's currently based on 20.3.0: https://github.com/borkdude/deps.clj/blob/0b70844983bf23fff4c2991dadb3fd14c4102b27/project.clj#L18 This is a hard dependency but this can be removed when upgrading to 21.0.0
A PR to upgrade that project to 21.0.0 is welcome
I also tried that but it failed as well
kinda getting errors everywhere .)
It builds on CI
with 20.3.0 java 11
what's puzzling is that it bb doesnt uberjar in docker build
I have 6 graal versions here, let me try .)
hmm, yes, it seems to build with this one
it doesn't with 20.1 or 21 on my machine
nor 19.x
yes, you MUST use 20.3.0 java 11 to compile it. > This is a hard dependency
But this will change from 21.0.0 on
my bad, thanks
babashka is already on 21.0.0
PR to upgrade deps.clj welcome
I'll have a look
(mainly the CI config and removal of the reflector fix lib)
@borkdude mostly done but I can't guess what's the right gu filepath on mac
I'll have a look tomorrow
last try .)
hmm, not /Users/distiller/graalvm-ce-java11-21.0.0.2/Contents/Home/bin/gu: No such file or directory
either
nvm, someone with a mac would know
you can use brew install delaguardo/graalvm/graalvm-ce-java11@21.0.0.2
and follow instructions given in Caveats
green, stupid copy-and-paste .)