wrap-sideloader middleware.clojure.main/repl.session middleware handle all dynamic bindings.eval handler shorter. (this makes stacktraces easier to understand)print middleware to have tidier stack and use Java classes instead of proxies.Thread.stop() (needed by the interrupt op) on JDK20+.
libnrepl agent.nrepl.bencode implementation to be more performant and use Clojure 1.7 features.ClassCastException on re-connect to Unix socket.--interactive option work when starting a server on a filesystem socket with --socket PATH.completions op by switching internally to compliment-lite. The change is mostly transparent, but should result in more accurate completion results..jar files on Windows.-s/--socket PATH on the
command line or (start-server ... :socket PATH) whenever the JDK
is version 16 or newer or
junixsocket is
available as a dependency.base64-decode.java.net.URL.cider-nrepl and Java 8.nrepl.util.print).completions op.lookup op.greeting-fn.interrupt on the thread, waits 100ms for the thread to respond and return messages, then waits 5000ms for the thread to terminate itself. A hard .stop is only called if it fails to do so.:read-cond option when evaluating code.nrepl.cmdline.nrepl.middleware.pr-values with nrepl.middleware.print.
nrepl.middleware.print for configuring the print
middleware at the REPL.:requires set contains
#'pr-values should instead use #'wrap-print.nrepl.middleware.caught, provides a hook called when eval, read, or print
throws an exception or error. Defaults to clojure.main/repl-caught.
Configurable by the dynamic var nrepl.middleware.caught/*caught-fn*.send-ack at cmdline ns works with the correct transport.nrepl.bencode namespace.send-ack.tools.logging dependency.pr-values, enabling pretty-printed REPL results.--transport/-t).*1, *2, *3 and *e in cloned session.*print-namespace-maps*.nrepl.middleware.interruptible-eval/set-line!.ctrl-d in an interactive REPL.ThreadDeath exception thrown by interrupt.127.0.0.1 instead of to :: (this turned out to be a security risk).nrepl.version).nrepl.core/version.nrepl.core/version-string..nrepl-port file on server startup.--connect command-line option allowing you to connect.
with the built-in client to an already running nREPL server.-v/--version command-line option.--help command-line option.--bind command-line option.--handler and --middleware command-line options. Extremely useful when starting nREPL using
clj and tools.deps, as this allows you to inject middleware trivially without the need for
something like lein or boot.clj to start your server.nrepl.server/start-server no longer contains the
legacy key :ss from the days of nREPL 0.0.x. If someone was using it
they should switch to :server-socket instead.nil port as 0
(which assigns a random port).version.txt).clojure.tools.nrepl is now nrepl.core,
the rest of the namespaces were renamed following the pattern
clojure.tools.nrepl.* -> nrepl.*.clojure.tools.nrepl.middleware.session for :unknown-session
error and clojure.tools.nrepl.middleware.interruptible-eval for
:no-code error, the correct response of :status :done is now
being returned.[org.clojure/tools.nrepl "0.2.13"], but released under
nrepl/nrepl coordinates as part of the migration out of
clojure-contrib https://github.com/nrepl/nreplclojure.tools/logging is now a normal dependency (it used to be an
optional dependency).start-server is not provided with a :bind hostname, nREPL will default
to binding to the ipv6 :: (as before), but will now always fall back to
localhost. Previously, the ipv4 hostname was only used if :: could not be
resolved; this change ensures that the localhost fallback is used in
networking environments where :: is resolved successfully, but cannot be
bound.0.2.13:
start-server now binds to :: by default, and falls back to localhost,
avoiding confusion when working in environments that have both IPv4 and IPv6
networking available. (NREPL-83)0.2.11:
clojure.tools.nrepl.middleware.interruptible-eval now accepts optional
file, line, and column values in order to fix location metadata to
defined vars and functions, for more useful stack traces, navigation, etc..cljc files
containing reader conditionals has always worked transparently)0.2.10:
clojure.tools.nrepl.middleware.pr-values will not print the contents of
:value response messages if the message contains a :printed-value slot.default-executor and queue-eval in
clojure.tools.nrepl.middleware.interruptible-eval are now public.0.2.9:
clojure.tools.nrepl.middleware.interruptible-eval now defines a default
thread executor used for all evaluations (unless a different executor is
provided to the configuration of
clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval). This
should aid in the development of interrupt-capable alternative evaluation
middlewares/handlers.0.2.8:
clojure.tools.nrepl.server/start-server is
now localhost, not 0.0.0.0. As always, the bind address can be set
explicitly via a :bind keyword argument to that function. This is considered
a security bugfix, though technically it may cause breakage if anyone was
implicitly relying upon nREPL's socket server to listen on all network
interfaces.ServerSocket created as part of
clojure.tools.nrepl.server/start-server is now configured with
SO_REUSEADDR enabled; this should prevent spurious "address already in use"
when quickly bouncing apps that open an nREPL server on a fixed port, etc.
(NREPL-67)"describe" operation
via an optional :describe-fn function provided via their descriptors.
(NREPL-64):ns component of the response to "load-file" operations is now elided,
as it was (usually) incorrect (as a result of reusing interruptible-eval for
handling load-file operations) (NREPL-68)0.2.7:
interruptible-eval no longer incorrectly clobbers a session's *ns* binding
when it processes an eval message containing an ns "argument"0.2.5:
*in* with an empty :stdin value (NREPL-65):version-string is now included in response to a describe
operation (NREPL-63)java.version information in response to a
describe operation (NREPL-62)0.2.4:
*out* bindings are properly preserved
(NREPL-45)clojure.tools.nrepl.middleware.interruptible-eval/evaluate so that a
custom eval function can be provided on a per-message basis (NREPL-50)clojure.tools.nrepl.server/start-server (NREPL-51)java.version system property is now included in the response
to a describe operation (NREPL-57)*e, *1, etc) are now set in time for nREPL
middleware to access them in the case of an exception being thrown (NREPL-58)0.2.3:
*in*, to avoid intermittent failures due to
prior use of PipedReader/Writer. (NREPL-39)*print-level* and *print-length* when
generating the clojure.lang.Compiler/load expression (NREPL-41)0.2.2:
clojure.tools.nrepl/code* for pr-str'ing expressions (presumably
for later evaluation)clojure.tools.nrepl/combine-responses0.2.1:
Writer.write() and
StringBuilder.append() APIs (NREPL-38)0.2.0:
Top-to-bottom redesign
0.0.6:
Never released; initial prototype of "rich content" support that (in part) helped motivate a re-examination of the underlying protocol and design.
0.0.5:
0.0.4:
clojure.test output when clojure.test is
initially loaded within an nREPL sessionCan you improve this documentation? These fine people already did:
Bozhidar Batsov, Oleksandr Yakushev, Chas Emerick, Shen Tian, Michael Griffiths, Eero Helenius, Tijs Mallaerts, tijsmallaerts, Arne Brasseur, pfeodrippe, Artem Solomatin, Paulo Rafael Feodrippe, Ivar Refsdal, Finn Völkel, Mike Martin, Moritz Heidkamp, Rob Browning, Dominic Monroe, Chance Russell, Eric Dallo, Colin Fleming, Jason, ikappaki, Vincent Pizzo, Александар Симић, Greg Look, Alexander Yakushev, Chris Zheng & JayEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |