mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 13:00:26 +02:00
35 lines
1.5 KiB
Text
35 lines
1.5 KiB
Text
-*-text-*-
|
|
|
|
I've now finished my currently planned work on the Emacs Lisp
|
|
translator in guile-core CVS.
|
|
|
|
It works well enough for experimentation and playing around with --
|
|
see the README file for details of what it _can_ do -- but has two
|
|
serious restrictions:
|
|
|
|
- Most Emacs Lisp primitives are not yet implemented. In particular,
|
|
there are no buffer-related primitives.
|
|
|
|
- Performance compares badly with Emacs. Using a handful of
|
|
completely unscientific tests, I found that Guile was between 2 and
|
|
20 times slower than Emacs. (See the comment in
|
|
lang/elisp/example.el for details of tests and results.)
|
|
|
|
Interestingly, both these restrictions point in the same direction:
|
|
the way forward is to define the primitives by compiling a
|
|
preprocessed version of the Emacs source code, not by trying to
|
|
implement them in Scheme. (Which, of course, is what Ken Raeburn's
|
|
project is already trying to do.)
|
|
|
|
Given this conclusion, I expect that most of the translator's Scheme
|
|
code will eventually become obsolete, replaced by bits of Emacs C
|
|
code. Until then, though, it should have a role:
|
|
|
|
- as a guide to the Guile Emacs project on how to interface to the
|
|
Elisp support in libguile (notably, usage of `@fop' and `@bind')
|
|
|
|
- as a proof of concept and fun thing to experiment with
|
|
|
|
- as a working translator that could help us develop our picture of
|
|
how we want to integrate translator usage in general with the rest
|
|
of Guile.
|