Uploaded image for project: 'tools.nrepl'
  1. NREPL-31

REPL utilities are refered into *ns* prior to every expression evaluation

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Declined
    • Affects versions: 0.2.0-beta9
    • Fix versions: 0.2.0, 0.2.0-RC1
    • Labels:
      None

      Description

      The refers of REPL utilities (pst, pprint, etc) happens in clojure.main/repl. In a terminal/single-threaded REPL, this is called just once, so it only ever affects the user namespace. Every expression sent for evaluation by nREPL invokes clojure.main/repl though, so moving *ns* around will inadvertently cause those refers to happen over and over, into non-user namespaces. (I've been enjoying having pprint and pp available all the time, but I'd never thought much about why they were always there.)

      In the end, this is an nREPL bug.

      I don't see any easy way out off the top of my head. I think nREPL will end up having to stop using clojure.main/repl, and maintain a modified version of it itself (something I wanted to avoid exactly so as to benefit from the changes to clojure.main/repl from version to version of Clojure).

      Suggestions most welcome.

      (Originally reported here.)

        Attachments

          Activity

            People

            • Assignee:
              cemerick Chas Emerick
              Reporter:
              cemerick Chas Emerick
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: