@mauricio.szabo scripts/setup removes lib/main.js -- is that intentional? for the moment, git checkout lib/main.js seems to work, but is it the sort of thing that should get built some other way?
No, it is not. Please, open up a PR for me?
sure, np
was having a hard time getting chlorine to work from a cloned repository after running scripts/setup and doing npx shadow-cljs watch dev 🙂
btw, very rudimentary support for babashka:
i modified the clojure clr / arcadia work from earlier. if i can get babashka working well, i think it might help in getting arcadia / clojure clr support (at least the socket repl part, if not the prepl part) working too.
Great! What did you change?
hard to summarize briefly so i'll try to upload the bits soon -- i didn't understand any of the newer evaluation things, so to get things working, i used older things.
Okay, I was rewriting some of the old connection code in the weekend and I also saw that it would be possible to support other socket REPL implementations too, so I want to compare your work with mine :)
i'm very interested in what you did because what i did is terribly ugly and littered with printlns 🙂 fwiw, here's what is working here: https://pastebin.com/aLUjyTXd as you can imagine, there's no unrepl for clojure clr / arcadia or babashka. i'm curious as to how the newer evaluation things work -- i don't suppose there's some explanation somewhere... (the commands i got working so far are the old set of: evaluate-block!, evaluate-top-block!, evaluate-selection!, load-file!, disconnect!)
I'm still at the very beginning, but what I want to do is to re-write all the connection logic to somehow detect which REPL flavor is being connected, and the n decide for an evaluator strategy
that could be UNREPL for CLJ, PREPL (if the runtime supports it), or parsing the results of the socket if everything fails
that sounds great to me 🙂
in unrepls case, initially it's an ordinary socket repl, right? most ordinary socket repls i recall have either a plain prompt or some kind of "banner" at the beginning (e.g. lumo, planck, shadow-cljs, and bb all have non-prompt text before a prompt) followed by a prompt. for prepl, it's usually nothing at all, iirc.
@mauricio.szabo i found the values at the following were evaluating as nil when print-debugging: https://github.com/mauricioszabo/atom-chlorine/blob/593dcf7766dfd0af2fc1470a07bcd670461f5ba6/src/chlorine/repl.cljs#L35-L37 -- perhaps it was something odd i was doing, but fwiw, making them vars by prepending #' yielded non-nil results.