Distel: Distributed Emacs Lisp
Distel extends Emacs Lisp with Erlang-style processes and message
passing, and the Erlang distribution protocol. With this you can
write Emacs Lisp processes and have them communicate with normal
Erlang processes in real nodes. This makes it easy to write
convenient Emacs user-interfaces to Erlang programs, like the
debugger depicted here:
Distel Debugger
In addition to the programming extensions, these applications are
included in Distel 3.3:
- Dynamic TAGS: You can jump from a call like
"lists:sort(MyList)" directly to the source code for lists:sort/1
to inspect the definition, and then unwind back to where you came
from. You can also jump from strings like "sort/2" as found in
export lists. This doesn't need a TAGS file, it talks to an Erlang
node to track down the source file based on the location of the beam
file.
- Debugger: An Emacs front-end to the Erlang
debugger. Lets you interpret modules, set breakpoints, and attach
to processes and single-step them within Emacs.
- Interactive Sessions: Scratchpad buffers where you
can define erlang functions and run expressions, like a cross
between the Erlang shell and the function-at-a-time
definition/testing of Emacs Lisp.
- Process List: A pman-style process viewer, for
tracing and inspecting the processes running on a node.
- Profiler: Front-end to fprof, so that you can
enter an Erlang expression in the minibuffer and then browse the
results of profiling it.
- Online Documentation: Search through documentation
automatically scanned out of all Erlang modules ("fdoc".)
.. and much more.
Supported Platforms
Distel has been tested on Linux with GNU Emacs 20.7 and 21.3, and
XEmacs 21.1. It has also been tested on GNU Emacs 21 with Windows
2000/XP and Cygwin, though the installation process is currently a
little laborious (see README.WIN32 in the distribution.)
Development
Distel has moved in 2007 to Google Code: project Distel. All
released versions and repositories on Sourceforge should be
considered obsolete!
Documentation
There are three main documents about Distel:
- The User Manual [pdf
ps.gz],
which describes how to use Distel and what commands are available.
- The paper Distel: Distributed Emacs Lisp
[pdf ps.gz],
describing Distel's motivation and workings in detail. This paper
was presented at the 2002 Erlang User Conference.
The User Manual
is more up-to-date with features, the paper was written about Distel
3.1.
- The Reference Manual
[pdf ps.gz],
describing the Elisp programming interface and some of Distel's
internal workings.
A casual user need only read the User Manual. A would-be Distel
hacker will probably enjoy the conference paper the most.
Mailing List
There is a mailing list dedicated to Distel, which you can read to
track the development (major milestones are also posted to erlang-questions.) Check out the subscription interface, or browse the archives.
Authors
Distel was written by Luke Gorrie, Vladimir Sekissov, David Wallin,
Mats Cronqvist, and Martin Björklund.