This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-11-19
Channels
- # aleph (8)
- # announcements (43)
- # babashka (43)
- # beginners (62)
- # calva (8)
- # cider (27)
- # clj-kondo (18)
- # cljs-dev (25)
- # cljsrn (16)
- # clojure (51)
- # clojure-europe (6)
- # clojure-nl (14)
- # clojure-spec (7)
- # clojure-uk (39)
- # clojurescript (17)
- # cursive (9)
- # datascript (12)
- # datomic (16)
- # events (1)
- # fulcro (7)
- # funcool (1)
- # graalvm (2)
- # graphql (5)
- # jobs (1)
- # juxt (6)
- # kaocha (9)
- # leiningen (11)
- # luminus (1)
- # malli (1)
- # off-topic (80)
- # other-languages (2)
- # overtone (3)
- # pedestal (5)
- # quil (1)
- # re-frame (6)
- # reagent (1)
- # reitit (4)
- # rewrite-clj (5)
- # shadow-cljs (207)
- # spacemacs (1)
- # specter (4)
- # sql (1)
- # vim (14)
- # xtdb (7)
I'm considering making the conch low level namespace unaliased, but you can still require it. Instead the conch main namespace will take its place under the conch alias. Babashka and sci have gotten a lot better and now they can support the conch macros:
$ bb -o '(conch/programs ls) (ls)'
LICENSE
README.md
bb
doc
examples
Nice 🙂
btw, did you already think about supporting a whole range of dependencies (libraries)? I'm assuming we cannot add everything to Babashka, so it would be nice if we could somehow extend Babashka on a per case level. I'm thinking for instance about an AWS api layer
@jeroenvandijk That's what sci as a library is for. Babashka is once instance of what you can do with sci, but people have been using it to make other GraalVM based tools that can execute user code as well
Ah yeah makes sense. I was thinking though it would be nice to not be dependent on the GraalVM compilation step, and just think in terms of one binary (babashka)
No I mean babashka would be able to pull in other layers, like how clj
/ tools.deps
can pull in dependencies. So we would basically need a native version of Clojars (I think)
I recently looked into AWS Lambda layers, maybe this would be the right approach
It is not clear to me how this should all work, but I think it would be nice to do many more things with something like Babashka
layers are like docker image layers? that only adds files to your environment. bb is one file. I don't see how that would work.
No i don't see it either yet. I'll think about it more and experiment with the idea and let you know! 🙂
bb could interop with other native libraries or call other native binaries by shelling out. but then you would still have to pre-compile AWS libs to native code
yeah that's true, but let's say there are 10 of those libraries. For most people it would mean just combining those libraries and not having to use GraalVM at all
I have been thinking about this, you could have like bb_aws, bb_hiccup etc. but these would be forks
yeah that would be an option too. I guess it's all premature now and the community around this still needs to unfold
I see many applications internally though
if GraalVM allows Java / Clojure libraries to compile to some kind of C library with headers, then that could potentially be used via dynamic linking
Yeah i understand
And I guess for most use cases of Babashka it's just about scripting, so even shelling out would be acceptable?
https://github.com/oracle/graal/blob/master/substratevm/ImplementingNativeMethodsInJavaWithSVM.md
wow, if that means what i think it means, that's pretty cool
Yep, it's on my list now (but will take some time => holidays ahead)
It is a nice direction anyway 🙂
@jeroenvandijk if you want you can also contribute to https://github.com/lread/clj-graal-docs/issues/15 along the way
yes, will do
if that works, we can use clojars to distribute native version of jvm libraries... and bb could use those... that would be so cool 🙂
like how javascript libraries are distributed via cljsjs and clojars? hmm yes smart, that would save us from writing some code and hosting a server 🙂
maybe small Java wrappers would be needed, since they are using these Java annotations which are cumbersome to use in Clojure, but we'll see
@borkdude if it is of interest to you, this is what I am trying to achieve with bb - https://github.com/holyjak/blog.jakubholy.net/blob/cryogen/content/fix-files.clj - clean files during my migration from Gatsby to CryogenWeb. Very useful!
Ok, thx!