Has anyone been able to successfully generate native image using graalvm for a clojure app that uses postgres? I am using postgres -
On running the agent for native image generation I get this huge list of error. Attaching a file.
Perhaps, try this other postgres driver, I'd be curious to know if it compiles with native-client. https://github.com/impossibl/pgjdbc-ng
@mikeb I removed
But I get an exception
Execution error (ClassNotFoundException) at jdk.internal.loader.BuiltinClassLoader/loadClass (BuiltinClassLoader.java:583). org.postgresql.ds.PGSimpleDataSource
I know not entirely related to GraalVM, but the logo for Babashka is funny: it is written ba-bash-ka, and if you remove bash, it yields baka, which sounds like the Japanese word for “stupid” xD1😂
So, just fyi (following up on the question above on Graalvm, native-image and the clj-http lib), it looks like I do need the bells and whistles of clj-http and clj-http-lite isn't enough. Client SSL certificate authentication seems to be either a bell or whistle. I still have a useful Clojure program that does what I want -- I was just hoping to make this util an easily distributable binary image. I'll try to find another util to try this out on.
Excited to see some activity at https://clojure.atlassian.net/browse/CLJ-1472!
I put it in my Clojure survey comments box, maybe I wasn't the only one 😛1👍
I totally forgot mentioning GraalVM in the survey. I'll pay more attention next year
darn it i forgot too :(
(removed f argument and fixed unquote-splice for fut-bindings)
(def o (Object.)) (def mut (int-array 1)) (defmacro do-parallel [n] (let [fut-bindings (for [i (range n) sym [(symbol (str "fut_" i)) `(future (locking o (aset mut 0 (inc (long (aget mut 0))))))]] sym) fut-names (vec (take-nth 2 fut-bindings))] `(let [~@fut-bindings] ;; start all futures (doseq [f# ~fut-names] ;; wait for all futures @f#)))) (time (dotimes [_ 10000] (do-parallel 100))) ;; (println (aget mut 0)) ;; for checking correctness
does this change anything I care about?
yeah, it was
[@fut-bindings] which wasn't correct
(in the issue)
it should be
ah, I think this is the jira editor messing with stuff
I had that
ok. yeah, I've had that before. one minor point is that
do-parallel had an
f arg which is now not used anymore, but that's just cosmetic