Does spiral support ClojureScript in the browser similar to piggieback and nrepl?
correct. cljs is still a wip in unrepl, in general
Thanks!
Selfhost cljs is a matter of implementation. Clojure cljs is not fully thought true yet.
To my knowledge, not yet
Hi! I am trying to understand how Unrepl works. Is it correct that I need to start my program using the Clojure Socket REPL, and the Unrepl client will use that to load the Unrepl server into my program and then start communicating with it?
That’s about it. Note that “need to start my program using the clojure socket repl” is just “start my program as usual except for an additional command line option.
@cgrand The additional command line option is the java system property that makes clojure.main start a Socket REPL?
Yes. Technically there’s no direct dependence on clojure.main: these properties are checked during clojure init. So any app containing some clojure code will open a socket repl when this property is set. No matter the main entry point of the app.
thx
I am using Cursive, where the Socket REPL (and thus Unrepl) and clojure.main are more intertwined, since Cursive has no native support for the Socket REPL or Unrepl.
@cgrand Does "the Unrepl client uses the process' Socket REPL to load the Unrepl server into the process and then starts communcating with it" mean that there is no such thing as a common "Unrepl server"? I.e. every Unrepl client implements its own version of it, but only adheres to the same / common Unrepl protocol?
And if so, what is the benefit over every client implementing a different protocol? The REPL connection cannot be shared between different clients anyway, can it?
(Since every client would try to load the Unrepl code into the process again, and start a new Unrepl server.)
Every client indeed embed its unrepl strain. The value is that there’s no setup to do (no middleware no versions etc) and also that authors are free to mutate (fix/extend) unrepl. Having a common ancestor, it’s easier for mutants to swap “genes”. So you can see unrepl as a blueprint for a family of private protocols.
@cgrand Is this explanation included somewhere in the readme?
@cgrand Is this summary correct? https://github.com/cursive-ide/cursive/issues/1928 (If so, please feel free to include it into the readme.)
Thanks
Are you interested in having such summary in your readme for educating others that might also be confused?
@urzds this is what I was thinking of too: add such summary near the top of the README. And also specify that unrepl is meant for toolsmithes and that typical users don’t have to care.
Is "scuh" jargon for something?
ah, lol, ok 🙂
out-of-order typist
You're also vulnerable to meltdown? 😉
If the text proposed above is agreeable, I'd submit a PR.
yes, meltdown for humans is called freudian slip
@urzds it’s a good basis, please open a PR and we’ll discuss changes there.