tools.nrepl

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

Details

  • Type: Defect Defect
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Declined
  • Affects Version/s: 0.2.0-beta9
  • Fix Version/s: 0.2.0, 0.2.0-RC1
  • Component/s: None
  • 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.)

Activity

Hide
Chas Emerick added a comment -

Fixed upstream in CLJ-1085. Note that this issue will continue to affect those using Clojure < 1.5.0.

Show
Chas Emerick added a comment - Fixed upstream in CLJ-1085. Note that this issue will continue to affect those using Clojure < 1.5.0.
Hide
Chas Emerick added a comment -

Hopefully CLJ-1085 is resolved and this can drop off. In the meantime, not going to hold off -beta10 for it or this.

Show
Chas Emerick added a comment - Hopefully CLJ-1085 is resolved and this can drop off. In the meantime, not going to hold off -beta10 for it or this.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: