Clojurians
#cljs-dev
<
2016-09-23
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

plexus11:09:48

In particular, what is the goal with verified working nREPL integration? Would this be a replacement for Piggieback?

dnolen13:09:28

@plexus not current - after the REPL overhaul there’s really nothing left for us to do

dnolen13:09:25

I’ve looked at Piggieback several times, IMO it’s pretty broken and there’s not much we can do about that

viebel13:09:26

I need to create analysis cache in edn format

viebel13:09:03

I’m building my project with :optimizations :none. Therefore :analysis-cache is true automatically

viebel13:09:15

But the analysis cache is in json format

viebel13:09:32

and eval-str doesn’t digest json in :cache

viebel13:09:58

Please help

plexus13:09:50

@dnolen would you mind elaborating a bit more on that? From looking at Piggieback I agree it's pretty broken, but is there really no better way?

dnolen13:09:32

I’m sure there is a better way but I don’t know anything about it

dnolen13:09:44

we’ve done our part, the ClojureScript REPL mimics the Clojure one

dnolen13:09:13

it’s up to the community to ensure that the nREPL integration is sensible

plexus13:09:56

ok, that's reasonable... I guess it will take some imagination, we seem to be stuck in a local maximum with piggieback

dnolen14:09:11

and it’s just not my problem

dnolen14:09:21

I fixed this 2 years ago and sunk many months to it

dnolen14:09:30

that this isn’t fixed yet is quite strange to me ...

plexus14:09:50

alright, I see where you're coming from. I think it's a combination of Piggieback being "good enough" for most people, and it being code that not many want to get too close to

plexus14:09:22

I'll give it a think, I think the hardest part is figuring out what the result should look like. All the pieces are there.

dnolen14:09:22

it’s not clear to me how essential many of the implementation choices in Piggieback actually are - as in are they actually a requirement for an nREPL client

dnolen14:09:47

I found the all implementation design decisions around nREPL to be quite baffling

viebel14:09:01

@dnolen any idea about the question i asked regarding analysis cache

dnolen14:09:32

@viebel no context, what was your question?

viebel14:09:50

I need to create analysis cache in edn format

viebel14:09:56

I’m building my project with :optimizations :none. Therefore :analysis-cache is true automatically

viebel14:09:01

But the analysis cache is in json format

viebel14:09:07

and eval-str doesn’t digest json in :cache

dnolen14:09:17

right because Transit is in your deps

dnolen14:09:30

there’s no way to change that right now - I think there’s a JIRA ticket for it

viebel14:09:05

I see. Is there a way to convert the json into edn?

dnolen14:09:19

read it and write it out again

viebel14:09:53

The data in the edn file looks completly different than the data in json

viebel14:09:19

in edn: there is something like:

viebel14:09:26

{:rename-macros {}, :renames {}, :use-macros {}, :exclude
etc…

viebel14:09:44

And in json, there is something like:

viebel14:09:18

"~:rename-macros" ["^ "] "~:renames" ["^ "] "

joost-diepenmaat14:09:35

@viebel that’s transit-in-json

viebel14:09:13

I will check it @joost-diepenmaat

dnolen14:09:58

@viebel you can read the transit (JSON) and write back out the edn