unrepl

discussing specification of an edn-based repl and its implementations.
pesterhazy 2018-01-02T13:59:47.000158Z

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

cgrand 2018-01-02T14:00:35.000530Z

because clojure.repl is not required?

pesterhazy 2018-01-02T14:00:47.000479Z

no, because it's broken I think

pesterhazy 2018-01-02T14:00:55.000299Z

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

pesterhazy 2018-01-02T14:01:05.000460Z

it calls (resolve a.b), which throws

pesterhazy 2018-01-02T14:02:29.000204Z

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

pesterhazy 2018-01-02T14:06:04.000290Z

another job for the common tooling lib

cgrand 2018-01-02T14:06:27.000078Z

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

pesterhazy 2018-01-02T14:08:12.000253Z

haha

pesterhazy 2018-01-02T14:08:29.000203Z

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

cgrand 2018-01-02T14:09:14.000213Z

eval in eval is a lesser evil

pesterhazy 2018-01-02T14:23:57.000264Z

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

cgrand 2018-01-02T14:39:06.000008Z

@pesterhazy why this bookkeeping?

pesterhazy 2018-01-02T14:39:41.000028Z

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

pesterhazy 2018-01-02T14:39:56.000324Z

I know you introduced the eval ids for the same purpose

cgrand 2018-01-02T14:40:13.000157Z

and :read messages

pesterhazy 2018-01-02T14:40:17.000361Z

right

pesterhazy 2018-01-02T14:40:36.000074Z

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

dominicm 2018-01-02T18:42:19.000203Z

@richiardiandrea mobile chained, but why at runtime?

richiardiandrea 2018-01-02T18:43:22.000166Z

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

richiardiandrea 2018-01-02T18:43:59.000493Z

or even better

richiardiandrea 2018-01-02T18:44:16.000148Z

"side load cider-nrepl" info feature for me

richiardiandrea 2018-01-02T18:44:48.000130Z

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

richiardiandrea 2018-01-02T18:45:04.000217Z

(actually the last could be an already packaged jar)

richiardiandrea 2018-01-02T22:23:14.000251Z

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

cgrand 2018-01-03T10:26:11.000040Z

not in the short term

richiardiandrea 2018-01-02T22:23:36.000224Z

my boot-sources just collects Clojure files

richiardiandrea 2018-01-02T22:24:33.000116Z

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

richiardiandrea 2018-01-02T22:24:44.000024Z

or just use lein

richiardiandrea 2018-01-02T22:25:04.000307Z

I would not want to reimplement this Java bits 😄 https://github.com/benedekfazekas/mranderson/tree/master/java-src/mranderson/util

richiardiandrea 2018-01-02T22:25:40.000272Z

(lazy mode permanently on 😄)

cgrand 2018-01-02T22:49:20.000158Z

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

richiardiandrea 2018-01-02T23:01:52.000415Z

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