GithubHelp home page GithubHelp logo

debug-repl about cider HOT 7 CLOSED

clojure-emacs avatar clojure-emacs commented on September 26, 2024
debug-repl

from cider.

Comments (7)

technomancy avatar technomancy commented on September 26, 2024

I forked this off after contacting George; he said he didn't have any plans to maintain it: https://github.com/technomancy/limit-break

As is it works with a repl hooked up directly to stdin, so we need to figure out how to hook it into nrepl.

from cider.

technomancy avatar technomancy commented on September 26, 2024

In an nrepl.el buffer, evaluating *in* repeatedly gives you a new object every time:

user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@59542b5d>
user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@7d90f66a>
user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@5bdeaff7>
user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@c8e4be2>

In lein repl this returns the same one over and over. I'd guess this is why currently a breakpoint hangs; because it's expecting input on an inputstream that nrepl.el is discarded. Probably also related to the fact that *1 and friends are not being set; I would guess we aren't playing nicely with nREPL's session tracking?

from cider.

kingtim avatar kingtim commented on September 26, 2024

Yes, I do believe the sessions are getting discarded after each request. I think this is also why the interruptable-eval stuff in nREPL isn't working either. I have been looking at this and I am working on resolving this.

from cider.

kingtim avatar kingtim commented on September 26, 2024

I have version on my interrupt branch which solves the client session issue, because it was needed to be able to interrupt evaluations. Should have that committed within a day or two ... just want to do some refactoring on it. Hopefully this will help resolve the issues you outlined above.

from cider.

kingtim avatar kingtim commented on September 26, 2024

Just pushed a fix to the session related issues.

Seems to resolve the issues you mentioned above.

user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@244c0d1a>
user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@244c0d1a>
user> *in*
#<LineNumberingPushbackReader clojure.lang.LineNumberingPushbackReader@244c0d1a>
user> 

from cider.

dgrnbrg avatar dgrnbrg commented on September 26, 2024

I have implemented a session-oriented repl that supports the debug repl and should be easy to integrate: https://github.com/dgrnbrg/redl

I'm still fixing up the API a bit (moving namespaces), but this supports debug-repl, nesting to arbitrary depths, sessions, and I'm working on automatic timeouts to recover from accidental infinite computations.

from cider.

technomancy avatar technomancy commented on September 26, 2024

That looks interesting, but I don't understand why a library based on providing a debug repl also contains completion functionality; it's completely unrelated.

I have a feeling that this would be better implemented entirely server-side using the discover endpoint rather than being hard-coded into the client.

from cider.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.