Hemlock is an Emacs-like editor that comes with CMUCL (Debian users need to get the cmucl-source package). Why not take a CloserLookAtHemlock?

Looking for quick instructions on GettingStartedWithHemlock?

If you want to use Hemlock with an X11 server that uses magic cookies (eg, connections forwarded via ssh), and if you're using a CMUCL distribution from before summer 2002 (or so), you'll need to load the following patch: Make Old CMUCL CLX Work With Magic Cookies.

See also cl-emacs, I guess.

Portable hemlock. There is an attempt to free Hemlock from its CMUCL prison and port it to ANSI CL plus CLX called the Portable Hemlock. It has already been persuaded to run on OpenMCL and SBCL, and possibly others.

A recent version of hemlock is available through git (based on the portable hemlock codebase):

git clone git://gitorious.org/hemlock/hemlock.git

Changes in theis version compared to ordinary portable hemlock:

  • TTY backend works again.
  • Added a connection API for I/O multiplexing, with support for TCP sockets, file sockets, processes. Hemlock connections are similar to Emacs "processes". serve-event no longer needed.
  • Dired ported to iolib
  • Remote/wire communication works.
  • Shell buffer works.
  • Slime-like lisp interaction works ("Select Slave")
  • REPL for the same lisp: "Select Self As Slave" (needs threads)
  • Uses PREPL to provide a portable Lisp Listener.
  • Uses conium, trivial-gray-streams etc. for portability.
  • Simple clbuild mode.
  • Some support for graphical stuff: C.f. for the clbuild dependency graph. This is based on the very efficient QGraphicsScene, allowing Lisp to draw stuff that is then rendered efficiently on the Qt side.
  • Support for "foreign" (non-buffer) widgets: Uses WebKit to render HTML pages. (C.g., "clhs", "Browse Qt Class", etc.)
  • Unconditional dependency on CLX removed. (Need to integrate with iolib rather than server-event?)
  • Added the Qt backend

To do list:

  • C-x 2 works only on the tty, not yet in the Qt window.
  • Support C-x 5
  • The tty backend needs a little work to improved speed and features.
  • Add way more slime-like features
  • In some cases, rather more ELI-like features rather than Slime stuff. We need ELI-like per-thread background buffer, for example.
  • Needs ubiquitous completion features.
  • The experimental yntax highlighting stuff needs work