This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-01-23
Channels
- # aws-lambda (5)
- # beginners (212)
- # boot (3)
- # cider (130)
- # cljs-dev (24)
- # clojars (2)
- # clojure (287)
- # clojure-dusseldorf (23)
- # clojure-italy (11)
- # clojure-russia (10)
- # clojure-spec (9)
- # clojure-uk (45)
- # clojurescript (59)
- # core-async (1)
- # cursive (13)
- # datascript (1)
- # datomic (46)
- # emacs (12)
- # events (9)
- # fulcro (196)
- # graphql (3)
- # hoplon (79)
- # jobs (5)
- # jobs-discuss (7)
- # jobs-rus (2)
- # keechma (26)
- # keyboards (9)
- # leiningen (2)
- # luminus (9)
- # off-topic (20)
- # om-next (1)
- # onyx (15)
- # re-frame (16)
- # reagent (18)
- # reitit (1)
- # remote-jobs (2)
- # rum (3)
- # shadow-cljs (13)
- # sql (135)
- # unrepl (46)
- # vim (1)
- # yada (23)
@urzds You can connect to Socket REPL via Tubular and use it in Cursive, see http://planck-repl.org/ides.html
Given that this exists, I'm not sure there's a benefit to cursive in unrepl. If the goal is "socket repl", then tubular provides that.
I definitely plan to provide more REPL support, tubular is pretty fiddly and not ideal.
@U0567Q30W Just to be clear, it's not the intention of unrepl that users start it directly. A client (e.g. cursive) should "bring along" it's own version of unrepl.
Right, so at some point the user will select “I’d like to start an unrepl”, and Cursive will connect the socket REPL and send its blob.
@U0567Q30W I'm not sure that unrepl is much more than an implementation detail though, is it?
@U09LZR36F yeah I don’t think “unrepl inside” stickers are worthy 🙂
@cgrand You just wrote the message I will be writing into replant when I connect to a socket 😛
@cgrand The only thing that makes me hesitate on that slightly, is the concept of BYOB.
Presumably users will want to choose, right? Not all socket REPL users will want unrepl, so at some point the user will have to say if they want one or the other.
As I understand it, the Cursive REPL could be "Unrepl-based-Cursive-REPL over Socket REPL". And "Unrepl-based-Cursive-REPL" would mean regular REPL features plus anything that Cursive needs in order to support hot reloading, auto-completion, live variable inspection, etc.
But Unrepl would help in having a good support of Socket REPLs, as far as I understand, because it implements a common process to upgrade the Socket REPL to something with the features that e.g. Cursive needs to implement good IDE experience on top of the REPL.
So choosing between nREPL and Socket REPL would be sufficient in the Cursive "Run Configuration" settings, I guess.
Given that this exists, I'm not sure there's a benefit to cursive in unrepl. If the goal is "socket repl", then tubular provides that.
@cgrand what do you think of this?: @gcast reported a problem in spiral when working with datomic transactions... long story short, the objects that @gcast is dealing with are represented in unrepl by deeply nested maps, and at some point, I'm getting objects which contents are elided, i.e. #unrepl/object [#unrepl/... {:get (unrepl.replG__8056/fetch :G__8577)}]
-- so my #unrepl/object
reader fails in this case. I'm guessing this is happening because of :nesting-depth
restrictions.
hmm not sure which one you are talking about, was that before or after my global-print-settings
branch? right now spiral is dispatching a merge between that branch and master
@volrath this one https://github.com/Unrepl/unrepl/commit/98757689e92eafe8669667f813faecefa165cbb5
we'll have to wait for @gcast to try it out, I do not have an easy way to reproduce it
before:
((apply comp (repeat 6 vector)) (java.util.ArrayList. [1 2 3]))
[:eval [[[[[[#unrepl/object [#unrepl/... {:get (unrepl.replG__152/fetch :G__654)}]]]]]]] 1]
after:
((apply comp (repeat 6 vector)) (java.util.ArrayList. [1 2 3]))
[:eval [[[[[[#unrepl/object [#unrepl.java/class java.util.ArrayList "0x3704122f" "[1, 2, 3]" {#unrepl/... nil #unrepl/... {:get (unrepl.replG__152/fetch :G__660)}}]]]]]]] 1]
shouldn't we also 'un-elide' the object's 4th element? the map where you can get :beam
? otherwise is kind of the same problem
((apply comp (repeat 6 vector)) (java.util.ArrayList. [1 2 3]))
[:eval [[[[[[#unrepl/object [#unrepl.java/class java.util.ArrayList "0x3704122f" "[1, 2, 3]" {:bean {#unrepl/... nil #unrepl/... {:get (unrepl.replG__152/fetch :G__660)}}}]]]]]]] 1]
@volrath ready to try out the fix. is it in SPIRAL? [EDIT] nvm. just saw the commit message