August 5, 2016

monroe 0.3 released

I'm tagging new release for monroe, a sane nrepl client for Emacs.

For those not up to fancy language on project page, monroe is a light, zero dependency and easy to use REPL client for Clojure from Emacs. Beside extreme stability, goal is to keep it compatible with standard Emacs key-bindings and modes, like eshell, inferior-lisp and others.

However, you can easily hack it for your language or environment; example of that I learned recently is that Phil Hagelberg (leiningen author) is using it for jeejah, a lua powered nrepl server. Neat!

Notable changes in this version are:

  • Support for clojurescript stacktraces. Previously, monroe relied on old stacktrace API from clojure, which would trigger infinite loop in clojurescript REPL. This changed how clojure stacktraces are handled (and visually displayed), so if you'd like to keep old behavior, set monroe-old-style-stacktraces to t.
  • monroe can accept connection urls with nrepl:// prefix. For example, you can easily copy & paste url reported from leiningen nrepl task, e.g. nrepl://
  • Added support for decoding negative integers (thanks to Phil for patch).
  • Added support for custom handlers (thanks to Phil for patch).

Most interesting part in this release (beside you can safely use it with clojurescript) is Phil's patch for custom handlers. In short, it will allow you to, with standard nREPL operations, add own operation that will monroe handle transparently. I'm hoping I'll be able to describe this feature briefly in future.

This release will be pushed on Marmalade soon (probably after the weekend); until that, feel free to download it from releases page.

And, to debunk some talks about project inactivity: monroe is very stable and my goal is to keep it that way. Lack of daily code pushes just for sake of some new shiny feature is not my goal. However, if you find a bug or have an idea for improvement, I'll be more than happy to fix or implement it :)

Tags: clojure