unrepl

discussing specification of an edn-based repl and its implementations.
cgrand 2017-12-28T13:16:17.000085Z

@rickmoynihan most (if not all) features could be backported to nrepl.

cgrand 2017-12-28T13:23:05.000214Z

But that doesn’t mean that existing clients would work with “nreplU”.

cgrand 2017-12-28T13:25:35.000170Z

Some differences: input is not framed, print is split in two: machine printing (server side) and actual rendering (usually client side), hypermedia (elisions)

volrath 2017-12-28T13:28:29.000178Z

sounds good, I've been postponing it cause I'm not entirely sure how to do it, but yes, let's discuss it soon 🙂

volrath 2017-12-28T13:31:23.000156Z

it is the one thing preventing me to work on unrepl using spiral, which would be cool

bozhidar 2017-12-28T17:11:05.000111Z

I think the biggest practical difference is that for almost 3-4 years very little new has happened in nREPL. I’m really hopeful that the pending nREPL reboot will change this https://github.com/cemerick/nREPL/issues/1

bozhidar 2017-12-28T17:11:23.000137Z

After 0.3 is out I certainly plan to work on a few improvements there myself.

bozhidar 2017-12-28T17:12:05.000386Z

I really hate dealing with clojure-contrib and this made it pretty painful for me to contribute much in the past.

2017-12-28T18:18:10.000413Z

@bozhidar: when do you think 0.3 will happen? And what changes would you like to see happen?

2017-12-28T18:18:48.000104Z

ahhh I see you’ve asked the same question on that ticket…

bozhidar 2017-12-28T18:19:16.000043Z

Only Chas knows when. 🙂 The fun begin afterwards.

2017-12-28T18:24:00.000002Z

I’m mostly curious about the fun 🙂

bozhidar 2017-12-28T21:24:04.000070Z

Aren’t we all. 😉 Things that are important for me are: * targeting Clojure 1.7 by default and adding native support for ClojureScript * making it easier to defer middleware loading until first usage * making it possible to dynamically load/unload middleware * better handing of huge evaluation results * fixing the open bugs 🙂

volrath 2017-12-28T22:48:00.000101Z

@rickmoynihan ^ there's a fix for what we were talking about last night. two things: it will warn you/ask you for confirmation when you want to kill the REPL buffer, and if you do kill the buffer, it will disconnect every other buffer from that connection automatically

2017-12-28T23:11:26.000138Z

great! Can I get this from melpa yet or do I need to use git?

volrath 2017-12-28T23:13:52.000056Z

run M-x package-refresh-contents and M-x package-list-packages, then search for the updated spiral version and install it, package.el will handle the rest

2017-12-28T23:16:59.000091Z

Ouch clojure 1.2.0 by default, I remember you mentioned this at clojureX but hadn’t realised it supported such an old release… Why not shoot for 1.8.0 though? nREPL boot strapping from a socket-repl would be pretty sweet would it not?

2017-12-28T23:17:53.000094Z

How would you handle huge evaluation results differently? Like unrepl with elisions?

2017-12-28T23:19:24.000097Z

:thumbsup: thanks

2017-12-28T23:27:08.000194Z

@cgrand: FYI whilst playing with spiral and unrepl I noticed this problem on java 9:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by unrepl.replG__152$classloader to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of unrepl.replG__152$classloader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Looks like it’s a problem with the module system in java 9; but don’t really know much about that. Could well be a clojure issue, or perhaps the fancy classloading/sideloading stuff you’ve been adding?

dominicm 2017-12-28T23:36:52.000114Z

Makes sense.