Fork me on GitHub

Pathom 3 2022.02.21-alpha is out! This release includes: • INTERNAL BREAK: the internal plan-and-run! from all runners now return env instead of the graph plan • Runner exceptions now return a wrapped error that includes environment data • Boundary interface errors are always data • Boundary interface omit stats by default, open with the :pathom/include-stats? flag on the request • Add pbip/env-wrap-plugin Also new doc pages for some of the new features:

🎉 6
❤️ 3
jacob.maine02:02:35 is out. This release adds the Combobox (a.k.a. Autocomplete) component introduced in @headlessui/react 1.5.0. The repo also includes a new project showing all the components in action. headlessui-reagent brings accessible, keyboard-friendly, style-agnostic UI components from to Reagent and re-frame projects.

🎉 3

Just published a simple tutorial with the REPL for the Clojure syntax. I got inspired by and I’ve used #sci to create the command line interface. Source: My girlfriend completed it so I hope is simple enough for totally beginners. Contributions and ideas are welcome!

❤️ 24
sci 5
clojure-spin 6
🧑‍🎓 2
👍 1

Beautiful! (3rd question only allows one specific list '( 1 2 3), but that should be any list I think)


Yes, fixed thanks :thumbsup:


FYI @U01UYD2CL10 i get a certificate not valid SSL error when I visit, likely because i have https-everywhere enabled :)


@U0509NKGK thanks. I’m waiting for netlify for it, maybe retry later


Awesome stuff! Minor things I noted: On the phone it still said that the repl is on the right, and the content spans past the screen width, making the whole page scroll sideways.


Thanks @U0ETXRFEW, fixed! Btw, it’s all done with #calva

calva 2

@U01UYD2CL10 Cool! I'll add it to the projects using SCI here:

babashka 2
🙌 1
sci 1



@U01UYD2CL10 I like the UI design, awesome work. One possible improvement: when pressing Ctrl-C or so, perhaps abort reading an incompleted form. E.g. when I typed: (first '("foo "bar")) it was difficult for me to see that I still needed to insert another quote and some parens to get back into a functioning REPL. Having a way to start over from scratch, like Ctrl-C or so, could help.


@U01UYD2CL10 btw, did you know that:

(clojure.repl/doc inc)
also works? :) You might want to evaluate (require '[clojure.repl :refer :all])) in your SCI ctx so doc is available immediately and document this.

Jakub Holý (HolyJak)10:02:58

Perhaps mention to press Enter to Eval the expression?


I think you could even display what closing delimiter is expected still as this is exposed in the ex-data of SCI's parser.


user=> (ex-data (try (sci/eval-string "[") (catch Exception e e)))
{:type :sci.error/parse, :line 1, :column 2, :edamame/expected-delimiter "]", :edamame/opened-delimiter "[", :edamame/opened-delimiter-loc {:row 1, :col 1}, :phase "parse", :file nil}


Great stuff! Thanks for making this! small suggestion, put the current "page" people are on in the URL, so they can bookmark and jump back, etc

🙌 3

@U04V15CAJ sorry for the late reply I was literally doing it 😄 what about a placeholder?


P.s. there’s also a dark version depending on your OS


@U01UYD2CL10 In the PR I showed it in the hint at the top of the REPL


Feel free to close the PR and do whatever you want, if you want to do it another way


I’m scared the hint at the top is not fixed and disappears if I keep typing commands


Thanks for the hints, I’ve added all of them


ok, just use the PR as inspiration and close it :)

🙌 2

perhaps also a link to the clojure exercism track (``) at the end as that seems to get a lot of traction lately


@U01UYD2CL10 Awesome, it works :) One very minor thing: there is a typo, demiliter is spelled as delimiter


Another idea: print functions as a special format instead of the JS output. E.g. (if (fn? ...) "<function>" ...) There may be a better way for this, e.g. overriding some protocol or multi-method. @U5H74UNSF how does clerk do this?


Also, when pressing ctrl-c, the delimiter hint can go away, now it stays there


@U04V15CAJ thanks, I’ve also added (help) with some functions. Fixed ctrl-c. For the print function makes sense but seems not working as expected. It seems that s is always a string.

(defn set-print-fn
  "Setup a custom `print-fn` for sci."
  (sci/alter-var-root sci/print-fn (constantly f)))

(set-print-fn (fn [s]
                    (if (fn? s)
                      (write-repl! s))))


This is probably because you transform the evaluated result in a string first.


Ah, I think using pr-str is better:

cljs.user=> (pr-str {:a (fn [])})
"{:a #object[Function]}"


Instead of format-out you can probably just use pr-str

🙌 1

When I transform the output in a string I just check if is fn?. It works!


That won't work for nested things like {:a (fn [])} whereas pr-str will work


Pushed the patch with pr-str


=>(map inc)


@U01UYD2CL10 I found another interesting edge case: Try typing {:a ;


there is no way to finish the input because following inputs are seen without the newline. Perhaps it makes sense to include the newline in the read input.


Similar for how [1\n2\n3] becomes [123] which imo should be [1 2 3]


Or eval using a button and let return enter newlines.


I like the current behavior better, no mouse usage


I was using it from a phone. 😃 On a computer alt+enter could evaluate. But including the newline in the read input might also work.


@U01UYD2CL10 perhaps a Where to go next link in the footer could list some resources.


Some more feedback: • can't copy/paste from REPL • description of range unclear. might want to point out that (doc range) is available.


I'll make issues


when I try to use it on mobile. I get stuck at hello world. I'm pretty sure it's because the quotes on mobile are the wrong kind. “Hello World” shows an errror.


@U7RJTCH6J IOS? Worked for me on Android in the Slack webinterface


@U7RJTCH6J This is Clojure-compatible behavior ;)

user=> "Hello World"
Syntax error compiling at (REPL:0:0).
Unable to resolve symbol: "Hello in this context


I hate those quotes on iOS... everytime I type code this trips me up as well


can confirm it seems to work on android (galaxy S20 and brave browser, latest version)


I'm on iOS. I know that this is clojure-compatible behavior, but I'm not sure even how to type a normal quote on iOS


If the repl wants to support iOS, then overriding quote insertion seems like a big improvement


For example, the same input "just works" at


I think there should be some way to inform the browser about this. I used iOS also this morning. As a workaround I long-pressed the quote key and could enter the ones that work.

👍 1

I agree it is better if it just works. Just sharing this info.


It doesn't work for me. Perhaps there is something in that site that checks the user agent or some other setting?


When I type “, just inserts " instead


Curious which part of their code does that. Nothing special comes up when I grep for the smart quote.


Does it have spellcheck="false" on the input element, maybe?


I think that might be handled by codemirror. Does tryclojure use codemirror?


typing quote from iOS into a normal codemirror editor uses "


let's find out what codemirror does then


worth a shot then


Thanks everyone for the help! Fixed all the bugs and merged PRs. spellcheck="false" was the solution

🙏 3
Jon Eskin10:02:33

I made a Magit-style interface for creating projects with clj-new and deps-new in Emacs. I included a couple cool templates I've come across but I'm looking for worthy additions if anyone knows any 🙂

🎉 21
emacs 15
👍 3
Ben Sless16:02:21

A. Very cool B. How would you like to turn it into a full-on porcelain for clojure CLI?

Jon Eskin18:02:55

that's not a bad idea! I'd finally be forced to actually learn how clojure CLI works instead of copying and pasting random aliases off the internet

Ben Sless18:02:55

similar story with learning git 🙂


Done! :thumbsup:


I wonder if you can help me understand some options in question 13. There's Scientific and there's Education. But then there's also Academic - what would be an example here that fits neither Scientific nor Education?

Alex Miller (Clojure team)17:02:49

Just take what you feel is closest, or put it in Other

👍 1

probably too late to update after deployment but should we consider babashka its own "dialect" of Clojure for the purposes of this survey?

Alex Miller (Clojure team)00:02:17

was considered, decided we would only include those dialects maintained under the Clojure org

Alex Miller (Clojure team)00:02:10

also consider filling out the Babashka survey! :)

Carsten Behring23:02:18

I updated my polyglot docker image and it contains now the Clojure dependencies inside the image for faster startup: The included libraries and their versions are listed here:, v .1.6.0 It is now more usable standalone and you can run it simply by docker run -ti -p 12345:12345 It starts a clojure repl on port 12345 where all Clojure interop libraries (clj-python, clojisr and others) work out of the box. It is full extendable if needed by either: - providing a local deps.edn file - install python , R or other non-clojure packages in a Dockerfile (suing the FROM behrica/clj-py-r:1.6.0 )

👏 9
docker 1