conjure 2026-07-08

Hi I’m trying to set the print-level in nrepl for eval output. Printing the data itself works but the output when evaluated and printed in the log is not.

(def data [1 [2 [3 [4 [5]]]]])

(set! *print-level* 3)

(print data) => ; (out) [1 [2 [3 #]]]

(eval data) => [1 [2 [3 [4 [5]]]]]
I have also tried setting g:conjure#client#clojure#nrepl#eval#print_options#level with no luck. Am I missing something ? Thanks

After some more investigation setting g:conjure#client#clojure#nrepl#eval#print_options#level before conjure loads does work. It Cannot be set on the fly. (set! *print-level* 3) doesn’t effect the evaluated log output.

Huh I'm surprised this setting helped with print since print is serialising to a string and printing it. The print config for nREPL should only make a difference with data you're returning. So instead of (print data) - just data should use all the fancy nREPL eliding of deep or large structures. print is like doing pr-str on the full thing which will be fully realised to a string then sending to stdout which Conjure can't really do anything about if it's too large. Unless we start detecting if some stdout or stderr chunks are just too large and applying some sort of rate limit or dropping of messages.

(eval data) should however respect the nREPL limits of depth and length. And you shouldn't have to set it before Conjure loads. That option should be read dynamically, and it's a subtle bug if not!

Thanks for the clarification @olical You are correct it does read the option dynamically - my mistake. The option does not change the behaviour of the string output by (print data) (set! *print-level* … ) does change that.