This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-10-06
Channels
- # announcements (69)
- # aws-lambda (3)
- # babashka (45)
- # beginners (28)
- # calva (4)
- # clara (7)
- # clojure (23)
- # clojure-spec (5)
- # clojure-uk (18)
- # clojurescript (57)
- # clojutre (1)
- # cursive (20)
- # datomic (31)
- # emacs (5)
- # figwheel-main (3)
- # fulcro (16)
- # graalvm (7)
- # luminus (4)
- # nrepl (9)
- # off-topic (50)
- # re-frame (8)
- # reitit (2)
- # rewrite-clj (10)
- # shadow-cljs (88)
- # spacemacs (1)
- # sql (6)
- # vim (2)
@borkdude I would be more interested to see a list of what is not (yet) supported, and other general limitations
Can you name a few examples of what would be needed for scripting thatโs currently not possible? Iโd be happy to add them to the README
Good point. But maybe it's good to start with the expectations you might have of such a tool.
I have read through the joker README and they mainly describe the difference in data types (int, float, etc). In that regard babashka is exactly the same as normal Clojure. It also supports multi-threading (unlike joker) because where it can, it just proxies through to "normal Clojure".
If there are any functions missing, it's fairly trivial to add them. But using libraries from maven is not something that is supported. Also creating namespaces isn't supported. And the ns macro isn't. You can use require but only to alias namespaces that are already present.
Java interop is "faked" by creating functions named File.
and so on which proxy through.
And there might be some macros missing, but I believe the most important ones are in there now.
not all functions are mapped in sci, for example println is not, but a lot of them are additionally mapped in babashka yes.
this is what's in sci from clojure.core: https://github.com/borkdude/sci/blob/master/src/sci/impl/namespaces.cljc#L28 you can find the additional mappings for babashka here: https://github.com/borkdude/babashka/blob/master/src/babashka/impl/clojure/core.clj
right, it's more like names directly mapping to values, as you get with direct linking
sci (which powers babashka) is on the front page of HN. https://news.ycombinator.com/
regarding cider, apparently: https://github.com/clojure-emacs/cider#user-content-logo
i didn't have any success on figuring out the origin of calva's, but perhaps if it's necessary, PEZ can be queried for a definitive response.
I was trying some things out in a babashka socket-repl, (meta {})
and (with-meta {} {:foo :bar})
both cause an endless stream of bb=> Unmatched delimiter: ) [at line 1, column 9]
bb '(println {})'
clojure.lang.ArityException: Wrong number of args (0) passed to: clojure.core/distinct?
sorry about that. I will have to release a new version of bb for this. thanks for the reminder
how about the meta stuff? I was trying to check if metadata is supposed to work or not...
@plexus I think this should already work in the "old" bb: (meta (vary-meta {:a 1} #(assoc % :foo 1)))