Paste number 142588: | Lucid's SLIME predecessor |
Pasted by: | Xach |
When: | 10 years, 9 months ago |
Share: | Tweet this! | http://paste.lisp.org/+320S |
Channel: | None |
Paste contents: |
The Lisp - Emacs Protocol (LEP) About the LEP Interface An integral part of the Common Lisp (CL) programming environment is the GNU Emacs-Common Lisp interface, hereafter referred to as the Emacs-Lisp interface. This interface allows you to edit and run Common Lisp programs, and contains enhancements to GNU Emacs that allow a tight coupling between Emacs and Lisp that is very similar to what used to be available only on Lisp machines. It offers the following key features: o Start your favorite Lisp with one command o Common Lisp Mode in Lisp files and buffers o Commands to get argument lists, describe strings, and documentation strings for symbols in the buffer o CL symbol completions, including abbreviation expansion: w-o-f expands to with-open-file o Send expressions to Lisp for evaluation or compilation o Multiple interactive buffers serving one Lisp o Per-process debugger buffers o Per-process terminal I/O buffers o Extra listener buffers o Connect Emacs to an already running Lisp o Connect Emacs to several Lisps o One Lisp can serve several Emacs invocations o Independently loadable in any image o Self-contained o Will not interfere with other modules o Lisp-to-Lisp stream connections The philosophy of the interface is to make the editor seem as though it were implemented in Lisp. If it were, then the editor would be able to manipulate objects not as text, but as first-class Lisp objects. Emacs would then be able to know more about programs and be able to extract information from them easily. Because the Emacs-Lisp interface uses GNU Emacs, which runs as a separate UNIX pro cess from Lisp, a Lisp-Editor protocol was designed and implemented to make communicating information between Emacs and Lisp easier and more natural. A strong requirement of this communication and information exchange is that the user not be aware of it--it must happen in the background. This hidden communication is accomplished by using multiprocessing in CL and process filters in GNU Emacs. The latter is necessary because GNU Emacs does not have multiprocessing. The Lisp-Editor protocol is documented separately. It is currently available only in online form. --------------------------------------------------------------------------- --- How LEP differs from ILISP: The startup sequence for ILISP is simpler because ILISP is a simpler interface that does not provide many of the LEP features: - separate buffers for debugging multiple Lisp processes - multiple listener buffers on the same Lisp - connect to a Lisp running entirely separate from Emacs - connect to a Lisp that was running before Emacs was started - disconnect Lisp (but leave it running) from one Emacs and reconnect to another Emacs running on another workstation or a home terminal ---------------------------------------------------------------------------
This paste has no annotations.