[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
I have been working on Editor/Lisp interfaces for many years.
[In fact, I did what was probably the first one of these --
in MacLisp and Teco God knows how many years ago.] When the
Lisp machine was first operational, I did one for it. It was
roundly denounced by the Symbolics systems hackers; then they
tried to do one of their own, which never quite worked right and
nobody really used. This was the "ZTOP mode" that appeared in the
system until it was diked out in recent versions. Meanwhile, I still
have the one I wrote, which I and others have been using almost
continually since then. Since then, several other MIT-spinoff language
implementations have adopted the same general style of interaction --
notably Coral Common Lisp for the Mac, and Quintus Prolog for the Sun.
I almost never use "Lisp Listeners". It does not work as a "mode".
Instead, you get one [or more] Zmacs buffer[s] called "History"
containing forms evaluated at the top level. It is best used with
multiple windows, some containing buffers of definitions, one
containing the History buffer. There remain certain problems with
interaction with the Lisp interpreter that I never solved
satisfactorily. Interaction with the error breakpoint loop, some
cases where the code does READ-and-PRINT I/O, interaction with
programs that use the RUBOUT-HANDLER protocol [and now the "command
processor"], other window system issues, the use of a separate process
to EVAL forms, are problems that I never completely resolved. I also
have a redesigned, more menu-driven top level interface that I will
someday get around to implementing. I welcome any people who have
also thought about or attacked these problems and would like to
correspond about the subject.