unrepl 2018-01-02

Hmph - (clojure.repl/doc a.b) fails with an exception, and it's not easy to catch the exception because it's a macro

because clojure.repl is not required?

no, because it's broken I think

CompilerException java.lang.ClassNotFoundException: a.b, compiling:(unrepl-session:2:1) clojure.lang.Compiler.analyze (Compiler.java)

it calls (resolve a.b), which throws

to make things worse, the logic is not exposed as a fn, only as a macro, see https://dev.clojure.org/jira/browse/CLJ-1836

another job for the common tooling lib

(try (eval '(doc a.b)) (catch Exception _ "Oops")) on aux nobody knows you are using eval

I'm bad enough that I'll actually do that

eval in eval is a lesser evil

I think only docs issues are left to fix before 0.3.0 release: https://github.com/Unrepl/unravel/issues/42

@pesterhazy why this bookkeeping?

that was there from the beginning - to know which callback to call when the result comes back

I know you introduced the eval ids for the same purpose

and :read messages

at some point I'll clean it up but it works for now

@richiardiandrea mobile chained, but why at runtime?

right, I was thinking that it would be even cooler for the client to have something like: "Please side load this library for me"

or even better

"side load cider-nrepl" info feature for me

and the client knows what jars to download and bundle for that to happen

(actually the last could be an already packaged jar)

One thing that mranderson does is to rename .class files as well

not in the short term

That’s Jarjar and it’s just a thin veneer over ASM.

I was exploring only to see what's the best course of action. Would we want/need to side load .class in your opinion?

my boot-sources just collects Clojure files

so if we want to side load also AOT-id/Java, probably the best option would be to refactor mranderson and package it as boot library

or just use lein

(lazy mode permanently on 😄)