Distel: Distributed Emacs Lisp (for ErlangLanguage
). Not as universal as the catchy title suggests, but fairly close :-)
Me and some Erlang-programmer friends have taken Erlang's lovely concurrency, distribution, and pattern matching, and implemented it in EmacsLisp
. Now in Emacs we can write Erlang-style concurrent processes that communicate with asynchronous message passing, and they can talk directly to real Erlang processes exactly as if they were written in Erlang themselves. We've used this to write Erlang development tools similar to CommonLisp
's Ilisp, and are now using Emacs as the OneTrueUserInterfaceToolkit?
for other Erlang programs.
makes a fairly narrow audience, but Lisp seems current on Wiki so I posted it anyway :-)
There is a paper (http://www.bluetail.com/~luke/distel/distel-euc.pdf
) and the homepage (http://www.bluetail.com/~luke/distel/
) describing this hack.
It is an awful lot of fun to implement a new programming style in Lisp and use it to build real programs. Just like in the books! :-)
We haven't done a pure-Emacs one for general Emacs-Emacs distributed programming, but it's not too far around the corner.
I am genuinely curious: why elisp, as opposed to, say, common lisp?
Because Emacs is the standard development environment for Erlang programmers, and the real goal was to give it better Erlang-IDE capabilities (we did debugger, profiler, process manager, etc front ends.) Knocking off all the language features was just a fun way to do it ;-). Otherwise my first choice would have been Scheme, since call/cc'ing the scheduler to schedule-out would have made things nicer. I do think that Elisp is often underrated as a practical programming language, though.