123456789101112131415161718192021222324252627282930313233343536 |
- -*-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.
|