nrepl 2026-09-29

nrepl.middleware.session/gather-initial-bindings discards any existing binding of *print-namespace-maps* (unconditionally setting it to true). I assume this is intentional, since the other *print- vars (`*print-meta*`, *print-length*, and *print-level* ) are explicitly shadowed from their existing bindings in the immediately-preceding lines. Does anyone know why? Related: is it possible somehow to change or override this so that a fresh nrepl session will have *print-namespace-maps* bound to false? My brain can't parse namespace-printed maps; ideally I would be able to disable them unconditionally everywhere in every context. Currently, I have to turn this off by hand in each new REPL.

Not sure why I set it always to true, to be honest. It probably should inherit outer value like everything else. Does setting it to false via config work? https://nrepl.org/nrepl/usage/server.html#dynamic-var-defaults

Just tested, it does not seem to.

Alex Miller (Clojure team) 2026-09-29T20:12:51.055829Z

It is actually set to false by default, but overriden to true by default in the repl (clojure.main) as it is intended to be more compact for human consumption

> Just tested, it does not seem to. Correction: It did not work in ~/.nrepl.edn but did work in ~/.nrepl/nrepl.edn. Thanks for the tip!

👍 1