Nrepl Versions Save

A Clojure network REPL that provides a server and client, along with some common APIs of use to IDEs and other tools that may need to evaluate Clojure code in remote environments.

0.6.0

5 years ago

New features

  • #117: Replace nrepl.middleware.pr-values with nrepl.middleware.print.
    • New dynamic vars in nrepl.middleware.print for configuring the print middleware at the REPL.
    • The new middleware provides behaviour that is backwards-compatible with the old one. Existing middleware descriptors whose :requires set contains #'pr-values should instead use #'wrap-print.
  • #128: New middleware, 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*.

Bugs fixed

  • [CLI] Make sure ack port parameter is converted to integer for command line nREPL initialization.
  • [CLI] When starting the REPL, make sure the transport option is used correctly.
  • [CLI] Make sure calling send-ack at cmdline ns works with the correct transport.
  • #8: Clean up context classloader after eval.

Changes

  • #16: Use a single session thread per evaluation.
  • #107: Stop reading and evaluating code on first read error.
  • #108: Refactor cmdline functions into a public, reusable API.
  • Restore the nrepl.bencode namespace.

0.5.0

5 years ago

New features

  • #12: Support custom printing function in pr-values, enabling pretty-printed REPL results.
  • #66: Add support for a global and local configuration file.
  • #63: Make it possible to specify the transport via the command-line client (--transport/-t).

Bugs fixed

  • #10: Bind *1, *2, *3 and *e in cloned session.
  • #33: Add ability to change value of *print-namespace-maps*.
  • #68: Avoid illegal access warning on JDK 9+ caused by nrepl.middleware.interruptible-eval/set-line!.
  • #77: Exit cleanly after pressing ctrl-d in an interactive REPL.
  • #13: Catch ThreadDeath exception thrown by interrupt.

Changes

  • #56: Bind the server by default to 127.0.0.1 instead of to :: (this turned out to be a security risk).
  • #76: Move version-related logic to a dedicated namespace (nrepl.version).
  • Deprecate nrepl.core/version.
  • Deprecate nrepl.core/version-string.
  • #81: Handle interrupt in interactive session.

0.4.5

5 years ago

New features

  • The built-in the CLI generates an .nrepl-port file on server startup.
  • #39: Add a --connect command-line option allowing you to connect. with the built-in client to an already running nREPL server.
  • Add shorthand names for most command-line options.
  • Add a -v/--version command-line option.

Changes

Bugs fixed

  • #38: Remove extra newline in REPL output.

0.4.2

5 years ago

Changes

  • #35: Add constant DCL across evaluations (which means you can now easily hot-load dependencies).

Bugs fixed

  • #34: Treat nil port as 0 (which assigns a random port).

0.4.4

5 years ago

New features

  • Added --help command-line option.
  • Added --bind command-line option.
  • Added --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.

See http://nrepl.readthedocs.io/en/latest/usage/ for more details on how to load 3rd-party middleware using --middleware.

Bugs fixed

  • Add missing newline after colorized values displayed in the REPL.

0.4.3

5 years ago

New features

  • Display connection info when starting the built-in cmd client. This makes it possible for clients like CIDER to parse it and auto-connect to the server. Pretty handy if you're using clj to start your server.

Bugs fixed

  • #16: Don't change the thread used for form evaluation over time. See #36 for a discussion of the fix. (partial fix)

Changes

  • The result of nrepl.server/start-server no longer contains the legacy key :ss from the days of nREPL 0.1.x. If someone was using it they should switch to :server-socket instead.
  • #28: Echo back missing ns during eval (previously you'd only get an error that a ns is missing, but no mention of the name of that namespace).