]> git.donarmstrong.com Git - lilypond.git/blobdiff - guile18/lang/elisp/STATUS
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / STATUS
diff --git a/guile18/lang/elisp/STATUS b/guile18/lang/elisp/STATUS
new file mode 100644 (file)
index 0000000..066e86f
--- /dev/null
@@ -0,0 +1,35 @@
+                                                        -*-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.