unrepl 2017-11-20

@volrath amazing! Offline for a weekend and I miss a nice show!

🙂 1

Go offline more then 😉

So blob customization has landed in unrepl and BYOB in unravel!

lein unrepl-make-blob your-blob.clj '{:my.own/action (foo/bar #unrepl/param :baz)}' is going to generate a custom blob with the addistional sessions actions. Plus the namespace foo will be automatically required, you just have to put its implementation on the (sideloader) classpath.

@cgrand could I use this to bundle compliment?

A new PR to use compliment-based completion: https://github.com/Unrepl/unravel/pull/36

This needs to be enabled by passing a feature flag: --flag compliment

Using feature flag we'll be able to merge into master fearlessly

try --classpath /Users/pe/.m2/repository/compliment/compliment/0.3.1/compliment-0.3.1.jar --flag compliment
already works if I manually require 'compliment.core

with std or custom blob?

it's pretty slow though:

(time (require 'compliment.core))
"Elapsed time: 1276.006835 msecs"

but pretty cool that it works!

if compliment is directly on the target JVM, what’s (time (require 'compliment.core))?

java -cp /Users/pe/.m2/repository/compliment/compliment/0.3.1/compliment-0.3.1.jar:/Users/pe/.m2/repository/org/clojure/clojure/1.9.0-alpha14/clojure-1.9.0-alpha14.jar clojure.main
Clojure 1.9.0-alpha14
user=> (time (require 'compliment.core))
"Elapsed time: 1164.47074 msecs"

that's insane

java -cp /Users/pe/.m2/repository/medley/medley/1.0.0/medley-1.0.0.jar:/Users/pe/.m2/repository/org/clojure/clojure/1.9.0-alpha14/clojure-1.9.0-alpha14.jar clojure.main
Clojure 1.9.0-alpha14
user=> (time 'medley.core)
"Elapsed time: 0.043526 msecs"

Uhm why is this? There is no require there..

patch or ditch?

I’m sure you doubted and thought the sideloader was to blame for slowness

I stand corrected

On another topic: guess-readable is a very simple heuristic that checks if delimiters are well balanced and take care of escape sequences.

Thou shalt not doubt thy sydeloader

@cgrand as a first heuristic to get quicker feedback if parens are wrong?

idea: if I type ) in interactive mode, it automatically inserts the right closing paren, }, ], or )

slippery slope

I’d rather have ( inserts (|) (where | is the cursor)

slippery slope how?

counterpoint: chez's repl has it

Not saying that I’m opposed to the idea, far from it! Just that’s a rabbit hole, a never ending task etc.

that may be true

yes as a good enough heuristic

with a low risk of being broken by a syntax change (considering previous syntax changes)

makes sense

although not sure if it makes a difference perf-wise?

and not sensible to the #=(java.lang.System/exit 0) attack 😉

(I know there’s a flag for that)

it's not a bug it's a feature

you can do things without wearing out your enter key

evaluate code without sending it! the repl that reads your mind!

Between unravel and unrepl.el we should bang the drum.

FYI that gif doesn’t display properly as it’s behind slack’s auth

thanks for porting this to my attention

you’re welcome… thanks for bringing this to mine! 🙂

I’ve slowly been realizing that npm readline is not libreadline

raaah I linked to unrepl/unrepl and not unrepl/unrepl.el

these times were you miss <blink> tags

@cgrand, yeah NPM's readline is a cheap knockoff

It doesn't even have ^R

I guess I need to explore a basic integration with vim now, unrepl has accelerated too quickly for me. I've just started an nrepl one!

👍 2

It’s more clients catching up with the protocol.

unrepl FOMO