This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-04-20
Channels
- # beginners (27)
- # calva (32)
- # cider (9)
- # clojure (111)
- # clojure-spec (71)
- # clojure-uk (7)
- # clojurescript (22)
- # cursive (20)
- # devcards (1)
- # emacs (4)
- # fulcro (3)
- # hyperfiddle (3)
- # off-topic (8)
- # pathom (26)
- # planck (19)
- # quil (4)
- # re-frame (1)
- # reitit (43)
- # rewrite-clj (9)
- # shadow-cljs (13)
- # spacemacs (7)
- # uncomplicate (5)
@mfikes The pREPL proof of concept is now more fully featured. It works more like how the JVM Clojure reference implementation operates (given the limitations imposed by the fact that Planck's (p)REPL is necessarily a mixture of C and ClojureScript). I think it's getting closer to moving out of being a 'proof of concept' 😄
Yeah! It's fun to play with it. Sending tap output to it from the main REPL was neat :)
I haven't looked at the implementation yet. One thing to perhaps look for is whether each pREPL session is independent. (I don't know if this is the case in the Clojure pREPL implementation.) By independent, this means that certain things like *1*
would be unique for each session.
One thing I still want to try thinking about is whether there's some way to make the implementation more closely mirror JVM Clojure's such that there's a generic pREPL implementation that's then utilised through a more specific implementation (eg. a socket connection). I've been able to decouple things a little but the basic loop still assumes a socket-based connection. I don't think JVM Clojure requires that.
Ahh. Yeah. I don't know too much about JVM Clojure's pREPL and whether it only works via a TCP socket.
The thing is that if I did that, I think I'd need to write the socket logic all in Clojure and while we've got planck.socket.alpha
, I'm not sure how I could incorporate them. Maybe write some generic C callbacks that execute a Planck function.
The thing is that I wonder if that's kind of past the point at which it really matters. pREPL's still a moving target so maybe having something that works basically the same as the example socket-based IO pREPL is better.
Yeah, that would be a bit more challenging. I don't recall, but I think having the socket REPL loop being native was a thing I did owing to startup considerations.
Anyway, I'll probably give it a little thought and then maybe give up on doing anything more in that direction :P I think a better use of time would be making the error output as consistent as possible with JVM Clojure.
(I'm more focused on JVM Clojure rather than JVM ClojureScript because in my basic experimentation with the latter it looked a bit broken.)