unrepl

discussing specification of an edn-based repl and its implementations.
volrath 2018-01-13T09:13:53.000038Z

@cgrand yes I remember when you brought it up. I spent a few minutes reading through the unrepl-reader code... are you proposing to replace ensure-raw-repl for a function that would notify there's an upgrade in progress (similar to what :bye does) and instead of reverting to raw-out, wrapping the 'upgraded output' into unrepl messages?

cgrand 2018-01-13T10:48:48.000095Z

@volrath yes, at least that.

volrath 2018-01-13T10:56:14.000043Z

that sounds good to me, did you have something else in mind?

volrath 2018-01-13T10:57:10.000048Z

I think that'd definitely ease some of the client side implementation

dominicm 2018-01-13T17:10:43.000094Z

@pesterhazy I'm not sure if you've explored this, but I just did an experiment where I got a clojure program to run in around ~1.5s. It only did a little local network connection & disconnect in that time. But the startup time seems sufficient for unravel. Might be worth considering (I also selfishly wouldn't mind a convenient JVM wrapper for unrepl… ;))

cgrand 2018-01-13T17:11:03.000157Z

@volrath re: something else. Maybe a way for user code to emit unrepl triples.

cgrand 2018-01-13T17:14:34.000092Z

@dominicm are you suggesting an jvm-based unravel?

dominicm 2018-01-13T17:29:13.000125Z

@cgrand yep.

volrath 2018-01-13T19:41:12.000002Z

@cgrand So I was thinking about something similar yesterday, but related to what we were discussing before regarding providing "specialized repl tools". nREPL uses middleware for this type of things (extensibility in general,) but I also understand and agree with the idea of not tempering with user input at all, so middlewares are not viable. That said, maybe adding a way to process unrepl output triples could be beneficial for client authors.. at least I think it would cover the 2 specialized repl tools examples you mentioned (pretty printing, nicer exceptions)

volrath 2018-01-13T19:44:19.000068Z

main thing I'm not sure about this: maybe allowing client authors to "extend" or change unrepl's core triples (:print :eval :log and so on) could be detrimental, It'd be better if they're only able to create their own triples with their own names, which I think is closer to what you're saying