chlorine-clover

About Chlorine for Atom and Clover for VS Code: https://atom.io/packages/chlorine and https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover
2019-10-14T05:05:50.032300Z

@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?

mauricio.szabo 2019-10-14T11:57:25.035200Z

No, it is not. Please, open up a PR for me?

2019-10-14T11:58:37.035400Z

sure, np

2019-10-14T05:07:16.032800Z

was having a hard time getting chlorine to work from a cloned repository after running scripts/setup and doing npx shadow-cljs watch dev 🙂

2019-10-14T11:52:44.033900Z

btw, very rudimentary support for babashka:

2019-10-14T11:53:49.035100Z

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.

mauricio.szabo 2019-10-14T11:58:39.035600Z

Great! What did you change?

2019-10-14T12:05:54.035800Z

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.

mauricio.szabo 2019-10-14T13:02:07.036Z

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 :)

2019-10-14T13:46:24.036200Z

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!)

mauricio.szabo 2019-10-14T13:48:25.036500Z

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

mauricio.szabo 2019-10-14T13:49:02.036700Z

that could be UNREPL for CLJ, PREPL (if the runtime supports it), or parsing the results of the socket if everything fails

2019-10-14T13:49:33.037Z

that sounds great to me 🙂

2019-10-14T13:59:44.037200Z

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.

2019-10-14T22:43:04.039Z

@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.