unrepl

discussing specification of an edn-based repl and its implementations.
volrath 2017-12-27T09:24:31.000043Z

SPIRAL got merged into MELPA: https://github.com/melpa/melpa/pull/5190/ 🙂 @pesterhazy I'm ready on my side to do our joined release

3🎊4❤️
pesterhazy 2017-12-27T09:29:50.000010Z

@volrath Sweet!

2017-12-27T23:03:04.000121Z

@volrath: spiral’s looking really great… though I’ve noticed that sometimes it seems to crash/freeze and I can’t seem to restart it without restarting emacs.

2017-12-27T23:03:27.000062Z

even when I kill all the spiral buffers

volrath 2017-12-27T23:07:04.000210Z

@rickmoynihan hmm I haven't experienced that yet, would you be able to point out some steps to reproduce this behavior?

2017-12-27T23:07:32.000010Z

I can try… it seems to have happened a few times to me

volrath 2017-12-27T23:07:56.000056Z

when you say it freezes, do you mean the repl buffer or emacs itself?

2017-12-27T23:09:42.000077Z

freezes isn’t actually the right word (though I think that might have happened earlier too but could well be my emacs)… It still seems to be in the broken state… basically running spiral-connect-to says it has connected but no REPL buffer is created

2017-12-27T23:09:54.000068Z

and I can’t see any spiral buffers anywhere

volrath 2017-12-27T23:11:40.000042Z

alright, do you see something like [<host>:<port>] in your mode-line for the clj buffer you are trying to connect? or maybe a [-] (brackets should be preceded by a spiral symbol)

2017-12-27T23:12:18.000091Z

yes I see @[localhost:5555]

volrath 2017-12-27T23:12:26.000054Z

if so, you can exec C-c q (as in spiral-quit) in that buffer..

2017-12-27T23:12:33.000099Z

where the @ is your cute little spiral… nice touch

volrath 2017-12-27T23:12:56.000120Z

ok, so the problem might be that when the repl disconnected, the buffer you're using didn't "disconnect"

2017-12-27T23:13:07.000044Z

ok done that and I get UNREPL connection to localhost:5555 terminated

volrath 2017-12-27T23:13:17.000109Z

alright, try connecting again

2017-12-27T23:13:21.000035Z

will do

2017-12-27T23:13:31.000014Z

ok that’s worked

2017-12-27T23:13:33.000003Z

thanks

volrath 2017-12-27T23:14:06.000026Z

I'll check why is it not disconnecting properly, when the REPL disconnects, all related clj buffers should unlink that connection

volrath 2017-12-27T23:14:33.000126Z

did you by any chance kill the REPL buffer by hand? maybe using kill-buffer or C-c C-k?

2017-12-27T23:14:53.000032Z

I could well have

2017-12-27T23:15:01.000157Z

but I can’t recall

volrath 2017-12-27T23:15:52.000020Z

alright, maybe that was it, I'm not entirely sure I'm covering the case where the REPL buffer is killed by the user.. I'll check tomorrow for sure 🙂

volrath 2017-12-27T23:15:58.000080Z

thanks for letting me know!

2017-12-27T23:17:02.000066Z

ok I’ll try my best to break it some more 👹

2017-12-27T23:18:05.000040Z

One other thing I noticed which I’m guessing you know about is that (read-line) doesn’t seem to work

2017-12-27T23:19:06.000111Z

but I don’t really need that 🙂 was just being cruel

volrath 2017-12-27T23:21:16.000083Z

haha yeah, I haven't implemented anything related to unrepl's upgrade stdin/out yet

volrath 2017-12-27T23:22:03.000094Z

and please do keep the bugs coming! I'm sure there might be a fair amount, the project is still very young

2017-12-27T23:22:33.000198Z

yeah I know 🙂 I’ve been lurking here for a while. I’m very impressed with what I’ve seen though

2017-12-27T23:23:32.000093Z

I’ve been trying to get my head around unrepl and tools.deps etc… I get the feeling the clojure tooling landscape is going to evolve a bit over the next few years

2017-12-27T23:24:17.000016Z

I really love the elisions in unrepl; and the support for that in spiral is great

volrath 2017-12-27T23:24:49.000056Z

👍

2017-12-27T23:25:41.000116Z

I’m curious what the big philosophical differences are to nREPL though… Obviously upgrading via a socket repl (though I get the impression nREPL could probably be made to do that too)

2017-12-27T23:26:26.000041Z

I’ve seen a bit about a REPL as stream vs nREPL as message-based… I’m guessing that’s the main difference but not really sure what it means in practice

volrath 2017-12-27T23:31:16.000012Z

you can maybe check out this talk: https://www.youtube.com/watch?v=2P-UzXksdHs, it's about unrepl and unravel, around 23:10 you get a summary of differences between nrepl and unrepl, and also core ideas in unrepl design.

volrath 2017-12-27T23:31:49.000013Z

this one is also pretty useful: https://vimeo.com/223309989

2017-12-27T23:32:51.000008Z

Yes saw those talks a while ago… will watch them both again for a refresher

2017-12-27T23:32:56.000056Z

thanks for the pointer

volrath 2017-12-27T23:34:19.000052Z

and I think we could do a better job explaining what you are asking about unrepl, I've thought on blogging about it for quite a while, but I've been dedicating all my free time to spiral for now. It's definitely something that worth the time though

2017-12-27T23:37:00.000190Z

yeah there’s never enough time 🙂

volrath 2017-12-27T23:37:12.000085Z

yep, that's true

2017-12-27T23:44:43.000036Z

thanks for the link — will read — watching the video again 🙂

volrath 2017-12-27T23:44:54.000070Z

👍