> For various reasons, I decided to put my attention about three years or
> so ago into a somewhat different project -- making it possible to run
> Emacs with the Guile interpreter tied into the Lisp system. Guile --
> GNU's Ubiquitous Intelligent Language for Extension -- is the GNU
> Project's Scheme implementation, intended to be a general extension
> language for the GNU Project. Scheme is Lisp-like in some ways,
> different in others; in particular, Scheme uses static scoping, so Lisp
> dynamic bindings are an interesting part of the issue. But there are
> people working on making Guile be able to handle Emacs Lisp, and there
> already is pthread support in Guile. So my thinking is, if the Emacs
> Lisp engine can be made to operate on Guile objects (including, for
> example, a new Guile object type that represents an Emacs buffer, which
> is a Lisp type now), and these other people find ways to deal with
> threads and dynamic scoping, then we've made a lot of progress not just
> towards the possibility of multiple threads in Emacs, but also towards
> having GNU's "ubiquitous extension language" available in what's
> probably GNU's most commonly extended (and most extensible) program.
A couple of times I've thought about just linking guile and emacs
together, giving guile some wrappers around existing emacs types and
adding some mechanism to emacs for running guile programs.
I figured that such a system would be a very slow evolutionary step
and probably more likely to succeed in the long run (10 years?) than
just trying to switch over.
Unfortunately, guile is not a small, well designed program. It is much
more of a mess than emacs is and looks hard to put in nicely. Putting
it in crassly is still an option though.