JEmacs Implementation Status
This is very incomplete and in itself very a work-in-progress.
Think of this as a very incomplete reminder list of what needs
to be done, as well as noting what is working.
ELisp Syntax
;;;###autoload
: Works.
save-excursion
works.
save-current-buffer
works.
unwind-protect
works.
ELisp core
Various non-trivial Elisp files compile and load without complaint.
However, that does not necessarily mean they work!
read
: Pasring of Emacs-style s-expressions mostly works.
print
: Prints in Scheme format.
- Dynamic name scoping (works).
- Buffer-local variables (mostly works).
defmacro
doesn't work, for some undetermined reason.
purecopy
is just identity. A possible improvement would
force compile-tiem evaluation to a literal.
Strings
format
: Framework and most common cases work.
Interaction
- No mini-buffer. (Uses pop-up dialog window where Emacs uses mini-buffer.)
- No each area. (Messages are written on console.)
interactive
: Basic framework implemented.
Only string argument implemented. Most specifiers are ignored.
- Selection sets point and mark, but otherwise not handled properly.
call-interactively
works.
interactive-p
is hardwired to nil
.
One possible implementation is to examine the output from
new Throwable().printStackTrace(...)
.
A possibly-more efficient implementation is to make it a macro for
(eq? (%buffer-current-command) --this-function--)
.
Common Lisp extensions
- Default values for optional parameters (works).
typep
: Basic framework works; only (some) simple type
names work. Any Java fully-qualified Java classname be used as type specifier.
Most type names cause typep
to be inlined.
- There is a almost-complete implementation of CL-style
format
which could be made available under the name format*
Per Bothner
Last modified: Mon Jun 19 23:53:37 PDT 2000