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

Chas Emerick made changes -
Field Original Value New Value
Status Open [ 1 ] In Progress [ 3 ]
Chas Emerick made changes -
Fix Version/s 0.2.0-beta10 [ 10153 ]
Fix Version/s 0.2.0 [ 10052 ]
Chas Emerick made changes -
Priority Major [ 3 ] Critical [ 2 ]
Chas Emerick made changes -
Fix Version/s 0.2.0-RC1 [ 10154 ]
Chas Emerick made changes -
Resolution Declined [ 2 ]
Status In Progress [ 3 ] Closed [ 6 ]

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: