See GuileEmacs for info on the current effort, which seems to have come farthest (and far enough to possibly be merged into upstream) so was given that main article. This page lists a timeline of older efforts as well as the history of the current effort.

Older Efforts

Some original work was by KeisukeNishida and was based on Emacs 20.7 and Guile 1.5. The last work on this project was 2000-06-01. The goal was to support both Guile and EmacsLisp. You can find more information on its Sourceforge page, or in the project’s mailing list archive.

Matthias Neubauer and Michael Sperber studied the possibility of automatically translating Emacs Lisp Code into Scheme. See DownWithEmacsLisp.

On 2001-11-03, NeilJerram was working on an EmacsLisp reader. A posting [1] to on showed an elisp reader reading 3279 lines (“wc -l”) of elisp code already. He says: “I think progress beyond this point basically means implementing multilingual and multibyte strings properly for Guile. Which is a lot of work and requires IMO a very clear plan for Guile’s role with respect to Emacs.”

KenRaeburn started a project as early as 1999 to replace Lisp with Guile in Emacs starting at the very lowest levels, i.e., object representation, allocation, GC; with evaluating Scheme code coming later. Working with EmacsFromCVS he could isolate the implementation to some of the simpler Lisp types (those that could most easily be shared with Scheme) from the rest of the Emacs code. Even if the project succeeded in getting Guile into Emacs, the handling of the current evaluator code was an open issue.

On 2002-07-16, there was a discussion started on emacs-devel about emacs and guile.

By 2006-01-03, according to Ken “Some stuff does work, actually. Non-tty displays don’t”. This was for reasons that “have less to do directly with Guile than with the fact that the Guile library isn’t unexec-safe”. Consequently, Ken was not doing the unexec step. Guile Emacs in a terminal window has a “shell mode, browses directories, does font-lock coloring of C source files, etc.”

As of 2009-06-11, Ken has provided an updated snapshot of the work.

History of the Current Effort

A Brief History of Guile by Andy Wingo, 2009

As brought to our attention in 2010-04-16 by AlexSchroeder:

Apparently there’s more discussion regarding Guile, Emacs, and GuileEmacs on emacs-devel.
* Guile in Emacs started by Tom Lord, a very long thread
* guile and emacs and elisp, oh my by Andy Wingo

On 2011-02-16, Guile 2.0 was released with some Emacs Lisp support.

For GoogleSummerOfCode 2011, work was done on Emacs Lisp support in Guile. Read the status report on 2011-07-21 posted to the guile-devel mailing list.

On 2012-04-09, there was an announcement on emacs-devel about GoogleSummerOfCode projects that included adding libguile to Emacs and using it as the interpreter. It was followed by some mailing list discussion.

The 2013 GoogleSummerOfCode once again had GuileEmacs with BT Templeton as the author:

At this point an Emacs branch with libguile embedded and providing part of the Elisp data types and able to provide an ‘eval-scheme’ function to Elisp is available, but not fully replacing the Elisp interpreter yet.

The 2014 GoogleSummerOfCode once again had GuileEmacs with BT Templeton as the author:

During that, the Elisp engine was finally replaced by libguile in full, resulting in an essentially “normal” GNU Emacs build that uses libguile for Elisp. Significant quirks and flaws remain though.

See also

GuileEmacs GuileEmacsTodo

CategoryGuileEmacs CategoryExtensionLanguage EmacsImplementations