Paste number 142588: Lucid's SLIME predecessor

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:
Raw Source | XML | Display As
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.

Colorize as:
Show Line Numbers

Lisppaste pastes can be made by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively.