This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-08-30
Channels
- # aleph (15)
- # announcements (4)
- # aws (2)
- # bangalore-clj (7)
- # beginners (236)
- # calva (24)
- # cider (11)
- # cljs-dev (63)
- # clojure (141)
- # clojure-europe (3)
- # clojure-india (2)
- # clojure-italy (8)
- # clojure-nl (3)
- # clojure-spec (8)
- # clojure-uk (52)
- # clojured (1)
- # clojuredesign-podcast (4)
- # clojurescript (35)
- # clojutre (3)
- # community-development (1)
- # cursive (77)
- # data-science (1)
- # datomic (3)
- # emacs (13)
- # fulcro (7)
- # graalvm (78)
- # graphql (2)
- # nrepl (7)
- # off-topic (18)
- # pathom (25)
- # reagent (12)
- # reitit (31)
- # shadow-cljs (178)
- # spacemacs (7)
- # tools-deps (32)
- # xtdb (10)
- # yada (3)
I tried to make a socket REPL work with GraalVM last night and I bumped into the locking issue again. It does work without a problem on 1.9.0. I wonder what changed between 1.9.0 and 1.10.1 that makes this error appear, while the Android locking issue on JIRA is much older than that?
Hmm, in 1.9.0 I see this commit: https://github.com/clojure/clojure/blob/841fa60b41bc74367fb16ec65d025ea5bde7a617/src/clj/clojure/core/server.clj
but then a few commits later towards 1.10.1 locking
is introduced again:
https://github.com/clojure/clojure/commit/4d2a7dbae68036dcc80cb40ca155985ad06aaeb8#diff-9d18217091c22931ab1470e586ec2cd5
could it have something to do with tap> support in prepl? https://github.com/clojure/clojure/blob/4d2a7dbae68036dcc80cb40ca155985ad06aaeb8/src/clj/clojure/core/server.clj#L282-L289
Could very well be. If I remove the locking reference in server.clj I still get the same error
What are the chances of getting Clojure to work on GraalVM?
@neo2551 most of it already works. Is there some code that you couldnt get to work?
@neo2551 Some example projects: - https://github.com/taylorwood/clojurl - https://github.com/kkinnear/zprint - https://github.com/borkdude/clj-kondo
Can you do repl development on GraalVM?
If you're asking whether you can use the Clojure REPL with GraalVM the answer is: Yes! Absolutely.
It's a full-featured Java runtime. It behaves more or less like any other, at least in my experience. Works with CIDER, nREPL, etc.
Ok! I thought the limitations of GraalVM would not allow Clojure to load namespaces dynamically
Workflow using GraalVM and some experience sharing Would be a great subject for a talk
Until you start trying to build self-contained binaries it's literally no different from using Oracle or OpenJDK, at least as far as I know.
So, the only difference is when you create uberjar?
So you could use GraalVM Instead of JVM and it would work?
With better speed?
And better memory?
But do you need to?
No. You ought to be able to use it as a stand-in replacement for Oracle Java (or OpenJDK). In fact, some people are arguing that people ought to do that. https://hackernoon.com/why-the-java-community-should-embrace-graalvm-abd3ea9121b5
There's a lot of hype around the native image stuff, but I'm personally just as excited about the polyglot features.
Me too
We could just use scikit learn out of the box
And I can finally ditch R xD
I am thinking of exploring Apache Arrow
For cljs or clj
Oracle's claims about the performance of hitherto non-JVM languages are bananas. https://youtu.be/8AYESZIaacg?t=960
I need a DF (timeseries) data structure and it is pain without it
Guess I will try to sneak GraalVM into work :)
> sneak Should be pretty painless. You could recommend trying it out to see if there are performance gains. 😉
I've been noodling on a library to make GraalVM cross-language interop easier from the Clojure side.
Haha, I am solo CLJS developer in a data science team, guess it would be easy for me to make the technical point lol
Okay okay, you got me hooked I will try it. I hope the experience is painless, is there any intro on how to swap the JVM with GraalVM?
I personally use jEnv because I find that it plays well with my toolchain (Emacs, CIDER).
user>
(put-binding! "incall" (proxy-fn #(map inc %)))
nil
user>
(r-eval "incall(1:10) + 1")
[3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0]
Looks cool :)
Which libraries are you interested in for R?
At work I've been exploring making a Clojure library we develop available to R programmers.
@neo2551 Not to throw a wet blanket on your enthusiasm, but I should say that GraalVM does not make dependency hell any easier. All the pain of working with scikit learn, scipy, and friends will be just as bad in Graal-land.
Why is there dependency hell?
Oh, I've just found that getting the right versions of libraries to play well together can be a pain when native code is involved.
I always wanted to avoid learning Java, but at some point I will have to I guess.
Python support is experimental haha
Guess R will be the library then.
We could have a CLJ with CLJS interop XD
So what is stopping the community to move to graalVm?
Yeah I joined :) I just need time to play a bit with some of their tools.
I feel I am perpetuating the Lisp curse with clojure, I feel I want try things on my own more than to reuse what the community already created.
@zane @neo2551 , regarding R on GraalVM, I have had some basic experiments recently, thanks to a discussion with @slack.jcpsantiago . See some examples here -- maybe this helps: https://github.com/scicloj/fastr-examples/ https://github.com/scicloj/fastr-examples/blob/master/examples/examples.clj
@U066L8B18 I don't suppose you've had any luck getting FastR to work with Stan?
No. 😞 Trying to install it, I get some errors.
No. 😞 Trying to install it, I get some errors.