This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-05-16
Channels
- # announcements (7)
- # aws (9)
- # babashka (31)
- # beginners (28)
- # calva (14)
- # clj-kondo (29)
- # cljs-dev (23)
- # cljsrn (16)
- # clojure (21)
- # clojure-france (1)
- # clojure-nl (2)
- # clojure-spec (20)
- # clojure-sweden (4)
- # clojure-uk (6)
- # clojurescript (62)
- # community-development (5)
- # conjure (81)
- # cursive (14)
- # datomic (5)
- # defnpodcast (2)
- # docker (1)
- # figwheel-main (11)
- # fulcro (17)
- # graalvm (5)
- # jobs-discuss (5)
- # kaocha (1)
- # off-topic (54)
- # pathom (1)
- # pedestal (1)
- # quil (1)
- # re-frame (34)
- # shadow-cljs (34)
- # tools-deps (39)
- # uncomplicate (2)
Hi, I'm launching socket repl and load-file
some script + in-ns
, *file*
var is nil. Am I doing something wrong or *file*
is not available in repl?
@armed that variable is only set when evaluating a file. After that it’s available on var metadata
Hey, @borkdude thanks for great tool. I'm calling (load-file "path/to/my-file.clj")
is this considered as eval?
Here is minimal example:
armed@mbp16 in ~/Developer/tests/bb-example
$ cat src/my_file.clj
(ns my-file)
(defn my-func
[]
(prn *file*))
(my-func)
armed@mbp16 in ~/Developer/tests/bb-example
$ bb src/my_file.clj
"/Users/armed/Developer/tests/bb-example/src/my_file.clj"
armed@mbp16 in ~/Developer/tests/bb-example
$ bb -cp src --repl
Babashka v0.0.94 REPL.
Use :repl/quit or :repl/exit to quit the REPL.
Clojure rocks, Bash reaches.
user=> (load-file "src/my_file.clj")
"/Users/armed/Developer/tests/bb-example/src/my_file.clj"
nil
user=> (my-file/my-func)
nil
nil
@armed This is expected. The *file*
var is a dynamic var which is only bound to the current file when the file is being evaluated by babashka. After that, the file value is available on var metadata.
Try:
(ns my-file)
(defn my-func
[]
(prn (:file (meta #'my-func))))
(my-func)
Wow, now my monorepo with 5 modules is now built with babashka + deps.tools (in parallel). Cool! Previously I was using bunch of bash scripts and was to lazy to figure out how to launch commands in parallel.
@jeroenvandijk Do you really need sci to execute datalog queries though? As much as I like see sci being used, a datalog query is just a piece of EDN right?
Not for datalog itself, but we want to allow code evaluation on the platform
RoamResearch (the closed source inspiration) has datalog (datascript) query functionality without Sci or Clojure and the experience is pretty bad. E.g. you don’t have any sorting options or other ways to manipulate the result
So Sci can improve this experience
I’m pretty sure Roam will start using Sci at some point as well
Not sure if you heard about RoamResearch before?
https://roamresearch.com/ It’s build in Clojure(script) and they are quite succesful 🙂
Ah yes I did! 🙂
pod.lispyclouds.docker: a docker pod for babashka: https://github.com/lispyclouds/pod-lispyclouds-docker
Nice 🙂
Is it me or would it be possible to remove some boilerplate in the main functions of the pods? The ones I’ve seen so far look pretty similar
Sure, there could be a library the wraps the boilerplate, but I'm not going to maintain that right now. First focus on functionality, then convenience
I agree, just mostly wondering if I was missing something
yes, indeed. No need to optimize too much. Might be a way to gather some feedback as well
Very cool to see a docker pod. Is there a list of all the pods somewhere? Seems like there's a pod explosion lately.
@nate there is a list here: https://github.com/borkdude/babashka/blob/master/doc/pods.md