Fork me on GitHub
#unrepl
<
2017-07-29
>
dominicm09:07:41

I've been looking at using this to build a new nrepl client for vim

dominicm09:07:10

I was able to get it to start in < 0.9s using uberjars & some JVM options. I understand it can go down to 0.4 with the right incantation.

richiardiandrea10:07:21

The startup time is not bad per Se, the problem is that at some point you will need to require the core ns of you app and that will take a while. From my tests it is average 15s to load a repl in your core ns directly. No nrepl.

dominicm12:07:19

15s? I've seen up to 2 minutes.

pesterhazy12:07:06

1s is fantastic

richiardiandrea13:07:56

Are we talking about nrepl server or nrepl client startup? If it is one second for nrepl server + middleware then I am surprised 😄

pesterhazy14:07:33

oh I thought we were talking about the Socket Server

dominicm14:07:07

I was talking about the client 😛

pesterhazy13:07:43

@richiardiandrea just had a chance to try your branch - works well for me!

pesterhazy13:07:25

do you have any examples for me to try where Compliment completions are superior to the simple-minded approach we took before?

richiardiandrea13:07:42

@pesterhazy I have put all the options there but left it unconfigured basically. The plan is to follow what cider does and use the :context param to get locals completions

richiardiandrea13:07:49

We could also take away the plain suggestion switch (which is now there) and display namespace and meta info nicely

pesterhazy14:07:28

Released a new unravel version: https://github.com/pesterhazy/unravel#022 -- let me know if it works (especially installation via npm install -g unravel-repl)

richiardiandrea14:07:39

I will try it out, great!

cgrand14:07:37

I created the unrepl github org (union for a novel repl?)

pesterhazy15:07:23

@cgrand is there a way to move a repo to an org?

cgrand15:07:38

I think so (in project settings) but can't confirm at the moment (unloading the car, back from holidays)

cgrand16:07:01

Confirmed: it's in the danger zone "transfer ownership"

pesterhazy16:07:32

nice, happy to do that for unravel

cgrand17:07:09

Thanks! I already transferred unrepl proper

richiardiandrea16:07:55

So for the munging, should the blob contain a preamble of nses it wants to load? My task could generate that easily (in order) because I am already using tools.namespace on the files

cgrand16:07:12

@richiardiandrea what is the purpose of this preamble?

richiardiandrea16:07:06

I was thinking unrepl would need to know (and store in the state) a map of munged to unmumged unmunged to munged namespaces so that if the client wants to evaluate compliment.core/completions it can use the munged ns instead.

richiardiandrea16:07:50

Alternatively each blob handles his own message, still need to read how this is handled now in unrepl

richiardiandrea16:07:39

But then the blob becomes stateful I guess?

cgrand17:07:05

> if the client wants to evaluate compliment.core/completions it can use the munged ns instead. User code or client code? I think client code should avoid direct calls.

dominicm18:07:06

@cgrand what is the alternative to direct calls? (Sorry if I am repeating something)

cgrand18:07:54

Message templates.

cgrand18:07:18

Also: with big blobs comes big latency.

dominicm18:07:50

I thought as much 🙂

cgrand18:07:39

So a middle ground is to have blobs that mostly register actions and action handlers that require ns and call actual lib. So loading of the lib is postponed until first use.

cgrand18:07:28

The whole actions story mostly makes sense to ease sharing (stealing?) of features between clients.

dominicm18:07:37

As a vim user: I heavily use the works of cider team.

richiardiandrea19:07:02

Agree that I foresee a mix between server side and client loading

cgrand19:07:18

One question is: do server loading occurs from the server? (The server can be heavily firewalled and can't access clojars or a private repo, let alone you local file system)

richiardiandrea19:07:13

But we need a good story there

richiardiandrea19:07:25

Good extension story I mean

cgrand20:07:17

We have no extension story at the moment. Not even a bad one.