SLIME is the “Superior Lisp Interaction Mode for Emacs.” SLIME extends Emacs with support for interactive programming in Common Lisp. The features are centered around slime-mode, an Emacs minor-mode that complements the standard lisp-mode. While lisp-mode supports editing Lisp source ?les, slime-mode adds support for interacting with a running Common Lisp process for compilation, debugging, documentation lookup, and so on. The slime-mode programming environment follows the example of Emacs’s native Emacs Lisp environment. We have also included good ideas from similar systems (such as ILISP) and some new ideas of our own. SLIME is constructed from two parts: a user-interface written in Emacs Lisp, and a supporting server program written in Common Lisp. The two sides are connected together with a socket and communicate using an RPC-like protocol. The Lisp server is primarily written in portable Common Lisp. The required implementation-speci?c functionality is speci?ed by a well-de?ned interface and implemented separately for each Lisp implementation. This makes SLIME readily portable. SLIME supports a wide range of operating systems and Lisp implementations. SLIME runs on Unix systems, Mac OSX, and Microsoft Windows. GNU Emacs versions 21, 22, and 22 and XEmacs version 21 are supported. This uses the inferior-lisp package to start a Lisp process, loads and starts the Lisp-side server (known as “Swank”), and establishes a socket connection between Emacs and Lisp. Finally a REPL bu?er is created where you can enter Lisp expressions for evaluation. SLIME is started with the Emacs command M-x slime.


